Re: GdkEventMask?
- From: Tristan Van Berkom <vantr touchtunes com>
- To: Andreas Volz <andreas brachttal net>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: GdkEventMask?
- Date: Thu, 10 Jul 2003 09:42:08 -0400
rootwindow = gdk_window_foreign_new (gdk_x11_get_default_root_xwindow());
hmmm, this is in some kind of callback function ?
This is just an educated guess but here goes:
this:
gdk_x11_get_default_root_xwindow()
will probably return an int (XID) reference to an X resource (which is
an "x window" in
this case).
and this:
gdk_window_foreign_new(XID *)
_will_ create a new GdkWindow.
a "GdkEventMask" will apply to some flags in the newly created
"GdkWindow"; it will affect what events you have filtered out in
the "gdk" api; not the "xlib" api.
so; you want to create _one_ GdkWindow and only reference it
in your callbacks. (you probably had some memory leak also
from the continous creation of GdkWindow objects).
Hope this helps,
-Tristan
Andreas Volz wrote:
Hi,
I use this in my gdk-app to show if a event is available for root
window:
GdkEventMask unavailable_events;
GdkWindow *rootwindow;
rootwindow = gdk_window_foreign_new (gdk_x11_get_default_root_xwindow());
unavailable_events = gdk_window_get_events(rootwindow);
if ((unavailable_events & GDK_BUTTON_PRESS_MASK) == GDK_BUTTON_PRESS_MASK)
{
printf ("GDK_BUTTON_PRESS_MASK not available for root window\n");
exit (1);
}
else
{
printf ("GDK_BUTTON_PRESS_MASK available for root window\n");
gdk_window_set_events (rootwindow, GDK_BUTTON_PRESS_MASK);
}
I want to check it, because if not my app crashes with:
The program 'grootevent' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAccess (attempt to access private resource denied)'.
(Details: serial 44 error_code 10 request_code 2 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
But it doesn't work. I go everytime into the else-part. What did I wrong?
Thanks
Andreas
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]