From 97890e21cdb23ce3fc31dd1e0ce24537a45cc599 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 8 Dec 2009 11:11:41 -0500 Subject: Change _net_active_window behaviour. Move focus on _net_active_window "app" requests if focus stealing would be allowed. If focus is not given to the target window and it is hilited (or any other situation where it is hilited) and the window is on another desktop, then also raise it and make it the LRU window, so when you switch desktops you go right to it. --- openbox/event.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'openbox/event.c') diff --git a/openbox/event.c b/openbox/event.c index 71fed413..93c5fa21 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1323,10 +1323,7 @@ static void event_handle_client(ObClient *client, XEvent *e) (e->xclient.data.l[0] == 2 ? "user" : "INVALID")))); /* XXX make use of data.l[2] !? */ if (e->xclient.data.l[0] == 1 || e->xclient.data.l[0] == 2) { - /* don't use the user's timestamp for client_focus, cuz if it's - an old broken timestamp (happens all the time) then focus - won't move even though we're trying to move it - event_curtime = e->xclient.data.l[1];*/ + event_curtime = e->xclient.data.l[1]; if (e->xclient.data.l[1] == 0) ob_debug_type(OB_DEBUG_APP_BUGS, "_NET_ACTIVE_WINDOW message for window %s is" -- cgit v1.2.3 From 07126124c9242a5a20883c3145464730e50afe94 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 8 Dec 2009 11:32:40 -0500 Subject: Fix client_activate() to work for internal Openbox menus client_activate() is a helpful way to focus a window on another desktop, but only Openbox is allowed to do such things, user messages cannot. --- openbox/event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'openbox/event.c') diff --git a/openbox/event.c b/openbox/event.c index 93c5fa21..e07d6a31 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1332,7 +1332,7 @@ static void event_handle_client(ObClient *client, XEvent *e) ob_debug_type(OB_DEBUG_APP_BUGS, "_NET_ACTIVE_WINDOW message for window %s is " "missing source indication\n", client->title); - client_activate(client, TRUE, TRUE, TRUE, + client_activate(client, FALSE, TRUE, TRUE, (e->xclient.data.l[0] == 0 || e->xclient.data.l[0] == 2)); } else if (msgtype == prop_atoms.net_wm_moveresize) { -- cgit v1.2.3