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).
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
:).
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.
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.
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
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.
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/*>
It fixes this:
(Mikachu) dana: i think his issue was if you have a menu with two
submenus s1 and s2, open the s1 submenu, then point to s2 and
go into s1, then after the delay, s1 is hidden despite you
being inside it still, because s2 was never unselected
This way we can use the same name with options for an interactive action and a
non-interactive action.
Shorten the names of the ObActionsInteractive* functions to ObActionsI*
Add a ObActionsIPreFunc that is called for interactive actions
before the interactivity (key/mouse grab) is started.
Add a ObActionsIPostFunc that is called for interactive actions
after the interactiviti (key/mouse grab) has ended.