status/system: Add screenshot item
We got a shiny new screenshot UI last cycle, but only relatively obscure ways of launching it: Keyboard shortcut or overview search. The new quick settings provides us with a natural place to expose the functionality more prominently, and at the same time reduce the emptiness of the top row, in particular on systems without a battery and when locked. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2439>
This commit is contained in:
parent
6db6db8a6b
commit
1e9749a782
@ -1,11 +1,12 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
/* exported Indicator */
|
||||
|
||||
const {Atk, Clutter, Gio, GObject, Shell, St, UPowerGlib: UPower} = imports.gi;
|
||||
const {Atk, Clutter, Gio, GLib, GObject, Meta, Shell, St, UPowerGlib: UPower} = imports.gi;
|
||||
|
||||
const SystemActions = imports.misc.systemActions;
|
||||
const Main = imports.ui.main;
|
||||
const PopupMenu = imports.ui.popupMenu;
|
||||
const {PopupAnimation} = imports.ui.boxpointer;
|
||||
|
||||
const {QuickSettingsItem, QuickToggle, SystemIndicator} = imports.ui.quickSettings;
|
||||
const {loadInterfaceXML} = imports.misc.fileUtils;
|
||||
@ -93,6 +94,27 @@ const PowerToggle = GObject.registerClass({
|
||||
}
|
||||
});
|
||||
|
||||
const ScreenshotItem = GObject.registerClass(
|
||||
class ScreenshotItem extends QuickSettingsItem {
|
||||
_init() {
|
||||
super._init({
|
||||
style_class: 'icon-button',
|
||||
can_focus: true,
|
||||
icon_name: 'camera-photo-symbolic',
|
||||
visible: !Main.sessionMode.isGreeter,
|
||||
});
|
||||
|
||||
this.connect('clicked', () => {
|
||||
const topMenu = Main.panel.statusArea.quickSettings.menu;
|
||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
|
||||
Main.screenshotUI.open().catch(logError);
|
||||
return GLib.SOURCE_REMOVE;
|
||||
});
|
||||
topMenu.close(PopupAnimation.NONE);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
const SettingsItem = GObject.registerClass(
|
||||
class SettingsItem extends QuickSettingsItem {
|
||||
_init() {
|
||||
@ -242,6 +264,9 @@ class SystemItem extends QuickSettingsItem {
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
this.child.add_child(this._laptopSpacer);
|
||||
|
||||
const screenshotItem = new ScreenshotItem();
|
||||
this.child.add_child(screenshotItem);
|
||||
|
||||
const settingsItem = new SettingsItem();
|
||||
this.child.add_child(settingsItem);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user