After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 152566 - mouse events blocked over other widgets by closing of GtkComboBox popup window
mouse events blocked over other widgets by closing of GtkComboBox popup window
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: Backend: Win32
2.6.x
Other Windows
: Normal normal
: Small fix
Assigned To: gtk-win32 maintainers
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2004-09-14 03:01 UTC by Todd A. Fisher
Modified: 2018-02-10 03:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
implements GDK_CROSING_GRAB/UNGRAB (2.45 KB, patch)
2004-09-22 05:41 UTC, Todd A. Fisher
needs-work Details | Review

Description Todd A. Fisher 2004-09-14 03:01:48 UTC
GtkCombo,GtkComboBox and maybe even menus, with the interaction between those
widgets and GtkButtons.

The bug specifically happens when you click on a the down arrow in a combobox to
drop its menu down.  Then move the mouse off the button and over another
Gtkbutton without doing any clicking.

Finally, with the mouse positioned over another button, not the arrow button of
the combobox, try to clicking on the button. In win32 it does not send a clicked
event indicating the button widget never recieved any mouse activity.

Visibly, it appears the widget never recieved a focus event as it does not
highlight as it would had I moved the mouse over the widget under normal conditions.
Comment 1 Robert Ögren 2004-09-14 20:05:08 UTC
As I said in bug #137551 I think the problem here is that gdk_pointer_grab and
gdk_display_pointer_ungrab in gdk/win32/gdkevents-win32.c do not generate
GDK_ENTER_NOTIFY/GDK_LEAVE_NOTIFY as they should. There are even comments
hinting at this in those functions:

      /* FIXME: Generate GDK_CROSSING_GRAB events */
Comment 2 Todd A. Fisher 2004-09-22 05:41:11 UTC
Created attachment 31811 [details] [review]
implements GDK_CROSING_GRAB/UNGRAB

I've created a patch that implements what I understand to be a
GDK_CROSSING_GRAB/UNGRAB event pair; the sending of a GDK_ENTER_NOTIFY on the
grab and the sending of a GDK_LEAVE_NOTIFY on the ungrab.  this seems to fix
the grab problems with GtkComboBox and GtkCombo.
Comment 3 Hans Breuer 2004-12-06 00:04:15 UTC
Not theat I'm an expert in this, but shouldn't there be
event->crossing.mode = GDK_CROSSING_GRAB some where in
the patch ?
Comment 4 Todd A. Fisher 2004-12-06 01:14:59 UTC
I was under the impression that a GDK_CROSSING_GRAB is defined by 
sending a GDK_ENTER_NOTIFY event and GDK_LEAVE_NOTIFY event to each window.
I could be wrong, it has been a while since I wrote this patch.  I believe
GDK_CROSSING_GRAB is not a macro and just a concept.
Comment 5 Tor Lillqvist 2004-12-06 01:18:38 UTC
GDK_CROSSING_GRAB is one value in the enum GdkCrossingMode.
Comment 6 Todd A. Fisher 2004-12-06 01:28:36 UTC
"Not theat I'm an expert in this, but shouldn't there be
event->crossing.mode = GDK_CROSSING_GRAB some where in
the patch ?"

Ok, you are correct. I did not understand your question the first time. 
So, does this patch seem correct if we add
a line 

event->crossing.mode = GDK_CROSSING_GRAB;

before the the line:

append_event( gdk_display_get_default(), event );

?
Comment 7 Philip Withnall 2007-05-26 14:47:22 UTC
Patch doesn't apply cleanly. Reviewing it would take little time.

(Working on http://mail.gnome.org/archives/gtk-devel-list/2007-March/msg00148.html)
Comment 8 Matthias Clasen 2018-02-10 03:24:05 UTC
We're moving to gitlab! As part of this move, we are closing bugs that haven't seen activity in more than 5 years. If this issue is still imporant to you and
still relevant with GTK+ 3.22 or master, please consider creating a gitlab issue
for it.