[Bug 56070] Can't click button after setting it sensitive.

gtk+ (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Tue Jan 2 18:48:30 CET 2007


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=56070

  gtk+ | gtk | Ver: 2.6.x





------- Comment #63 from Ed Catmur  2007-01-02 17:46 UTC -------
(In reply to comment #61)
> Some comments on the patch:
> 
> 1) I think we generally write synthesize in GTK+, not synthesise
Foiled! Curses!

> 2) Regarding the 2 roundtrips to set x/y_root and x/y in the event,
>    one idea would be to simply not fill these fields, and document
>    that crossing events with send_event = 1 and crossing.detail == unknown
>    may not have theese fields filled. 
Yeah, that sounds like an option.  I'd prefer to create a new GdkNotifyType in
that case, maybe GDK_NOTIFY_SYNTHESIZED.

> 3) I don't know what invariants we really guarantee for enter/leave
>    events, but shouldn't these be generated in pairs ? I.e. when generating
>    an enter event, the pointer logically comes from somewhere else.
>    Do we need to generate a leave event there ?
Actually, no.  When the pointer moves from a sensitive parent widget into an
insensitive child widget, a leave_notify event is emitted on the parent but no
corresponding enter_notify event is emitted.  So if the application is keeping
track of which widget the pointer is above, when the pointer is above an
insensitive widget it will report the same as when the pointer is outside the
application's main window.
The invariant here is that keeping track of enter/leave notifies, the pointer
is in at most one widget, which must be sensitive. This patch strengthens the
invariant to: the pointer is in the widget it is above if and only if that
widget is sensitive.

Right, I'll work on your comments.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email



More information about the Pkg-gnome-maintainers mailing list