Pressing any global keyboard shortcut causes temporary loss of focus
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mutter |
Expired
|
Medium
|
|||
compiz (Ubuntu) |
Confirmed
|
Low
|
Unassigned | ||
gnome (openSUSE) |
Unknown
|
Unknown
|
|||
gnome-settings-daemon (ALT Linux) |
Unknown
|
Unknown
|
|||
gnome-settings-daemon (Ubuntu) |
Triaged
|
Low
|
Unassigned | ||
gnome-shell (Fedora) |
Confirmed
|
Undecided
|
|||
gnome-shell (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned | ||
mutter (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned | ||
unity-settings-daemon (Ubuntu) |
Triaged
|
Low
|
Unassigned |
Bug Description
When pressing any global keyboard shourtcut (configurable via System settings -> Keyboard -> Shortcuts; i.e. for switching keyboard layout, volume up/down), focus temporary switches from active text input to something else, then restores back shortly. Maybe even active window loses focus, but window frame does not shows this (window header remains to look active).
For example: when I press ctrl+shift here to switch keyboard layout, when writing this description, yellow frame disappears from text input box, text caret disappears too; they appear again when releasing ctrl+shift. The same occurs in all other programs, i.e. terminal.
It causes serious annoyance, for example in Twitter when losing focus in Reply text box, reply rolls up and I have to click it again with mouse and set caret to correct place each time I switch keyboard layouts.
Other key combinations, not only ctrl+shift, also cause this.
It is especially annoying when using keyboard layout switch shortcut handled by the same subsystem (media-keys plugin):
case SWITCH_
case SWITCH_
(Original gnome-settings-
----------
For other layout switching problems introduced in Ubuntu 13.10 you can see bug 1218322.
----------
ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: gnome-session 3.9.90-0ubuntu3
ProcVersionSign
Uname: Linux 3.11.0-12-generic x86_64
ApportVersion: 2.12.5-0ubuntu2
Architecture: amd64
Date: Thu Oct 24 11:42:19 2013
InstallationDate: Installed on 2013-10-23 (0 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Release amd64 (20131016.1)
MarkForUpload: True
PackageArchitec
SourcePackage: gnome-session
UpgradeStatus: No upgrade log present (probably fresh install)
no longer affects: | gnome-session (Ubuntu) |
affects: | ubuntu → gnome-settings-daemon (Ubuntu) |
Changed in gnome-settings-daemon: | |
importance: | Unknown → Medium |
status: | Unknown → New |
Changed in gnome-settings-daemon (Ubuntu): | |
status: | Confirmed → Triaged |
importance: | Undecided → Low |
Changed in gnome-settings-daemon (Ubuntu): | |
status: | Triaged → Confirmed |
tags: |
added: trusty trusty-desktop removed: amd64 |
description: | updated |
tags: | added: keyboard-layout-switching-related |
Changed in unity-settings-daemon (Ubuntu): | |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in gnome-settings-daemon (Ubuntu): | |
status: | Confirmed → Triaged |
Changed in gnome-settings-daemon (openSUSE): | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Changed in compiz (Ubuntu): | |
importance: | Undecided → Low |
Changed in gnome-settings-daemon (openSUSE): | |
status: | Confirmed → Won't Fix |
no longer affects: | unity-settings-daemon |
tags: |
added: amd64 keyboard-layout-switching-hotkeys removed: keyboard-layout-switching-related trusty-desktop |
tags: | removed: amd64 |
Changed in gnome-settings-daemon: | |
status: | New → Confirmed |
tags: | added: wily |
affects: | gnome-settings-daemon (ALT Linux) → ubuntu |
Changed in ubuntu: | |
importance: | Unknown → Undecided |
status: | Unknown → New |
no longer affects: | ubuntu |
affects: | gnome-settings-daemon (Fedora) → ubuntu |
Changed in ubuntu: | |
importance: | Unknown → Undecided |
status: | Unknown → New |
no longer affects: | ubuntu |
affects: | gnome-settings-daemon (openSUSE) → ubuntu |
Changed in ubuntu: | |
importance: | Medium → Undecided |
status: | Won't Fix → New |
no longer affects: | ubuntu |
Changed in ubuntu: | |
status: | New → Confirmed |
affects: | hamster-applet → ubuntu |
no longer affects: | ubuntu |
tags: | added: xenial |
Changed in gnome-shell (Fedora): | |
importance: | Unknown → Undecided |
status: | Unknown → Confirmed |
tags: | added: artful bionic zesty |
Changed in gnome-shell (Ubuntu): | |
status: | New → Confirmed |
Changed in gnome-shell (Ubuntu): | |
assignee: | Penn Mackintosh (penn-mackintosh) → nobody |
status: | In Progress → Confirmed |
tags: | removed: saucy vivid wily zesty |
tags: | removed: artful |
tags: | removed: trusty utopic |
Changed in gnome-settings-daemon: | |
importance: | Medium → Unknown |
status: | Confirmed → Unknown |
affects: | gnome-settings-daemon → mutter |
Changed in mutter (Ubuntu): | |
status: | New → Confirmed |
Changed in mutter: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
tags: | added: focal |
tags: | removed: xenial |
Changed in mutter: | |
status: | Confirmed → Expired |
tags: | removed: bionic |
(I'm not sure if gnome-settings- daemon is the right product for this bug, but anyway.)
I have things so that pressing ShiftL+ShiftR together will change my keyboard layout.
This works fine. However, when I press that key combination, the current window appears to lose focus and regain it instantly. This is a problem with buggy toolkits (cough) that do things like committing or canceling text entries when they lose/gain focus. For example, GtkTreeView will cancel editing, and Firefox will do funny things depending on which web page has entry widgets in it.
This didn't seem to happen a few Gnome versions ago (maybe it was caused by the switch to ibus?).
Here is the xev log for what it's worth. After the initial ShiftL KeyPress, there is a FocusOut/ FocusIn/ KeymapNotify.
KeyPress event, serial 44, synthetic NO, window 0x4800001,
root 0xc1, subw 0x0, time 257173342, (412,453), root:(413,530),
state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
FocusOut event, serial 44, synthetic NO, window 0x4800001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 44, synthetic NO, window 0x4800001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 44, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
MappingNotify event, serial 44, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyRelease event, serial 44, synthetic NO, window 0x4800001,
root 0xc1, subw 0x0, time 257173533, (412,453), root:(413,530),
state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False