Dana Jansens [Tue, 30 Mar 2010 02:38:05 +0000 (22:38 -0400)]
parse some of the .desktop stuff into an ObtLink structure
localized names still don't work.
most of the app-specific stuff isn't done yet.
categories aren't handled yet (to only show in/not show in some category)
Dana Jansens [Tue, 30 Mar 2010 00:36:35 +0000 (20:36 -0400)]
if a launch time isnt there (like for client_activate) assume the window launched before the last desktop switch, not after. ie don't change desktops if you're not sure.
Dana Jansens [Fri, 26 Mar 2010 01:10:45 +0000 (21:10 -0400)]
Add a new ObtLink type, which is going to be a generalization of a .desktop entry.
Move the .desktop file parsing details into obt/ddparse.c, which generates
some hash tables holding the data of the file.
Add a new obt/link.c which will build an ObtLink from a parsed .desktop file,
and may support other ways to create these links in the unforseeable future
David Barr [Tue, 9 Mar 2010 12:00:02 +0000 (13:00 +0100)]
Add menu seperator style to Clearlooks
The default themerc is quite old and does not include the slightly newer
option to theme the menu seperator, here is a patch to fix that and some
very trivial tweaks to overall theme to better match the metacity/gtk
version.
Dana Jansens [Mon, 1 Mar 2010 21:30:06 +0000 (16:30 -0500)]
add a function client_is_oldfullscreen() that determines if a window is an "oldschool fullscreen window" or not. use this throughout. and allow oldschool fullscreen windows to move to 0,0 even with a strut there.
Dana Jansens [Mon, 1 Mar 2010 20:55:27 +0000 (15:55 -0500)]
when an app tries to move to 0,0 and there is a strut there (java swing!), move it to inside the strut instead (unless it is an oldschool fullscreen app)
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