Commit graph

104 commits

Author SHA1 Message Date
Dana Jansens
66d51f2635 alpha :x not width 2007-05-29 03:28:40 +00:00
Dana Jansens
319fb35962 add the rgba alpha to the menu entries 2007-05-29 03:24:04 +00:00
Dana Jansens
c4eaa94385 put an alpha channel in the rgba texture 2007-05-29 03:22:55 +00:00
Dana Jansens
83da4ec939 fix escape's behavior in menus. make static stuff that shouldnt be used by others 2007-05-19 20:58:10 +00:00
Dana Jansens
9fcb2aa1d2 add grab/ungrab macros so dont need to pass in 10 arguments to ungrab stuff.
add a confine option to grab_pointer to confine the pointer to the screen, and use that for moveresize
2007-05-13 23:30:52 +00:00
Dana Jansens
18c2737a2f add a comment 2007-05-13 02:35:42 +00:00
Dana Jansens
c2e4d42e6d ignore enter events on top menu and submenu popup 2007-05-12 19:50:32 +00:00
Dana Jansens
b63ad92cca give different border colors to active and inactive windows. adjust the xml theme format a little to make it BETTER. rawr. add some metadata standards too. 2007-05-11 22:18:43 +00:00
Dana Jansens
6194acb271 checking string length with the wrong texture 2007-05-10 05:27:43 +00:00
Dana Jansens
f0fdba8ad3 fix no more crashing in the client menu. 2007-05-09 00:11:06 +00:00
Dana Jansens
48d7045208 update the client menu when you do stuff without closing it.
but this means we can't use actions in it. oh well?
can kill the desktop notifiers now too. yay for more obvious code paths.
2007-05-08 23:50:13 +00:00
Dana Jansens
5945d2e9c8 ok, so, back out the last commit. owner events are passed thru so we get enter/leave notify events.
dont change frame decor from button presses during an interactive grab or
while a menu is open
2007-05-08 00:40:01 +00:00
Dana Jansens
26fc54c9a3 why did we pass thru owner events ?? its working without that.. hum..
and now the frame buttons dont get press hilights while the menu is open
2007-05-08 00:28:05 +00:00
Dana Jansens
280529221e add a notifier for clients changing desktops. use it to update the send-to menu if it changes. it does this by closing/opening the menu.. thats about the best we can do tho with this menu code without huge changes 2007-05-07 23:26:22 +00:00
Dana Jansens
d915480371 oops hehe. a render call in the loop for debugging was what made it slow. anyhow make it even faster by only calling render once too. yay snappiness. 2007-05-07 22:15:40 +00:00
Dana Jansens
3905872982 merge in r6153-6154 from the 3.4 branch 2007-05-07 22:07:13 +00:00
Dana Jansens
526560b8a0 changes to the client menu, which entries are there, and reorganizing, and renaming.
let you highlight disabled menu entries, they just aren't runable of course, and add the activedisabled theme element for these entries.
add the all desktops button picture to "All desktops" in the client menu
update the themes for the new element, and some changes to make things more readable-better contrast.

