switchMonitor: Only show 'mirror' and 'join' modes when not a laptop
The 'external only' and 'builtin only' options makes no sense if there are only external monitors. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3276 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2056>
This commit is contained in:
parent
7d859fb859
commit
37271ffe70
@ -10,26 +10,44 @@ var APP_ICON_SIZE = 96;
|
|||||||
var SwitchMonitorPopup = GObject.registerClass(
|
var SwitchMonitorPopup = GObject.registerClass(
|
||||||
class SwitchMonitorPopup extends SwitcherPopup.SwitcherPopup {
|
class SwitchMonitorPopup extends SwitcherPopup.SwitcherPopup {
|
||||||
_init() {
|
_init() {
|
||||||
let items = [{ icon: 'view-mirror-symbolic',
|
let items = [];
|
||||||
/* Translators: this is for display mirroring i.e. cloning.
|
|
||||||
* Try to keep it under around 15 characters.
|
items.push({
|
||||||
*/
|
icon: 'view-mirror-symbolic',
|
||||||
label: _('Mirror') },
|
/* Translators: this is for display mirroring i.e. cloning.
|
||||||
{ icon: 'video-joined-displays-symbolic',
|
* Try to keep it under around 15 characters.
|
||||||
/* Translators: this is for the desktop spanning displays.
|
*/
|
||||||
* Try to keep it under around 15 characters.
|
label: _('Mirror'),
|
||||||
*/
|
switchMode: Meta.MonitorSwitchConfigType.ALL_MIRROR,
|
||||||
label: _('Join Displays') },
|
});
|
||||||
{ icon: 'video-single-display-symbolic',
|
|
||||||
/* Translators: this is for using only an external display.
|
items.push({
|
||||||
* Try to keep it under around 15 characters.
|
icon: 'video-joined-displays-symbolic',
|
||||||
*/
|
/* Translators: this is for the desktop spanning displays.
|
||||||
label: _('External Only') },
|
* Try to keep it under around 15 characters.
|
||||||
{ icon: 'computer-symbolic',
|
*/
|
||||||
/* Translators: this is for using only the laptop display.
|
label: _('Join Displays'),
|
||||||
* Try to keep it under around 15 characters.
|
switchMode: Meta.MonitorSwitchConfigType.ALL_LINEAR,
|
||||||
*/
|
});
|
||||||
label: _('Built-in Only') }];
|
|
||||||
|
if (global.backend.get_monitor_manager().has_builtin_panel) {
|
||||||
|
items.push({
|
||||||
|
icon: 'video-single-display-symbolic',
|
||||||
|
/* Translators: this is for using only an external display.
|
||||||
|
* Try to keep it under around 15 characters.
|
||||||
|
*/
|
||||||
|
label: _('External Only'),
|
||||||
|
switchMode: Meta.MonitorSwitchConfigType.EXTERNAL,
|
||||||
|
});
|
||||||
|
items.push({
|
||||||
|
icon: 'computer-symbolic',
|
||||||
|
/* Translators: this is for using only the laptop display.
|
||||||
|
* Try to keep it under around 15 characters.
|
||||||
|
*/
|
||||||
|
label: _('Built-in Only'),
|
||||||
|
switchMode: Meta.MonitorSwitchConfigType.BUILTIN,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
super._init(items);
|
super._init(items);
|
||||||
|
|
||||||
@ -65,7 +83,10 @@ class SwitchMonitorPopup extends SwitcherPopup.SwitcherPopup {
|
|||||||
_finish() {
|
_finish() {
|
||||||
super._finish();
|
super._finish();
|
||||||
|
|
||||||
Meta.MonitorManager.get().switch_config(this._selectedIndex);
|
const monitorManager = global.backend.get_monitor_manager();
|
||||||
|
const item = this._items[this._selectedIndex];
|
||||||
|
|
||||||
|
monitorManager.switch_config(item.switchType);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user