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 302486 - Global motion events
Global motion events
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: Backend: X11
unspecified
Other Linux
: Normal enhancement
: Medium API
Assigned To: gtk-bugs
gtk-bugs
Obsolete patch
: 302467 (view as bug list)
Depends on:
Blocks: 153966
 
 
Reported: 2005-04-29 20:54 UTC by Soren Sandmann Pedersen
Modified: 2018-02-10 03:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
the patch (12.57 KB, patch)
2005-04-29 20:55 UTC, Soren Sandmann Pedersen
none Details | Review
new patch (36.34 KB, patch)
2005-05-06 20:07 UTC, Soren Sandmann Pedersen
none Details | Review
New patch (36.83 KB, patch)
2005-05-13 16:33 UTC, Soren Sandmann Pedersen
needs-work Details | Review

Description Soren Sandmann Pedersen 2005-04-29 20:54:37 UTC
This patch adds the ability to track motion events on a window, regardless of
whether it's covered by child windows and whether the app actually selected for
motion events on it.

There is only an X11 implementation at the moment.
Comment 1 Soren Sandmann Pedersen 2005-04-29 20:55:25 UTC
Created attachment 45843 [details] [review]
the patch
Comment 2 Soren Sandmann Pedersen 2005-04-29 20:57:07 UTC
The patch includes the changes from bug 320467.
Comment 3 Soren Sandmann Pedersen 2005-05-06 18:43:07 UTC
*** Bug 302467 has been marked as a duplicate of this bug. ***
Comment 4 Soren Sandmann Pedersen 2005-05-06 19:50:17 UTC
Here is a new patch that

   - uses a simpler scheme, suggested by Owen, inside gdk (just one bit and a
     serial number in GdkDisplayX11).

   - hooks the motion events up inside gtkwindow.c

Some problems:

   - X doesn't send motion events when a window moves underneath the cursor. 
     This means no events are generated when you scroll a GtkViewport.

   - When you move the cursor after scrolling a GtkViewport, the wrong 
     events are generated, because GtkWindow caches the previous cursor
     location which becomes wrong when the window moves.

   - No events are generated when widgets move by themselves 

   - No events are generated when a self-scrolling widget scrolls.

Possible solution to this:

   - Track the pointer position in GdkDisplayX11, then synthesize motion
     events when a window is moved

   - Generate global events out of gtk_window_size_allocate(). This
     would not work with widgets with resize-modes different from 
     resize_parent, so that would have to worked around in   
     gtk_widget_size_allocate()

   - Say that self-scrolling widgets are themselves responsible for keeping
     track of the cursor.
Comment 5 Soren Sandmann Pedersen 2005-05-06 20:07:19 UTC
Created attachment 46106 [details] [review]
new patch
Comment 6 Soren Sandmann Pedersen 2005-05-13 16:33:35 UTC
Created attachment 46398 [details] [review]
New patch

This patch should properly handle apps that select for BUTTON_MOTION_N, but not
POINTER_MOTION.
Comment 7 Matthias Clasen 2005-06-20 19:58:04 UTC
See Owens mail to gtk-devel-list, 
http://mail.gnome.org/archives/gtk-devel-list/2005-May/msg00082.html
and the thread surrounding it, for more information
Comment 8 makuchaku (Mayank) 2007-03-27 14:49:13 UTC
Some hunks fail to apply in patch attached in comment 6
Comment 9 André Klapper 2012-05-06 21:00:54 UTC
Comment on attachment 46398 [details] [review]
New patch

Some hunks fail to apply => needs-work
Comment 10 Matthias Clasen 2018-02-10 03:42:33 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.