Dana Jansens [Thu, 11 Feb 2010 19:17:59 +0000 (14:17 -0500)]
make menu input work with the new obt keyboard stuff.
create an Input Context for use during keyboard grabs, and use this to
translate KeyPress events properly.
make the menu respond to KeyPress events, since these are the only ones that
can be translated properly, but still execute things from KeyRelease events
Dana Jansens [Wed, 10 Feb 2010 02:03:01 +0000 (21:03 -0500)]
i learnt what xkb does with the state.
use the state from keyrelease events directly, rather than query the state (which is not as accurate!)
the xkb state (as opposed to the normally sent compat state) contains extra info like the keyboard group, the pointer buttons, etc. so we can just strip that stuff out. (See section 2.2.2 of the XKB proto document)
Dana Jansens [Mon, 18 Jan 2010 21:08:23 +0000 (16:08 -0500)]
adjust who shows up in the alt-tab list using SKIP_TASKBAR (Fixes bug #4503)
allow window types != NORMAL to not show up in the alt-tab list
but don't allow DIALOG types to hide from the list
also any window which is DEMANDS_ATTENTION should appear in the list regardless
of its SKIP_TASKBAR status
Dana Jansens [Fri, 15 Jan 2010 22:49:54 +0000 (17:49 -0500)]
don't use client_move() to end a move
client_move() uses the client's current width/height, whereas all along we
were using the width/height the client had at the start, so this causes
client_configure() to behave differently at the end than during the move
Dana Jansens [Fri, 15 Jan 2010 20:07:42 +0000 (15:07 -0500)]
if we get an event on a subwindow of root that we don't know about, but it is related to a press we received on the root window, then process the event (Fixes bug #3702)
Dana Jansens [Thu, 14 Jan 2010 23:38:40 +0000 (18:38 -0500)]
If a window places itself at (0,0) and there are struts there, assume it is a bug. Also allow oldschool fullscreen windows that cover all monitors on a multihead setup to work properly
Added a test 'oldfullscreen' that makes a oldschool fullscreen window
Dana Jansens [Mon, 11 Jan 2010 18:42:50 +0000 (13:42 -0500)]
Add _OB_VERSION and _OB_APP_ROLE/CLASS/NAME/TYPE
Add _OB_VERSION property on the root window.
Change _OB_ROLE/CLASS/NAME to _OB_APP_*.
Add _OB_APP_TYPE which has a string for the type chosen for the window on
mapping by Openbox.
Adjust the rc.xml to match these changes.
Mikael Magnusson [Mon, 11 Jan 2010 00:27:30 +0000 (01:27 +0100)]
Fix ordering so fallback for inactive osd to label works
The themeing options (sic) for inactive osd labels added in cfdbe23e0d9b72b4c220a10ddf60a4e981967b63 had the fallback to inactive
label before that was read in, so fallback failed to pick up some
things.
Dana Jansens [Fri, 8 Jan 2010 22:48:07 +0000 (17:48 -0500)]
Rework the code provided by Kadlcik Libor for loading/showing icons in Openbox menus.
This changes how the imagecache works, you can load an image into it directly,
or you can load it by name (then it will load it from a file on disk).
NOTE: The name part is incomplete, as it needs to use the freedesktop.org icon
spec to search for the right file. Also to resize it should look for another
icon on disk with the same name but different size (icon themes).
Kadlcik Libor [Tue, 25 Mar 2008 20:58:12 +0000 (21:58 +0100)]
This patch implements support for icons in user-defined menus into Openbox
Image loading is done using the Imlib2 library.
I chose Imlib2 because it's pretty fast, it's easy to use, supports many file
formats (tested xpm, gif, jpeg, png) and doesn't introduce too much bloat (it
depends :)).
I ported the patch to 3.4.7-pre3 and added some enhancements. Caching is much
better now, and icons can be disabled at compile time using --disable-imlib2
option.
What's new?
Syntax of configuration files (namely rc.xml and menu.xml) has been changed
slightly to allow users to associate icons to menu entries. This is done by
specifying path to icon file in the new "icon" attribute in "<item>" element,
e.g:
<item label="Vim" icon="/usr/share/pixmaps/vim-32.xpm">
<action name="Execute"><execute>x-terminal-emulator -T Vim -e
vim</execute></action>
</item>
If user doesn't want to display any icons in his user-defined menus, he/she can
disable icons in rc.xml, inside "<menu>" section:
<menu>
...
<showIcons>no</showIcons>
...
</menu>
Default value is "yes".
(New boolean variable "config_menu_user_show_icons" has been added to source
code.)
An icon is loaded (using menu_item_attach_icon()) when a new entry of menu is
created. Fortunately, I haven't notice any performance problems because of this
:).
The look-around things are fixed-width but the [stuff] is 1 char, and
the $ is 0 so it didn't work. I already used that trick for the ^,
maybe it used to work due to a bug or smth.
Dana Jansens [Fri, 8 Jan 2010 15:45:24 +0000 (10:45 -0500)]
Don't handle input events on prompts if they should be used for a binding/menu instead.
Also, be more careful about making the prompt buttons look pressed, don't make them pressed from a motion notify event if they didnt first handle the press.
Dana Jansens [Wed, 6 Jan 2010 22:30:42 +0000 (17:30 -0500)]
Improved menu behaviour
Make 'left' key in a menu close it's visible child menu and move to the parent
properly.
Make clicking on a menu item in a menu close any of its grandchildren and
remove focus from its children, effectively focusing the menu item you
clicked on.
Dana Jansens [Mon, 4 Jan 2010 20:07:10 +0000 (15:07 -0500)]
Some fixes for the submenu hide delay code
When nothing in a menu is selected, go back to selecting the open submenu.
Adjust the LeaveNotify event handling to only respond when there is not a
EnterNotify coming for the same menu frame.
Change the default submenu show/hide delays.
Have the default values for submenu show/hide match the default rc.xml
Dana Jansens [Mon, 4 Jan 2010 21:25:13 +0000 (16:25 -0500)]
Make the Focus action stop all interactive actions (Fixes bug #4436)
Old < 3.4.8 Openbox versions would stop focus cycling when focus moved. Now that is not the case, but you should be able to stop it by Choosing a window explicitly still.
Dana Jansens [Mon, 21 Dec 2009 15:53:41 +0000 (10:53 -0500)]
Set up work for making a 3.5 prerelease.
Set version stuff to 3.5.0-rc1.
Copy the CHANGELOG from 3.4-working.
Rename the obt-4.0 and obrender-4.0 pkgconfig stuff to obt-3.5 and obrender-3.5
Rename the "render" directory to "obrender" so that the public headers can be
installed in <obrender/*>