Some fixes for the pager popups, and avoid a crash if you destroy a popup while it...
[mikachu/openbox.git] / openbox / popup.c
index 770f33d..5cbe034 100644 (file)
@@ -65,6 +65,8 @@ ObPopup *popup_new(void)
 void popup_free(ObPopup *self)
 {
     if (self) {
+        popup_hide(self); /* make sure it's not showing or is being delayed and
+                             will be shown */
         XDestroyWindow(ob_display, self->bg);
         XDestroyWindow(ob_display, self->text);
         RrAppearanceFree(self->a_bg);
@@ -320,7 +322,7 @@ void popup_hide(ObPopup *self)
 
         event_end_ignore_all_enters(ignore_start);
     } else if (self->delay_mapped) {
-        ob_main_loop_timeout_remove(ob_main_loop, popup_show_timeout);
+        ob_main_loop_timeout_remove_data(ob_main_loop, popup_show_timeout, self, FALSE);
         self->delay_mapped = FALSE;
     }
 }