don't allow inventive users to open the menu while in an interactive grab (ie changing focus or desktop)

This commit is contained in:
Mikael Magnusson 2006-08-16 17:38:41 +00:00
parent 5b288939ab
commit 1ffd89672f
3 changed files with 9 additions and 1 deletions

View file

@ -288,6 +288,11 @@ void keyboard_event(ObClient *client, const XEvent *e)
}
}
gboolean keyboard_interactively_grabbed()
{
return !!interactive_states;
}
void keyboard_startup(gboolean reconfig)
{
grab_keys(TRUE);

View file

@ -43,6 +43,7 @@ gboolean keyboard_interactive_grab(guint state, struct _ObClient *client,
struct _ObAction *action);
gboolean keyboard_process_interactive_grab(const XEvent *e,
struct _ObClient **client);
gboolean keyboard_interactively_grabbed();
void keyboard_grab_for_client(struct _ObClient *c, gboolean grab);

View file

@ -24,6 +24,7 @@
#include "config.h"
#include "screen.h"
#include "menuframe.h"
#include "keyboard.h"
#include "geom.h"
#include "misc.h"
#include "client_menu.h"
@ -286,7 +287,8 @@ void menu_show(gchar *name, gint x, gint y, ObClient *client)
ObMenuFrame *frame;
guint i;
if (!(self = menu_from_name(name))) return;
if (!(self = menu_from_name(name))
|| keyboard_interactively_grabbed()) return;
/* if the requested menu is already the top visible menu, then don't
bother */