Re: emit_event warning in GnomeCanvas
- From: jacob berkman <jacob ximian com>
- To: Darin Adler <darin bentspoon com>
- Cc: gnome-libs-devel gnome org, Owen Taylor <otaylor redhat com>
- Subject: Re: emit_event warning in GnomeCanvas
- Date: 07 Dec 2001 13:59:05 -0500
On Fri, 2001-12-07 at 13:43, Darin Adler wrote:
> On 12/7/01 10:38 AM, "jacob berkman" <jacob ximian com> wrote:
>
> > is there a mechanism for propogating debug flags from gtk to gdk?
> > should i add a function gdk_disable_pointer_grabs() ?
>
> Gdk has its own debug flags. GDK_DEBUG. Grep for it.
ahh thanks. i should have guessed that.
here's an initial patch that does what my old one did.
is it necessary to do the checks before every XGrab* and XUngrab* call,
or is this sufficiently helpful?
jacob
--
"In fact, can you imagine anything more terrifying than a zombie clown?"
-- moby
Index: gdk/gdkinternals.h
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/gdkinternals.h,v
retrieving revision 1.12
diff -u -r1.12 gdkinternals.h
--- gdk/gdkinternals.h 2001/11/18 02:15:48 1.12
+++ gdk/gdkinternals.h 2001/12/07 19:01:07
@@ -67,7 +67,8 @@
GDK_DEBUG_MISC = 1 << 0,
GDK_DEBUG_EVENTS = 1 << 1,
GDK_DEBUG_DND = 1 << 2,
- GDK_DEBUG_XIM = 1 << 3
+ GDK_DEBUG_XIM = 1 << 3,
+ GDK_DEBUG_NOGRABS = 1 << 4,
} GdkDebugFlag;
#ifndef GDK_DISABLE_DEPRECATED
Index: gdk/x11/gdkmain-x11.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/x11/gdkmain-x11.c,v
retrieving revision 1.140
diff -u -r1.140 gdkmain-x11.c
--- gdk/x11/gdkmain-x11.c 2001/10/26 23:43:32 1.140
+++ gdk/x11/gdkmain-x11.c 2001/12/07 19:01:08
@@ -95,7 +95,8 @@
{"events", GDK_DEBUG_EVENTS},
{"misc", GDK_DEBUG_MISC},
{"dnd", GDK_DEBUG_DND},
- {"xim", GDK_DEBUG_XIM}
+ {"xim", GDK_DEBUG_XIM},
+ {"nograbs", GDK_DEBUG_NOGRABS},
};
static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey);
@@ -298,14 +299,20 @@
if (return_val == GrabSuccess)
{
if (!GDK_WINDOW_DESTROYED (window))
- return_val = XGrabPointer (GDK_WINDOW_XDISPLAY (window),
- xwindow,
- owner_events,
- xevent_mask,
- GrabModeAsync, GrabModeAsync,
- xconfine_to,
- xcursor,
- time);
+ {
+#ifdef G_ENABLE_DEBUG
+ if (_gdk_debug_flags & GDK_DEBUG_NOGRABS)
+ return_val = GrabSuccess;
+ else
+#endif
+ return_val = XGrabPointer (GDK_WINDOW_XDISPLAY (window),
+ xwindow,
+ owner_events,
+ xevent_mask,
+ GrabModeAsync, GrabModeAsync,
+ xconfine_to,
+ xcursor,
+ time);
else
return_val = AlreadyGrabbed;
}
@@ -335,8 +342,10 @@
gdk_pointer_ungrab (guint32 time)
{
_gdk_input_ungrab_pointer (time);
-
- XUngrabPointer (gdk_display, time);
+#ifdef G_ENABLE_DEBUG
+ if (!(_gdk_debug_flags & GDK_DEBUG_NOGRABS)
+#endif
+ XUngrabPointer (gdk_display, time);
_gdk_xgrab_window = NULL;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]