]> Dogcows Code - chaz/openbox/blobdiff - openbox/focus_cycle_indicator.c
Don't cancel interactive action when another one is run which shares the same run...
[chaz/openbox] / openbox / focus_cycle_indicator.c
index a8e0c2d603e587539c6f3cf3f9c1c0097543b125..a7ebf0140da6d40799cdb36e168545092066f8b3 100644 (file)
@@ -105,6 +105,11 @@ void focus_cycle_indicator_shutdown(gboolean reconfig)
 
     RrAppearanceFree(a_focus_indicator);
 
+    stacking_remove(INTERNAL_AS_WINDOW(&focus_indicator.top));
+    stacking_remove(INTERNAL_AS_WINDOW(&focus_indicator.left));
+    stacking_remove(INTERNAL_AS_WINDOW(&focus_indicator.right));
+    stacking_remove(INTERNAL_AS_WINDOW(&focus_indicator.bottom));
+
     XDestroyWindow(ob_display, focus_indicator.top.win);
     XDestroyWindow(ob_display, focus_indicator.left.win);
     XDestroyWindow(ob_display, focus_indicator.right.win);
@@ -114,13 +119,17 @@ void focus_cycle_indicator_shutdown(gboolean reconfig)
 void focus_cycle_draw_indicator(ObClient *c)
 {
     if (!c) {
+        gulong ignore_start;
+
+        /* kill enter events cause by this unmapping */
+        ignore_start = event_start_ignore_all_enters();
+
         XUnmapWindow(ob_display, focus_indicator.top.win);
         XUnmapWindow(ob_display, focus_indicator.left.win);
         XUnmapWindow(ob_display, focus_indicator.right.win);
         XUnmapWindow(ob_display, focus_indicator.bottom.win);
 
-        /* kill enter events cause by this unmapping */
-        event_ignore_all_queued_enters();
+        event_end_ignore_all_enters(ignore_start);
     } else {
         /*
           if (c)
@@ -158,7 +167,7 @@ void focus_cycle_draw_indicator(ObClient *c)
         RrPaint(a_focus_indicator, focus_indicator.top.win,
                 w, h);
 
-        x = c->area.x;
+        x = c->frame->area.x;
         y = c->frame->area.y;
         w = wl;
         h = c->frame->area.height;
This page took 0.021809 seconds and 4 git commands to generate.