CLEARLOOKS-OLIVE is now DIFFERENT FROM THE 3.4 BRANCH SO DON'T RE-RUN THEMETOXML ON IT :( :(
yeah.. i think that is everything?
2007-05-05 22:26:59 +00:00
Dana Jansens
e0e1d4ba7e don't show the client menu when its for an invalid window 2007-05-03 20:39:26 +00:00
Dana Jansens
cb030c6f3a make submenus open in the same direction as the top level menu 2007-05-02 02:18:37 +00:00
Dana Jansens
66d6e1120e small change to the render API. RrMinsize became RrMinSize. added RrMinWidth and RrMinHeight.
make focus/desktop popups wider based on the screen size with the old size as a minimum.
left-align the desktop dialog.. i think better dialogs would be nice. and to make them hide or something when you switch desktops while switching windows etc.
2007-05-02 00:35:22 +00:00
Dana Jansens
bdf287572c fix placement of top menus 2007-04-26 05:59:37 +00:00
Dana Jansens
26879183e9 place the client menu at the top left of the window when opening it with a key binding.
change how the first menus are placed. place them like other people place menus. maybe this is good, maybe it is bad, we will see..
2007-04-26 05:08:33 +00:00
Dana Jansens
b5dbe857db dont go to disabled menu entries with keyboard shortcuts
fix some rendering of shortcuts
2007-04-25 18:26:02 +00:00
Dana Jansens
0c41ab3c20 make rendering the shortcuts much faster 2007-04-25 18:04:15 +00:00
Dana Jansens
5d5be2ba2a add keyboard shortcuts to the menus. you can specify the shortcut key with & even in root menu and stuff 2007-04-25 01:33:20 +00:00
Dana Jansens
3595da62ca never mind on the hint idea, it was fun while it lasted. at least i know it is there now. 2007-04-24 01:16:33 +00:00
Dana Jansens
a488360f48 add the PointerMotionHintMask everywhere, we dont need every mouse event 2007-04-24 01:00:27 +00:00
Dana Jansens
58dc86971a remove windows from the hash on hide, dont readd them again! 2007-04-23 01:54:35 +00:00
Dana Jansens
ff43372da7 only pass thru events when the menu is open, don't for other stuff 2007-04-22 14:07:29 +00:00
Dana Jansens
939fbcfd31 add a comparitor to timers. use this in event.c to let you remove timers from the queue selectively for delayed focus 2007-04-22 04:16:00 +00:00
Dana Jansens
8612fcfb99 better matching of the menu titles/separators to the theme 2007-04-22 03:54:43 +00:00
Dana Jansens
51c3c8c34a give labeled separators borders 2007-04-22 03:13:41 +00:00
Dana Jansens
05d1a86eff fix a segfault 2007-04-22 01:09:20 +00:00
Dana Jansens
b6897feb40 better event handling for menus 2007-04-22 00:53:21 +00:00
Dana Jansens
957963e272 1) get rid of menu titles
2) let separators have labels, when they have a label, then they will appear like a menu title used to

so if you want a menu title, you use a separator in the menu itself at the top

more style work may be needed
2007-04-22 00:36:54 +00:00
Dana Jansens
8d7cc2597e the centered menus thing got annoying :| 2007-03-30 18:29:28 +00:00
Dana Jansens
3278fdae73 open the menu with the mouse cursor just outside the top item 2007-03-25 17:32:58 +00:00
Dana Jansens
cbbda7a363 proper logic for using the menu overlap with middle centered submenus.
always center top level menus horizontally under the cursor. why is this not normal behavior..?
2007-03-25 17:26:22 +00:00
Dana Jansens
ee58f96a84 better placement for top level menus under the mouse cursor. middle placement is not used for this now. it was behaving differently than submenus so i'd like to have some consistency 2007-03-25 17:19:41 +00:00
Dana Jansens
afc015158a better vertical centering for when "middle" placement is enabled for menus 2007-03-25 17:16:32 +00:00
Dana Jansens
59c5d1cc4e set up the menu's parent and children stuff before rendering it 2007-03-25 16:38:04 +00:00
Dana Jansens
e6c82786ff don't menu menus jump around at all anymore. open them on screen in the first place 2007-03-25 16:34:26 +00:00
Dana Jansens
19b480058e wow... this is a big commit...
all related to _NET_WM_USER_TIME and focus stealing prevention

a) add launcher startup notification. this means when you run something from
   the openbox menu or a key/mouse binding, that startup notification will go
   on in openbox and other applications like your panel or something
b) add the _NET_WM_USER_TIME property for windows
c) use the _NET_WM_USER_TIME data and startup notification to prevent focus
   stealing.
d) cookie party !! ! all are invited.
e) oh yeah, and pass around timestamps for a lot more things. like, when you
   run an action, send the timestamp for the event that is running the action.
   this is important for startup notification. this also affects menus.
f) yes.. cookies..

would it be a good idea to disable focus stealing prevention if a window takes
too long to load? i mean.. maybe after a certain length of time, a user can't be
expected to not do anything in any other windows, but would they still want the
new application to focus then? HMM. open question i guess..
2007-03-11 04:44:15 +00:00
Dana Jansens
ec304c9e43 scary commit..but here goes.
YOUR THEMES ARE NOW OFFICIALLY BROKEN.

