Re: Problem with gdk_pointer_is_grabbed() + test program
- From: Owen Taylor <otaylor redhat com>
- To: gtk-devel-list redhat com
- Subject: Re: Problem with gdk_pointer_is_grabbed() + test program
- Date: 07 Apr 1999 21:36:02 -0400
Damon Chaplin <damon@karuna.freeserve.co.uk> writes:
> Damon Chaplin wrote:
> > 
> > gdk_pointer_is_grabbed() often returns 0 even if there is a grab.
> 
> 
> I've just remembered that X does an automatic pointer grab if a
> window selects both button_press & button_release events.
> 
> So gdk_pointer_is_grabbed() shouldn't be considered totally reliable.
This isn't in itself a problem for your application, since
such grabs will be released when the mouse pointer is
released, automatically.
There are other reasons why gdk_pointer_is_grabbed() is not
reliable (it was implemented perhaps without a full understanding
of how grabs work in X) - it doesn't account for the fact that the 
grab is released from  not-viewable windows, it won't catch a grab 
that was made directly from XLib (including passive grabs).
I'd guess your problem occurs because of a lack of a flush -
The CList has released the grab but X hasn't been informed
of the fact yet. Try putting a gdk_flush() before you
abort. 
(xnest and keyboard shortcuts to switch active windows are
other ways to deal with debugging through grabs)
Regards,
                                        Owen
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]