X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Ffocus_cycle_indicator.c;h=895279037eb2fce32d1e13c6d9636cfb5fd92c20;hb=c1d21a1a6d88189ab3c5569b2b776d846bb6c11a;hp=79c76e2fd29cb54268af1e2a316603f63d26eded;hpb=52369e319f11e1189e8980f64974236eeb4de96e;p=chaz%2Fopenbox diff --git a/openbox/focus_cycle_indicator.c b/openbox/focus_cycle_indicator.c index 79c76e2f..89527903 100644 --- a/openbox/focus_cycle_indicator.c +++ b/openbox/focus_cycle_indicator.c @@ -23,7 +23,7 @@ #include "openbox.h" #include "frame.h" #include "event.h" -#include "render/render.h" +#include "obrender/render.h" #include #include @@ -59,10 +59,10 @@ void focus_cycle_indicator_startup(gboolean reconfig) if (reconfig) return; - focus_indicator.top.obwin.type = OB_WINDOW_CLASS_INTERNAL; - focus_indicator.left.obwin.type = OB_WINDOW_CLASS_INTERNAL; - focus_indicator.right.obwin.type = OB_WINDOW_CLASS_INTERNAL; - focus_indicator.bottom.obwin.type = OB_WINDOW_CLASS_INTERNAL; + focus_indicator.top.type = OB_WINDOW_CLASS_INTERNAL; + focus_indicator.left.type = OB_WINDOW_CLASS_INTERNAL; + focus_indicator.right.type = OB_WINDOW_CLASS_INTERNAL; + focus_indicator.bottom.type = OB_WINDOW_CLASS_INTERNAL; attr.override_redirect = True; attr.background_pixel = BlackPixel(obt_display, ob_screen); @@ -133,6 +133,12 @@ void focus_cycle_indicator_shutdown(gboolean reconfig) XDestroyWindow(obt_display, focus_indicator.bottom.window); } +void focus_cycle_update_indicator(ObClient *c) +{ + if (visible) + focus_cycle_draw_indicator(c); +} + void focus_cycle_draw_indicator(ObClient *c) { if (!c && visible) { @@ -158,6 +164,7 @@ void focus_cycle_draw_indicator(ObClient *c) */ gint x, y, w, h; gint wt, wl, wr, wb; + gulong ignore_start; wt = wl = wr = wb = FOCUS_INDICATOR_WIDTH; @@ -166,6 +173,9 @@ void focus_cycle_draw_indicator(ObClient *c) w = c->frame->area.width; h = wt; + /* kill enter events cause by this moving */ + ignore_start = event_start_ignore_all_enters(); + XMoveResizeWindow(obt_display, focus_indicator.top.window, x, y, w, h); a_focus_indicator->texture[0].data.lineart.x1 = 0; @@ -270,6 +280,8 @@ void focus_cycle_draw_indicator(ObClient *c) XMapWindow(obt_display, focus_indicator.right.window); XMapWindow(obt_display, focus_indicator.bottom.window); + event_end_ignore_all_enters(ignore_start); + visible = TRUE; } }