X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Ffocus.c;h=02832cea8c7f8ab428490694acbf7b65ce864f7f;hb=1fdb434f5ddac7280676fbe91bed8a3d4d21b850;hp=d78591ba05e79847594888f565dc59676532eff5;hpb=4d50b21835d7dd00ecc40efd64c5573d7e048500;p=chaz%2Fopenbox diff --git a/openbox/focus.c b/openbox/focus.c index d78591ba..02832cea 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -87,25 +87,20 @@ void focus_startup(gboolean reconfig) focus_indicator.right.obwin.type = Window_Internal; focus_indicator.bottom.obwin.type = Window_Internal; - attr.save_under = True; attr.override_redirect = True; attr.background_pixel = BlackPixel(ob_display, ob_screen); focus_indicator.top.win = createWindow(RootWindow(ob_display, ob_screen), - CWOverrideRedirect | CWBackPixel | CWSaveUnder, - &attr); + CWOverrideRedirect | CWBackPixel, &attr); focus_indicator.left.win = createWindow(RootWindow(ob_display, ob_screen), - CWOverrideRedirect | CWBackPixel | CWSaveUnder, - &attr); + CWOverrideRedirect | CWBackPixel, &attr); focus_indicator.right.win = createWindow(RootWindow(ob_display, ob_screen), - CWOverrideRedirect | CWBackPixel | CWSaveUnder, - &attr); + CWOverrideRedirect | CWBackPixel, &attr); focus_indicator.bottom.win = createWindow(RootWindow(ob_display, ob_screen), - CWOverrideRedirect | CWBackPixel | CWSaveUnder, - &attr); + CWOverrideRedirect | CWBackPixel, &attr); stacking_add(INTERNAL_AS_WINDOW(&focus_indicator.top)); stacking_add(INTERNAL_AS_WINDOW(&focus_indicator.left)); @@ -144,7 +139,7 @@ void focus_shutdown(gboolean reconfig) g_free(focus_order); /* reset focus to root */ - XSetInputFocus(ob_display, PointerRoot, RevertToNone, event_lasttime); + XSetInputFocus(ob_display, PointerRoot, RevertToNone, CurrentTime); RrColorFree(color_white); @@ -186,7 +181,7 @@ void focus_set_client(ObClient *client) #endif /* when nothing will be focused, send focus to the backup target */ XSetInputFocus(ob_display, screen_support_win, RevertToNone, - event_lasttime); + event_curtime); XSync(ob_display, FALSE); } @@ -318,6 +313,11 @@ ObClient* focus_fallback_target(ObFocusFallbackType type) if (client_normal(it->data) && client_can_focus(it->data)) return it->data; + /* XXX fallback to the "desktop window" if one exists ? + could store it while going through all the windows in the loop right + above this.. + */ + return NULL; } @@ -391,8 +391,9 @@ void focus_cycle_draw_indicator() gint wt, wl, wr, wb; wt = wl = wr = wb = MAX(3, - ob_rr_theme->handle_height + - ob_rr_theme->bwidth * 2); + MAX(1, MAX(ob_rr_theme->paddingx, + ob_rr_theme->paddingy)) * 2 + + ob_rr_theme->fbwidth * 2); x = focus_cycle_target->frame->area.x; y = focus_cycle_target->frame->area.y; @@ -603,7 +604,7 @@ void focus_cycle(gboolean forward, gboolean linear, gboolean interactive, done_cycle: if (done && focus_cycle_target) - client_activate(focus_cycle_target, FALSE); + client_activate(focus_cycle_target, FALSE, TRUE); t = NULL; first = NULL; @@ -665,7 +666,7 @@ void focus_directional_cycle(ObDirection dir, gboolean interactive, done_cycle: if (done && focus_cycle_target) - client_activate(focus_cycle_target, FALSE); + client_activate(focus_cycle_target, FALSE, TRUE); first = NULL; focus_cycle_target = NULL;