Openbox has just moved it's theme format to an XML based one. The details of
this format can be found in data/themerc.xsd (and http://openbox.org/themerc.xsd

ALSO! This is very good and important and stuff! In the tools directory you
will find THEMETOXML ! This tool takes a themerc on stdin, and spits out
the same theme in theme.xml format. So this is all you need to do to update
your themes.

PLEASE NOTE: This themetoxml does _not_ install itself anywhere. It simply
builds and then lives out in its tools/themetoxml directory, and that's it. So
if you want to use it, that is where to find it.

In moving to the new XML format, a number of additions/changes to the theme
engine have been made. Themetoxml takes these into account and will set all
the new things appropriately to make your theme look the same as it always has.

New additions include..
* padding now has an horizontal and vertical component, instead of being one number
* menus can have different borders than windows (color and size)
* menu offset can now be negative. it's a little weird, but someone will want it no doubt
* fonts are no longer controled by the theme at all, however font shadowing is, and on that note..
* font shadows are now any color you want, not just black and white
* you can now set the shadow anywhere you can set the text's color, so you have more control, i.e. you can set shadow on active menu items but not inactive, or disabled, etc.
* every color now has an alpha channel. at the moment they don't do anything, besides the font shadow one, but it leaves room for future explorations. it is REALLY HIGHLY RECOMMENDED that you set the alpha to 255 all the time, until such time as it could be useful. otherwise one day your theme may turn awful for people.
* font colors are in the range 0-255, in case you were wondering, and they have to be specified in decimal
* if you'd like to change you font's you can do so in your configuration file. this is how it is going to stay. changing the font in the theme assumes too much about peoples eye sight and locality and stuff. it doesn't belong there, sorry. the system-wide default rc.xml includes the new font settings for your viewing pleasure, and ill drop an example of it below.
* shadows can now be positioned in any direction, they have both an x and a y offset which can be negative and positive. and offset of 0,0 will disable the shadow

This isn't a release or anything. If someone had some good ideas about the xml theme format, I'd like to hear them. But I don't think it will be changing much right now beyond where it is. I don't even know how the new functionality will play out for themers, so we'll see.

Whew.. I guess that's it. I'm not sure if I mentioned every little change or not, but oh well. Mileage may vary.. Please send any feedback.

Here's the font configuration example. Hopefully ObConf will let you set this real soon.

<theme>
...
  <font place="ActiveWindow">
    <name>arial,sans</name>
    <size>7</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="InactiveWindow">
    <name>arial,sans</name>
    <size>7</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="MenuTitle">
    <name>arial,sans</name>
    <size>8</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="MenuItem">
    <name>arial,sans</name>
    <size>8</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
</theme>
2007-03-05 15:44:17 +00:00
Dana Jansens
07fe0980be declare variables at the beginning of blocks, because it is nice to do so. and polite? 2007-03-02 22:11:46 +00:00
Dana Jansens
de383f35f7 no more using SaveUnder for our openbox-specific windows. it makes things actually slow down, believe it or not! 2007-03-02 22:06:13 +00:00
Dana Jansens
78af5d15e9 this includes a number of things since my magnificent return....
1. some random compiling/style cleanups
2. some bigfixes
 - mislogic in per-window-settings and focusing new windows
 - use client_can_focus rather than checking variables for directional focus
 - MAYBE fix all those lock-ups forever. using event_curtime (a new variable) now instead of event_lasttime. event_lasttime is still used however when the event being processed did not have a time associated with it. this may or may not be a problem, and will be seen.
3. um.. i forget
4. oh yeah, 3rd party docks are now treated like the internal ob dock irt focus. that is, clicking on them won't pass them focus. this is going to be ratified as expected behavior in the wm-spec just now. if docks/panels want focus they can request it with _net_active_window, and then they can have all the focus they want! one day alt-tabbing around dock windows might be nice. but not until the ob dock is moved out into a separate application. going to have to add a wmapp selection and stuff for that though... ugly. who uses wmdockapps anymore !? someone must.. *sigh*
2007-03-02 02:23:00 +00:00
Mikael Magnusson
4d50b21835 update copyright step 1 2006-08-22 16:37:35 +00:00
Mikael Magnusson
005eb35ee8 fix some warnings from -Wall 2006-08-19 05:05:36 +00:00
Mikael Magnusson
56c548b203 make menus optionally vertically centered, and enable by default, see bug #2746 2006-08-02 17:25:32 +00:00