Commit graph

87 commits

Author SHA1 Message Date
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
Mikael Magnusson
666a466b7e make menus also saveunder 2006-06-16 12:41:39 +00:00
Mikael Magnusson
310d268bf0 patch from syscrash2k, adds submenuShowDelay option, bug #2682 2006-04-22 19:21:06 +00:00
Mikael Magnusson
9609c7f5ec maybe i should have tried opening a submenu too 2005-09-14 17:40:47 +00:00
Mikael Magnusson
fa32adf16c fix menus to show on the screen the mouse cursor spawned them from 2005-09-14 17:05:53 +00:00
Mikael Magnusson
faf325c3fe include config.h 2004-03-21 12:10:10 +00:00
Mikael Magnusson
b2b8ad92bf update copyright notices 2004-03-21 11:57:31 +00:00
Mikael Magnusson
335e8acbfc yay no tabs in the source 2004-03-21 01:03:00 +00:00
Mikael Magnusson
07dd2c6442 fix reversed variable name and add a little comment to the magic menu code 2004-03-20 23:40:29 +00:00
Mikael Magnusson
bc04408517 some nice options for the menus, warpPointer, xorStyle (better name wanted for this :), hilightFirst and hideDelay (this was hardcoded to .25 secs earlier) 2004-03-20 22:53:16 +00:00
Dana Jansens
740c5b2a20 consistant glib type usage 2003-10-15 03:59:35 +00:00
Dana Jansens
b49b7c415c free menuframes when they fail to show themselves 2003-10-11 06:47:11 +00:00
Dana Jansens
b8ba1cff1f perhaps fix problems of being left in menus without being able to control openbox 2003-09-28 09:24:22 +00:00
Dana Jansens
1ee19207fb fix a variable used without being initialized case 2003-09-25 22:00:07 +00:00
Dana Jansens
e5908c3f89 use the new action ru system which always runs lists of actions instead of individual ones 2003-09-19 17:41:05 +00:00
Dana Jansens
16f46c296d no tabs 2003-09-17 07:44:49 +00:00
Dana Jansens
c4e4760c41 add copyright headers, adjust --version output to include copyright, and --help output to not include version output. 2003-09-17 07:32:52 +00:00
Dana Jansens
96f9db0d0c api cleanups for render/theme.h 2003-09-17 06:21:35 +00:00