Ignore enter events caused by closing openbox menus

This commit is contained in:
Dana Jansens 2009-12-16 10:43:22 -05:00
parent 7c4753ac91
commit 811e3ddbc3

View file

@ -23,6 +23,7 @@
#include "screen.h" #include "screen.h"
#include "prop.h" #include "prop.h"
#include "actions.h" #include "actions.h"
#include "event.h"
#include "grab.h" #include "grab.h"
#include "openbox.h" #include "openbox.h"
#include "mainloop.h" #include "mainloop.h"
@ -949,7 +950,6 @@ gboolean menu_frame_show_topmenu(ObMenuFrame *self, gint x, gint y,
gboolean mouse) gboolean mouse)
{ {
gint px, py; gint px, py;
guint i;
if (menu_frame_is_visible(self)) if (menu_frame_is_visible(self))
return TRUE; return TRUE;
@ -1021,6 +1021,7 @@ gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
static void menu_frame_hide(ObMenuFrame *self) static void menu_frame_hide(ObMenuFrame *self)
{ {
GList *it = g_list_find(menu_frame_visible, self); GList *it = g_list_find(menu_frame_visible, self);
gulong ignore_start;
if (!it) if (!it)
return; return;
@ -1046,7 +1047,9 @@ static void menu_frame_hide(ObMenuFrame *self)
ungrab_keyboard(); ungrab_keyboard();
} }
ignore_start = event_start_ignore_all_enters();
XUnmapWindow(ob_display, self->window); XUnmapWindow(ob_display, self->window);
event_end_ignore_all_enters(ignore_start);
menu_frame_free(self); menu_frame_free(self);
} }