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 674955 - umlaut popup does not work
umlaut popup does not work
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: keyboard
3.4.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2012-04-27 13:23 UTC by noonien
Modified: 2013-01-04 13:16 UTC
See Also:
GNOME target: 3.8
GNOME version: ---


Attachments
keyboard: prevent focus lose when extended keys are hidden (1.22 KB, patch)
2012-08-21 09:14 UTC, Daiki Ueno
none Details | Review
keyboard: Fix subkeys handling (7.46 KB, patch)
2012-11-19 14:40 UTC, Rui Matos
reviewed Details | Review
keyboard: Don't set keys as checked (1.26 KB, patch)
2012-11-19 14:41 UTC, Rui Matos
committed Details | Review
keyboard: Fix subkeys handling (6.39 KB, patch)
2012-12-21 16:55 UTC, Rui Matos
committed Details | Review

Description noonien 2012-04-27 13:23:43 UTC
Hi, when I'm entering an umlaut symbol like Ä (by holding the A-button a second and click the Ä in the popup) the keyboard minimises when the "subchar"-window closes. 

The desired char can be entered, but its not very comfortable to restore the keyboard after every special character. 

This was not the case in Gnome 3.2 by the way. 

Thanks!
Comment 1 Daiki Ueno 2012-08-21 09:14:27 UTC
Created attachment 221970 [details] [review]
keyboard: prevent focus lose when extended keys are hidden

"key-focus-changed" handler assumes that a key actor keeps focus
until the extended keys boxpointer is hidden.  However, popModal
in Key._ungrab resets the focus to the stage, and thus the entire
keyboard is hidden after key press.  This patch makes sure to set
the key focus to the trigger key actor before pushModal.
Comment 2 Matthias Clasen 2012-10-11 12:36:39 UTC
while fixing the umlaut popup, we should keep in mind that we may want to reuse it for https://live.gnome.org/GnomeOS/Design/Whiteboards/ExtraCharacters
Comment 3 Rui Matos 2012-11-19 14:40:15 UTC
Created attachment 229373 [details] [review]
keyboard: Fix subkeys handling

We can't pushModal() when showing the subkeys popup because that will
cause the application to lose focus and thus we get a Hide() call for
the whole OSK.

Instead, capture events on the main OSK actor while the subkeys popup
is shown so that we can both prevent events from reaching the main
keys but also cancel the subkeys if the user clicks away in the the
OSK.
Comment 4 Rui Matos 2012-11-19 14:41:18 UTC
Created attachment 229374 [details] [review]
keyboard: Don't set keys as checked

There's no reason to do it and it actually breaks when showing subkeys
since then we won't get a 'key-released' signal for the main key.
Comment 5 Jasper St. Pierre (not reading bugmail) 2012-12-21 14:47:36 UTC
Review of attachment 229374 [details] [review]:

OK.
Comment 6 Jasper St. Pierre (not reading bugmail) 2012-12-21 15:02:32 UTC
Review of attachment 229373 [details] [review]:

Yikes, this is a bit messy.

::: js/ui/keyboard.js
@@ +318,3 @@
+
+        if (!press && !release)
+            return true;

This will be handled implicitly by below.

@@ +331,3 @@
+                if (hoveredActor._delegate &&
+                    hoveredActor._delegate instanceof Key) {
+                    hoveredActor.set_hover(true);

sync_hover?

@@ +368,3 @@
+                    if (this._subkeysBoxPointer) {
+                        if (this._subkeysBoxPointer == button.subkeys)
+                            return;

Could this realistically happen?

@@ +379,3 @@
+                button.connect('hide-subkeys', Lang.bind(this, function() {
+                    if (this._subkeysBoxPointer != button.subkeys)
+                        return;

Could this realistically happen?
Comment 7 Rui Matos 2012-12-21 16:55:30 UTC
Created attachment 232075 [details] [review]
keyboard: Fix subkeys handling

--
(In reply to comment #6)
> Review of attachment 229373 [details] [review]:
> @@ +331,3 @@
> +                if (hoveredActor._delegate &&
> +                    hoveredActor._delegate instanceof Key) {
> +                    hoveredActor.set_hover(true);
>
> sync_hover?

As we discussed on IRC, this is about the actor over which the pointer
is when the popup goes down, which might or might not be the one from
where the popup originates. We agreed on IRC that we need something
like a shell_global_sync_hover() to handle this correctly everywhere
so I'm removing these bits from this patch and keeping it strictly
about the OSK subkeys functionality. We'll handle the hover in another
bug.

I removed the other unneeded conditions you pointed.
Comment 8 Jasper St. Pierre (not reading bugmail) 2013-01-04 13:08:22 UTC
Review of attachment 232075 [details] [review]:

OK.
Comment 9 Rui Matos 2013-01-04 13:16:01 UTC
Attachment 229374 [details] pushed as 6255c77 - keyboard: Don't set keys as checked
Attachment 232075 [details] pushed as c33622f - keyboard: Fix subkeys handling