gnome-shell/js/ui
Daniel Drake fcdac69eea switchMonitor: switch to next config upon initial keypress
In GNOME-3.24, pressing Super+P or a similar function key would cause
a switch to the next available monitor configuration.

However, in GNOME-3.26, this was reimplemented in mutter and gnome-shell
and the behaviour is now different: pressing Super+P and releasing will
cause no change in montor configuration[1]. In this new design you have
to press Super+P and keep holding Super in order to keep the switcher
open, then press P again (or use the arrow keys or mouse) to
select the next one in the list.

This is incompatible with many Asus products such as Asus X530UN, where
pressing the presentation mode media key (Fn+F8) actually generates
the following keypress events from the keyboard controller:

Fn pressed: nothing
F8 pressed: nothing
F8 released: Super press, p press, p release, Super release (quick burst)
Fn released: nothing

With this firmware behaviour it's not possible to hold the keys and have
the dialog come up so that you can select another new mode.

To solve this, when the switcher is opened, select the next available
display config by default, which is more similar to the pre-GNOME-3.26
behaviour. Now pressing Fn+F8 on this laptop will result in the display
mode switch taking place.

[1]: The mentioned desired behaviour will at least happen after
https://gitlab.gnome.org/GNOME/mutter/issues/281 has been fixed

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/208
2018-09-13 16:11:16 +00:00
..
components automountManager: remove allowAutorun expire timeout on volume removal 2018-09-03 22:43:21 +00:00
status network: Don't assume the active connection has been processed first 2018-09-03 23:31:17 +00:00
accessDialog.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
altTab.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
animation.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
appDisplay.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
appFavorites.js appFavorites: Add evolution to rename list 2018-04-10 14:38:26 +00:00
audioDeviceSelection.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
background.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
backgroundMenu.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
barLevel.js barLevel: Add "overdrive" capability 2018-07-31 18:14:14 +00:00
boxpointer.js js/ui: Choose some actors to cache on the GPU 2018-08-27 14:16:59 +00:00
calendar.js calendar: chain up to parent on _onDestroy 2018-09-03 22:43:21 +00:00
checkBox.js cleanup: Use method syntax 2018-02-21 13:54:58 +00:00
closeDialog.js closeDialog: use {disable,enable}_unredirect_for_display 2018-07-08 17:43:15 +02:00
ctrlAltTab.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
dash.js js/ui: Choose some actors to cache on the GPU 2018-08-27 14:16:59 +00:00
dateMenu.js worldClock: Handle named timezones 2018-04-13 09:15:48 +00:00
dialog.js js/ui: Choose some actors to cache on the GPU 2018-08-27 14:16:59 +00:00
dnd.js dnd: Nullify _dragActor after we've destroyed it, and avoid invalid access 2018-09-03 22:43:21 +00:00
edgeDragAction.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
endSessionDialog.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
environment.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
extensionDownloader.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
extensionSystem.js extensionSystem: Unset stylesheet file reference when unloaded 2018-09-03 23:29:01 +00:00
focusCaretTracker.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
grabHelper.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
ibusCandidatePopup.js ibusCandidatePopup: Fix candidate-clicked signal 2018-04-18 13:37:53 +09:00
iconGrid.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
inhibitShortcutsDialog.js cleanup: Use method syntax 2018-02-21 13:54:58 +00:00
kbdA11yDialog.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
keyboard.js keyboard: Refactor code resetting IM on window drags 2018-08-03 17:02:20 +02:00
layout.js layout: Mark chrome container as NO_LAYOUT 2018-08-14 19:13:30 +02:00
lightbox.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
lookingGlass.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
magnifier.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
magnifierDBus.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
main.js js/main: Throw error if no valid default stylesheet is found 2018-09-03 23:29:01 +00:00
messageList.js messageList: stop syncing if closeButton has been destroyed 2018-09-03 22:43:21 +00:00
messageTray.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
modalDialog.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
mpris.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
notificationDaemon.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
osdMonitorLabeler.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
osdWindow.js osdWindow: Allow levels above 100% 2018-07-31 18:14:11 +00:00
overview.js overview: Use whole stage size for cover pane 2018-08-06 10:18:28 +02:00
overviewControls.js overview: Restore previous workspace switcher policy 2018-08-14 17:34:57 +00:00
padOsd.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
panel.js panel: Keep prefs in sync with shell-shows-app-menu state 2018-08-28 23:53:10 +00:00
panelMenu.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
pointerWatcher.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
popupMenu.js popupMenu: Don't handle key presses directly if there are modifiers 2018-07-14 14:04:18 +02:00
remoteMenu.js remoteMenu: Support icons in app-menu 2018-04-14 09:02:20 +00:00
remoteSearch.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
runDialog.js runDialog: Use ClutterText::activate for enter handling 2018-08-17 18:37:32 +00:00
screencast.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
screenShield.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
screenshot.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
scripting.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
search.js search: Ignore search provider results metas if search is cancelled 2018-09-04 01:00:52 +02:00
sessionMode.js Explicitly convert raw data to strings 2018-07-31 16:28:53 +00:00
shellDBus.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
shellEntry.js shellEntry: Use correct enum for input purpose hints 2018-03-14 13:30:47 +00:00
shellMountOperation.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
slider.js barLevel: Support maxValue higher than 1 2018-07-31 18:14:10 +00:00
switcherPopup.js switcherPopup: Cancel window cycling with Tab 2018-07-14 14:35:05 +00:00
switchMonitor.js switchMonitor: switch to next config upon initial keypress 2018-09-13 16:11:16 +00:00
tweener.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
unlockDialog.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
userWidget.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
viewSelector.js viewSelector: Cancel search on overview hidden 2018-09-04 01:00:52 +02:00
windowAttentionHandler.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
windowManager.js workspaceTracker: Don't keep multiple trailing workspaces 2018-09-13 13:44:52 +02:00
windowMenu.js windowMenu: Port from Meta.ScreenDirection to Meta.DisplayDirection 2018-09-11 12:59:07 +02:00
workspace.js workspace: Simplify detecting added dialogs after closing a window 2018-08-03 00:09:02 +02:00
workspacesView.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
workspaceSwitcherPopup.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
workspaceThumbnail.js Revert "workspaceThumbnail: rebuild thumbnails if workareas size changed" 2018-08-19 12:41:08 +00:00
xdndHandler.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00