X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fpopup.c;h=15d1bf52bed291cb342b3ffee40263003e407468;hb=6be65a7ddd453bded890a90bb5c0b84b2a89c65a;hp=071f5b62e2c5d9a40208170d40a27cb449a7450f;hpb=dc6564619fdc9940a3d9db8528483c27f6bcb894;p=chaz%2Fopenbox diff --git a/openbox/popup.c b/openbox/popup.c index 071f5b62..15d1bf52 100644 --- a/openbox/popup.c +++ b/openbox/popup.c @@ -58,6 +58,7 @@ ObPopup *popup_new(void) XMapWindow(ob_display, self->text); stacking_add(INTERNAL_AS_WINDOW(self)); + g_hash_table_insert(window_map, &self->bg, self); return self; } @@ -68,6 +69,7 @@ void popup_free(ObPopup *self) XDestroyWindow(ob_display, self->text); RrAppearanceFree(self->a_bg); RrAppearanceFree(self->a_text); + g_hash_table_remove(window_map, &self->bg); stacking_remove(self); g_free(self); } @@ -255,6 +257,8 @@ void popup_delay_show(ObPopup *self, gulong usec, gchar *text) x=MAX(MIN(x, area->x+area->width-w),area->x); y=MAX(MIN(y, area->y+area->height-h),area->y); + g_free(area); + if (m == screen_num_monitors) { RECT_SET(mon, x, y, w, h); m = screen_find_monitor(&mon); @@ -264,6 +268,8 @@ void popup_delay_show(ObPopup *self, gulong usec, gchar *text) x=MAX(MIN(x, area->x+area->width-w),area->x); y=MAX(MIN(y, area->y+area->height-h),area->y); + + g_free(area); } /* set the windows/appearances up */ @@ -299,8 +305,6 @@ void popup_delay_show(ObPopup *self, gulong usec, gchar *text) popup_show_timeout(self); } } - - g_free(area); } void popup_hide(ObPopup *self)