summaryrefslogtreecommitdiff
path: root/openbox/focus.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-15 11:29:17 +0000
committerDana Jansens <danakj@orodu.net>2003-09-15 11:29:17 +0000
commit3a607fad9df628ab16e0f7436dfbfc9b22634003 (patch)
treec0ecef407854de06971ac9b361e3e155bae5dac4 /openbox/focus.c
parentebf24d5224781e47b62cf20fb3852ef9782f200b (diff)
revert my commit of d3th, it fucked up focus badly
Diffstat (limited to 'openbox/focus.c')
-rw-r--r--openbox/focus.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index 2582736b..a7904910 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -73,7 +73,7 @@ void focus_set_client(ObClient *client)
screen_install_colormap(focus_client, FALSE);
screen_install_colormap(client, TRUE);
- if (!client) {
+ if (client == NULL) {
/* when nothing will be focused, send focus to the backup target */
XSetInputFocus(ob_display, screen_support_win, RevertToPointerRoot,
event_lasttime);
@@ -87,22 +87,16 @@ void focus_set_client(ObClient *client)
old = focus_client;
focus_client = client;
- if (old) {
- /* focus state can affect the stacking layer */
- client_calc_layer(old);
- }
- if (client) {
- /* focus state can affect the stacking layer */
- client_calc_layer(client);
-
- /* move to the top of the list */
+ /* move to the top of the list */
+ if (client != NULL)
push_to_top(client);
- }
- /* set the NET_ACTIVE_WINDOW hint */
- active = client ? client->window : None;
- PROP_SET32(RootWindow(ob_display, ob_screen),
- net_active_window, window, active);
+ /* set the NET_ACTIVE_WINDOW hint, but preserve it on shutdown */
+ if (ob_state() != OB_STATE_EXITING) {
+ active = client ? client->window : None;
+ PROP_SET32(RootWindow(ob_display, ob_screen),
+ net_active_window, window, active);
+ }
}
static gboolean focus_under_pointer()