Ignore enter events caused by closing openbox menus
This commit is contained in:
parent
7c4753ac91
commit
811e3ddbc3
1 changed files with 4 additions and 1 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue