Dana Jansens [Wed, 17 Feb 2010 21:11:36 +0000 (16:11 -0500)]
revamp the autostart functionality, so autostart apps launch after openbox.
add /usr/libexec/openbox-autostart which runs the global/user scripts and
launches /usr/libexec/openbox-xdg-autostart (which runs .desktop autostart
stuff)
make openbox-session call openbox with --startup option, to make openbox launch
/usr/libexec/openbox-autostart *after* it is initialized.
add /etc/xdg/openbox/environment and ~/.config/openbox/environment files to let
user change environment variables (locale) for their Openbox session, which
openbox-session loads before running openbox.
Dana Jansens [Mon, 15 Feb 2010 17:33:33 +0000 (12:33 -0500)]
dont trust the _NET_ACTIVE_WINDOW timestamp. (fixes bug #4519)
if we decide to focus the window, do not use their provided timestamp.
chromium gives a very old timestamp, which means we think we're focusing the
window but it never actually gets focus, leading to inconsistent behaviour by
openbox. use the timestamp for making decisions about passing focus if you
want (we dont right now), but not for the XSetInputFocus call.
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.