I made a few changes in gtk/gdk/gdkevents.c,
_gdk_event_queue_handle_motion_compression().
gdk_frame_clock_request_phase (clock,
GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) at the end of the function is always
called. Without event compression I get an output such as
276 motion 122.582:89.4453
277 motion 123.582:88.4453
278 motion 124.582:88.4453
279 motion 124.582:87.4453
Then when I press a mouse button:
(example:17002): Gdk-CRITICAL **: 19:11:02.499:
gdk_window_get_frame_clock: assertion 'GDK_IS_WINDOW (window)' failed
280 button pressed 124.582:87.4453
(example:17002): Gdk-CRITICAL **: 19:11:02.587:
gdk_window_get_frame_clock: assertion 'GDK_IS_WINDOW (window)' failed
281 button released 124.582:87.4453
The same coordinates as in the last motion event. No motion event when
the mouse button is pressed.
The critical messages show that my changes of
_gdk_event_queue_handle_motion_compression() is not the right solution,
but the behavior shows (I believe) that the last motion event before the
mouse click is available somewhere in GTK before the mouse is clicked.
Den 2022-05-24 kl. 03:40, skrev JLM via gtkmm-list:
I have managed to cobble together a program in C which does the same
thing and confirmed that it is not a specific GTKMM problem at least.
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list