-/* -*- indent-tabs-mode: t; tab-width: 4; c-basic-offset: 4; -*-
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
grab.c for the Openbox window manager
Copyright (c) 2003 Ben Jansens
/*! A list of all possible combinations of keyboard lock masks */
static unsigned int mask_list[MASK_LIST_SIZE];
+static guint kgrabs = 0;
+static guint pgrabs = 0;
+
+gboolean grab_on_keyboard()
+{
+ return kgrabs > 0;
+}
+
+gboolean grab_on_pointer()
+{
+ return pgrabs > 0;
+}
gboolean grab_keyboard(gboolean grab)
{
- static guint kgrabs = 0;
gboolean ret = FALSE;
if (grab) {
gboolean grab_pointer(gboolean grab, ObCursor cur)
{
- static guint pgrabs = 0;
gboolean ret = FALSE;
if (grab) {
else
ret = TRUE;
} else if (pgrabs > 0) {
- if (--pgrabs == 0)
+ if (--pgrabs == 0) {
XUngrabPointer(ob_display, event_lasttime);
+ }
ret = TRUE;
}
return ret;
gboolean grab_pointer_window(gboolean grab, ObCursor cur, Window win)
{
- static guint pgrabs = 0;
gboolean ret = FALSE;
if (grab) {
else
ret = TRUE;
} else if (pgrabs > 0) {
- if (--pgrabs == 0)
+ if (--pgrabs == 0) {
XUngrabPointer(ob_display, event_lasttime);
+ }
ret = TRUE;
}
return ret;