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 789163 - Fitzpatrick modifier selection requires lifting mouse button
Fitzpatrick modifier selection requires lifting mouse button
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Input Methods
3.91.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2017-10-18 17:00 UTC by Bastien Nocera
Modified: 2017-11-27 02:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gtkgesturemultipress: Add ::unpaired-release signal (3.70 KB, patch)
2017-11-21 21:40 UTC, Carlos Garnacho
committed Details | Review
gtkflowbox: Activate items on ::unpaired-release (2.07 KB, patch)
2017-11-21 21:40 UTC, Carlos Garnacho
committed Details | Review

Description Bastien Nocera 2017-10-18 17:00:35 UTC
When using the "insert emoji" menu item and long-pressing an emoji that can have a modifier, the modifier selection appears, but doesn't have any highlighting. The user needs to release the mouse button, and click again, to make their selection. They shouldn't have to.
Comment 1 Matthias Clasen 2017-11-19 05:03:31 UTC
There is two problems here:

1) the flowbox single-click mode currently insists that the press and release happened in the same child - this can be worked around with a new activate-on-release mode

2) we need some way to handle the state between the long-press gestures on the parent flowbox and the multipress gesture on the child flowbox. I tried synthesizing a release event for the parent and a press event for the child, but that did not have the desired effect
Comment 2 Carlos Garnacho 2017-11-21 21:40:17 UTC
Created attachment 364148 [details] [review]
gtkgesturemultipress: Add ::unpaired-release signal

This signal will be emitted whenever the gesture received a
button release or touch end event without a pairing button
press or touch begin. This usually happens when grabs transfer
input from one widget to another mid-press.
Comment 3 Carlos Garnacho 2017-11-21 21:40:24 UTC
Created attachment 364149 [details] [review]
gtkflowbox: Activate items on ::unpaired-release

If the flowbox is single-click.
Comment 4 Carlos Garnacho 2017-11-21 21:43:56 UTC
On master with these 2 patches it kinda works, crossing events aren't still properly sent to flowbox items though.
Comment 5 Matthias Clasen 2017-11-22 15:35:37 UTC
Review of attachment 364148 [details] [review]:

::: gtk/gtkgesturemultipress.c
@@ +326,3 @@
+      g_signal_emit (controller, signals[UNPAIRED_RELEASE], 0,
+                     x, y, button, sequence);
+    }

Should there be a return here, or do we still want to feed the event to the parent handler ?

@@ +422,3 @@
+   * its implicit grab.
+   *
+   * Since: 3.93.

Should be 3.94, at least thats what we've been using so far.
Comment 6 Matthias Clasen 2017-11-22 15:36:17 UTC
Review of attachment 364149 [details] [review]:

Looks good. GtkListBox should probably get the same treatment, just to stay in sync.
Comment 7 Matthias Clasen 2017-11-27 02:51:57 UTC
Attachment 364148 [details] pushed as bce9155 - gtkgesturemultipress: Add ::unpaired-release signal
Attachment 364149 [details] pushed as 0567b41 - gtkflowbox: Activate items on ::unpaired-release