import gnome-shell-extensions-3.32.1-10.el8

This commit is contained in:
CentOS Sources 2019-11-05 15:55:05 -05:00 committed by Andrew Lukoshko
parent 7956688e28
commit 06f0c66d7c
13 changed files with 9273 additions and 3058 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/gnome-shell-extensions-3.28.1.tar.xz SOURCES/gnome-shell-extensions-3.32.1.tar.xz

View File

@ -1 +1 @@
51b02a3157aa4c36af145b0c57b8132203954fc2 SOURCES/gnome-shell-extensions-3.28.1.tar.xz 51c1c16bcd0dc9125834b32d7c539c38fa9c4f52 SOURCES/gnome-shell-extensions-3.32.1.tar.xz

View File

@ -1,4 +1,4 @@
From 12f264be954474200864c9acad33c11292f34e14 Mon Sep 17 00:00:00 2001 From a3db60786407481efbfc4875f887d03b58f0a7b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 23 Feb 2018 16:56:46 +0100 Date: Fri, 23 Feb 2018 16:56:46 +0100
Subject: [PATCH] Include top-icons in classic session Subject: [PATCH] Include top-icons in classic session
@ -8,10 +8,10 @@ Subject: [PATCH] Include top-icons in classic session
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build diff --git a/meson.build b/meson.build
index da5e791..ca9f60a 100644 index 6764f9a..32743ed 100644
--- a/meson.build --- a/meson.build
+++ b/meson.build +++ b/meson.build
@@ -39,6 +39,7 @@ classic_extensions = [ @@ -36,6 +36,7 @@ classic_extensions = [
'desktop-icons', 'desktop-icons',
'places-menu', 'places-menu',
'launch-new-instance', 'launch-new-instance',
@ -19,14 +19,14 @@ index da5e791..ca9f60a 100644
'window-list' 'window-list'
] ]
@@ -59,7 +60,6 @@ all_extensions += [ @@ -56,7 +57,6 @@ all_extensions += [
'no-hot-corner', 'no-hot-corner',
'panel-favorites', 'panel-favorites',
'systemMonitor', 'systemMonitor',
- 'top-icons', - 'top-icons',
'updates-dialog', 'updates-dialog',
'user-theme' 'user-theme',
] 'window-grouper'
-- --
2.20.1 2.21.0

View File

@ -1,18 +1,48 @@
From bddab939dedf770220f59394b4d4d5534063f0f1 Mon Sep 17 00:00:00 2001 From e768ad73e2d68b3f1567051675ba0539a75e3105 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Mon, 11 Jun 2018 16:40:34 -0400 Date: Sat, 18 May 2019 19:37:05 +0200
Subject: [PATCH] Update style Subject: [PATCH] Update style
--- ---
data/gnome-shell-sass/_common.scss | 19 +++++++++++++++++-- data/gnome-shell-sass | 2 +-
1 file changed, 17 insertions(+), 2 deletions(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Submodule data/gnome-shell-sass 1a56956..8842e57:
diff --git a/data/gnome-shell-sass/_common.scss b/data/gnome-shell-sass/_common.scss diff --git a/data/gnome-shell-sass/_common.scss b/data/gnome-shell-sass/_common.scss
index 2f05098df..de3a9cdbc 100644 index a6357ba..62d9c82 100644
--- a/data/gnome-shell-sass/_common.scss --- a/data/gnome-shell-sass/_common.scss
+++ b/data/gnome-shell-sass/_common.scss +++ b/data/gnome-shell-sass/_common.scss
@@ -776,6 +776,11 @@ StScrollBar { @@ -571,6 +571,18 @@ StScrollBar {
//dimensions of the icon are hardcoded app menu inside the main app window itself rather than the top bar
*/
+/*************
+ * App Icons *
+ *************/
+/* Outline for low res icons */
+.lowres-icon {
+ icon-shadow: 0 1px 2px rgba(0,0,0,0.3);
+}
+
+/* Drapshadow for large icons */
+.icon-dropshadow {
+ icon-shadow: 0 1px 2px rgba(0,0,0,0.4);
+}
/* OSD */
.osd-window {
@@ -680,7 +692,8 @@ StScrollBar {
spacing: 8px;
}
- .ws-switcher-active-up, .ws-switcher-active-down {
+ .ws-switcher-active-up, .ws-switcher-active-down,
+ .ws-switcher-active-left, .ws-switcher-active-right {
height: 50px;
background-color: $selected_bg_color;
color: $selected_fg_color;
@@ -781,6 +794,11 @@ StScrollBar {
color: lighten($fg_color,10%);
} }
+ .panel-logo-icon { + .panel-logo-icon {
@ -20,10 +50,10 @@ index 2f05098df..de3a9cdbc 100644
+ icon-size: 1em; + icon-size: 1em;
+ } + }
+ +
.system-status-icon, .system-status-icon { icon-size: 1.09em; padding: 0 5px; }
.app-menu-icon > StIcon, .unlock-screen &,
.popup-menu-arrow { .login-screen &,
@@ -1397,6 +1402,14 @@ StScrollBar { @@ -1406,6 +1424,14 @@ StScrollBar {
} }
@ -38,7 +68,7 @@ index 2f05098df..de3a9cdbc 100644
.app-well-app-running-dot { //running apps indicator .app-well-app-running-dot { //running apps indicator
width: 10px; height: 3px; width: 10px; height: 3px;
background-color: $selected_bg_color; background-color: $selected_bg_color;
@@ -1769,7 +1782,12 @@ StScrollBar { @@ -1801,7 +1827,12 @@ StScrollBar {
.login-dialog-banner { color: darken($osd_fg_color,10%); } .login-dialog-banner { color: darken($osd_fg_color,10%); }
.login-dialog-button-box { spacing: 5px; } .login-dialog-button-box { spacing: 5px; }
.login-dialog-message-warning { color: $warning_color; } .login-dialog-message-warning { color: $warning_color; }
@ -52,7 +82,7 @@ index 2f05098df..de3a9cdbc 100644
.login-dialog-user-selection-box { padding: 100px 0px; } .login-dialog-user-selection-box { padding: 100px 0px; }
.login-dialog-not-listed-label { .login-dialog-not-listed-label {
padding-left: 2px; padding-left: 2px;
@@ -1825,6 +1843,10 @@ StScrollBar { @@ -1856,6 +1887,10 @@ StScrollBar {
padding-bottom: 12px; padding-bottom: 12px;
spacing: 8px; spacing: 8px;
width: 23em; width: 23em;
@ -63,3 +93,6 @@ index 2f05098df..de3a9cdbc 100644
} }
.login-dialog-prompt-label { .login-dialog-prompt-label {
--
2.21.0

View File

@ -0,0 +1,33 @@
From 0bbeadadc41128b2be1f2b56c60b5a7a671d40da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 27 Jun 2019 03:57:53 +0200
Subject: [PATCH] apps-menu: Add missing chain-up
PanelMenu.Button is a bit weird in that it also "contains" its parent
actor. That container is supposed to be destroyed with the button, but
as we currently don't chain up to the parent class' _onDestroy(), we
leave behind an empty container every time the extension is disabled.
Fix this by adding the missing chain-up.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/75
---
extensions/apps-menu/extension.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js
index b9e7111..9803cc1 100644
--- a/extensions/apps-menu/extension.js
+++ b/extensions/apps-menu/extension.js
@@ -433,6 +433,8 @@ class ApplicationsButton extends PanelMenu.Button {
}
_onDestroy() {
+ super._onDestroy();
+
Main.overview.disconnect(this._showingId);
Main.overview.disconnect(this._hidingId);
appSys.disconnect(this._installedChangedId);
--
2.21.0

View File

@ -1,4 +1,4 @@
From 07d409f6bf4e5bffa4dbda8d7cdefaf71742b85f Mon Sep 17 00:00:00 2001 From 52ee25effa3debb21307e33ac223cf48ac7bc57a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 17 Mar 2016 17:15:38 +0100 Date: Thu, 17 Mar 2016 17:15:38 +0100
Subject: [PATCH] apps-menu: Explicitly set label_actor Subject: [PATCH] apps-menu: Explicitly set label_actor
@ -10,23 +10,23 @@ so set the label_actor explicitly as workaround.
1 file changed, 6 insertions(+), 2 deletions(-) 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js
index 5067b63..49a05c7 100644 index d62e3d7..cc399c6 100644
--- a/extensions/apps-menu/extension.js --- a/extensions/apps-menu/extension.js
+++ b/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js
@@ -34,7 +34,9 @@ class ActivitiesMenuItem extends PopupMenu.PopupBaseMenuItem { @@ -29,7 +29,9 @@ class ActivitiesMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(button) { constructor(button) {
super(); super();
this._button = button; this._button = button;
- this.actor.add_child(new St.Label({ text: _("Activities Overview") })); - this.actor.add_child(new St.Label({ text: _('Activities Overview') }));
+ let label = new St.Label({ text: _("Activities Overview") }); + let label = new St.Label({ text: _('Activities Overview') });
+ this.actor.add_child(label); + this.actor.add_child(label);
+ this.actor.label_actor = label; + this.actor.label_actor = label;
} }
activate(event) { activate(event) {
@@ -129,7 +131,9 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem { @@ -120,7 +122,9 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
else else
name = _("Favorites"); name = _('Favorites');
- this.actor.add_child(new St.Label({ text: name })); - this.actor.add_child(new St.Label({ text: name }));
+ let label = new St.Label({ text: name }); + let label = new St.Label({ text: name });
@ -36,5 +36,5 @@ index 5067b63..49a05c7 100644
} }
-- --
2.20.1 2.21.0

View File

@ -1,29 +1,32 @@
From fe6695b8d45fe7d1d9aea8c41c9aa54048a9704d Mon Sep 17 00:00:00 2001 From 3e3634b59455da0cbae1de4af0ce5cf97be8b80d Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Tue, 21 Jan 2014 16:48:17 -0500 Date: Tue, 21 Jan 2014 16:48:17 -0500
Subject: [PATCH] apps-menu: add logo icon to Applications menu Subject: [PATCH] apps-menu: add logo icon to Applications menu
Brand requested it. Brand requested it.
--- ---
extensions/apps-menu/extension.js | 5 +++++ extensions/apps-menu/extension.js | 8 ++++++++
1 file changed, 5 insertions(+) 1 file changed, 8 insertions(+)
diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js
index 2f4002a..41d1faf 100644 index d7ba570..d62e3d7 100644
--- a/extensions/apps-menu/extension.js --- a/extensions/apps-menu/extension.js
+++ b/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js
@@ -433,6 +433,11 @@ const ApplicationsButton = new Lang.Class({ @@ -390,6 +390,14 @@ class ApplicationsButton extends PanelMenu.Button {
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' }); let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
+ let iconFile = Gio.File.new_for_path('/usr/share/icons/hicolor/scalable/apps/start-here.svg'); + let iconFile = Gio.File.new_for_path(
+ this._icon = new St.Icon({ gicon: new Gio.FileIcon({ file: iconFile }), + '/usr/share/icons/hicolor/scalable/apps/start-here.svg');
+ style_class: 'panel-logo-icon' }); + this._icon = new St.Icon({
+ gicon: new Gio.FileIcon({ file: iconFile }),
+ style_class: 'panel-logo-icon'
+ });
+ hbox.add_actor(this._icon); + hbox.add_actor(this._icon);
+ +
this._label = new St.Label({ text: _("Applications"), this._label = new St.Label({
y_expand: true, text: _('Applications'),
y_align: Clutter.ActorAlign.CENTER }); y_expand: true,
-- --
2.14.2 2.21.0

View File

@ -1,34 +0,0 @@
From 91ed30147a69d53d7c170b65602be5f90851666e Mon Sep 17 00:00:00 2001
From: Jakub Steiner <jimmac@gmail.com>
Date: Tue, 14 Jan 2014 17:00:23 +0100
Subject: [PATCH] classic: Shade panel in overview
... rather than using the top bar styling (negative space),
base the overview panel on the classic grey and "darken"
for overview.
---
data/gnome-classic.scss | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/data/gnome-classic.scss b/data/gnome-classic.scss
index 9e23506..e8f4803 100644
--- a/data/gnome-classic.scss
+++ b/data/gnome-classic.scss
@@ -19,11 +19,9 @@ $variant: 'light';
border-bottom: 1px solid #666;
app-icon-bottom-clip: 0px;
&:overview {
- background-color: #000;
- background-gradient-end: #000;
- border-top-color: #000;
- border-bottom: 1px solid #000;
- .panel-button { color: #fff; }
+ background-color: darken($bg_color,5%);
+ background-gradient-end: darken($bg_color,10%);
+ .panel-button { color: darken($fg_color,5%); }
}
.panel-button {
--
2.20.1

View File

@ -1,159 +0,0 @@
From 707ca4122da0a638f3df3b92178acc04eea264ec Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Tue, 4 Sep 2018 15:33:26 -0400
Subject: [PATCH] common: get rid of weird drop shadow nex to app menu
Resolves: #1620241
---
data/gnome-shell-sass/_common.scss | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/data/gnome-shell-sass/_common.scss b/data/gnome-shell-sass/_common.scss
index 2f5c887..9883c78 100644
--- a/data/gnome-shell-sass/_common.scss
+++ b/data/gnome-shell-sass/_common.scss
@@ -742,140 +742,130 @@ StScrollBar {
#panelLeft, #panelCenter { // spacing between activities<>app menu and such
spacing: 4px;
}
.panel-corner {
-panel-corner-radius: $panel-corner-radius;
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent;
&:active, &:overview, &:focus {
-panel-corner-border-color: lighten($selected_bg_color,5%);
}
&.lock-screen, &.login-screen, &.unlock-screen {
-panel-corner-radius: 0;
-panel-corner-background-color: transparent;
-panel-corner-border-color: transparent;
}
}
.panel-button {
-natural-hpadding: 12px;
-minimum-hpadding: 6px;
font-weight: bold;
color: #eee;
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
transition-duration: 100ms;
- .app-menu-icon {
- -st-icon-style: symbolic;
- margin-left: 4px;
- margin-right: 4px;
- //dimensions of the icon are hardcoded
- }
-
.panel-logo-icon {
padding-right: .4em;
icon-size: 1em;
}
.system-status-icon,
- .app-menu-icon > StIcon,
.popup-menu-arrow {
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
}
&:hover {
color: lighten($fg_color, 10%);
text-shadow: 0px 1px 6px rgba(0, 0, 0, 1);
.system-status-icon,
- .app-menu-icon > StIcon,
.popup-menu-arrow {
icon-shadow: 0px 1px 6px rgba(0, 0, 0, 1);
}
}
&:active, &:overview, &:focus, &:checked {
// Trick due to St limitations. It needs a background to draw
// a box-shadow
background-color: rgba(0, 0, 0, 0.01);
box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%);
color: lighten($fg_color,10%);
& > .system-status-icon { icon-shadow: black 0 2px 2px; }
}
.system-status-icon { icon-size: 1.09em; padding: 0 5px; }
.unlock-screen &,
.login-screen &,
.lock-screen & {
color: lighten($fg_color, 10%);
&:focus, &:hover, &:active { color: lighten($fg_color, 10%); }
}
}
.panel-status-indicators-box,
.panel-status-menu-box {
spacing: 2px;
}
// spacing between power icon and (optional) percentage label
.power-status.panel-status-indicators-box {
spacing: 0;
}
.screencast-indicator { color: $warning_color; }
&.solid {
background-color: black;
/* transition from transparent to solid */
transition-duration: 300ms;
.panel-corner {
-panel-corner-background-color: black;
}
.panel-button {
color: #ccc;
text-shadow: none;
&:hover, &:active, &:overview, &:focus, &:checked {
color: lighten($fg_color, 10%);
}
}
.system-status-icon,
- .app-menu-icon > StIcon,
.popup-menu-arrow {
icon-shadow: none;
}
}
}
// calendar popover
#calendarArea {
padding: 0.75em 1.0em;
}
.calendar {
margin-bottom: 1em;
}
.calendar,
.datemenu-today-button,
.datemenu-displays-box,
.message-list-sections {
margin: 0 1.5em;
}
.datemenu-calendar-column { spacing: 0.5em; }
.datemenu-displays-section { padding-bottom: 3em; }
.datemenu-displays-box { spacing: 1em; }
.datemenu-calendar-column {
border: 0 solid lighten($bg_color,5%);
&:ltr { border-left-width: 1px; }
&:rtl { border-right-width: 1px; }
--
2.17.1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
From 901e1b32939d27b0b0edabe99705fd3066d360ba Mon Sep 17 00:00:00 2001 From 7c3b0af4fde0b542089f2b0c84250404eef0ecca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 17 May 2017 19:13:50 +0200 Date: Wed, 17 May 2017 19:13:50 +0200
Subject: [PATCH 1/4] extensions: Resurrect systemMonitor extension Subject: [PATCH 1/5] extensions: Resurrect systemMonitor extension
The extension was removed upstream because: The extension was removed upstream because:
- it hooks into the message tray that was removed - it hooks into the message tray that was removed
@ -476,134 +476,419 @@ index 0000000..13f95ec
+ font-weight: bold; + font-weight: bold;
+} +}
diff --git a/meson.build b/meson.build diff --git a/meson.build b/meson.build
index 201c484..cde2d34 100644 index 6e8c41f..6764f9a 100644
--- a/meson.build --- a/meson.build
+++ b/meson.build +++ b/meson.build
@@ -57,6 +57,7 @@ all_extensions += [ @@ -55,6 +55,7 @@ all_extensions += [
'native-window-placement', 'native-window-placement',
'no-hot-corner', 'no-hot-corner',
'panel-favorites', 'panel-favorites',
+ 'systemMonitor', + 'systemMonitor',
'top-icons', 'top-icons',
'updates-dialog', 'updates-dialog',
'user-theme' 'user-theme',
-- --
2.20.1 2.21.0
From a0583c021dd74378618139d760b2c4d6d528f11a Mon Sep 17 00:00:00 2001 From ddf4d70df56321366a2cb8b89689d59be4dbb718 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 17 May 2017 19:31:58 +0200 Date: Fri, 17 May 2019 22:55:48 +0000
Subject: [PATCH 2/4] systemMonitor: Move indicators to calendar Subject: [PATCH 2/5] systemMonitor: Modernise code
The message tray joined the invisible choir, so we have to find - port to ES6 classes
a new home for the extension UI. The message list in the calendar - replace Lang.bind()
drop-down looks like the best option, given that it replaced the - destructure imports
old tray (and also took over the old keyboard shortcut to bring - fix style issues (stray/missing spaces/semi-colons, indent, ...)
it up quickly).
--- ---
extensions/systemMonitor/extension.js | 56 ++++++++++++------------- extensions/systemMonitor/extension.js | 377 +++++++++++++-------------
extensions/systemMonitor/stylesheet.css | 14 ------- 1 file changed, 192 insertions(+), 185 deletions(-)
2 files changed, 28 insertions(+), 42 deletions(-)
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
index 7b09df0..1388a1f 100644 index 7b09df0..89f8916 100644
--- a/extensions/systemMonitor/extension.js --- a/extensions/systemMonitor/extension.js
+++ b/extensions/systemMonitor/extension.js +++ b/extensions/systemMonitor/extension.js
@@ -4,10 +4,12 @@ const Clutter = imports.gi.Clutter; @@ -1,22 +1,16 @@
const GTop = imports.gi.GTop; /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Lang = imports.lang;
const Mainloop = imports.mainloop;
+const Signals = imports.signals;
const St = imports.gi.St;
const Shell = imports.gi.Shell;
-const Clutter = imports.gi.Clutter;
-const GTop = imports.gi.GTop;
-const Lang = imports.lang;
-const Mainloop = imports.mainloop;
-const St = imports.gi.St;
-const Shell = imports.gi.Shell;
+/* exported init */
+const { Clutter, GLib, GTop, Shell, St } = imports.gi;
+
+const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main; const Main = imports.ui.main;
+const MessageList = imports.ui.messageList;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const Gettext = imports.gettext.domain('gnome-shell-extensions');
@@ -29,18 +31,21 @@ const Indicator = new Lang.Class({ const _ = Gettext.gettext;
_init: function() { -const ExtensionUtils = imports.misc.extensionUtils;
-const Me = ExtensionUtils.getCurrentExtension();
-const Convenience = Me.imports.convenience;
-
const INDICATOR_UPDATE_INTERVAL = 500;
const INDICATOR_NUM_GRID_LINES = 3;
@@ -24,32 +18,38 @@ const ITEM_LABEL_SHOW_TIME = 0.15;
const ITEM_LABEL_HIDE_TIME = 0.1;
const ITEM_HOVER_TIMEOUT = 300;
-const Indicator = new Lang.Class({
- Name: 'SystemMonitor.Indicator',
-
- _init: function() {
+const Indicator = class {
+ constructor() {
this._initValues(); this._initValues();
- this.drawing_area = new St.DrawingArea({ reactive: true }); - this.drawing_area = new St.DrawingArea({ reactive: true });
+ this.drawing_area = new St.DrawingArea(); - this.drawing_area.connect('repaint', Lang.bind(this, this._draw));
this.drawing_area.connect('repaint', Lang.bind(this, this._draw));
- this.drawing_area.connect('button-press-event', function() { - this.drawing_area.connect('button-press-event', function() {
+ + this._drawingArea = new St.DrawingArea({ reactive: true });
+ this.actor = new St.Button({ style_class: "message message-content extension-systemMonitor-indicator-area", + this._drawingArea.connect('repaint', this._draw.bind(this));
+ x_expand: true, x_fill: true, + this._drawingArea.connect('button-press-event', () => {
+ y_fill: true, can_focus: true });
+ this.actor.add_actor(this.drawing_area);
+
+ this.actor.connect('clicked', function() {
let app = Shell.AppSystem.get_default().lookup_app('gnome-system-monitor.desktop'); let app = Shell.AppSystem.get_default().lookup_app('gnome-system-monitor.desktop');
app.open_new_window(-1); app.open_new_window(-1);
- return true; return true;
- }); });
- this.actor = new St.Bin({ style_class: "extension-systemMonitor-indicator-area", - this.actor = new St.Bin({ style_class: "extension-systemMonitor-indicator-area",
- reactive: true, track_hover: true, - reactive: true, track_hover: true,
- x_fill: true, y_fill: true }); - x_fill: true, y_fill: true });
- this.actor.add_actor(this.drawing_area); - this.actor.add_actor(this.drawing_area);
+ Main.overview.hide(); + this.actor = new St.Bin({
+ Main.panel.closeCalendar(); + style_class: 'extension-systemMonitor-indicator-area',
+ reactive: true,
+ track_hover: true,
+ x_fill: true,
+ y_fill: true
+ }); + });
+ this.actor.add_actor(this._drawingArea);
this._timeout = Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () { - this._timeout = Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () {
this._updateValues(); - this._updateValues();
@@ -73,6 +78,7 @@ const Indicator = new Lang.Class({ - this.drawing_area.queue_repaint();
- return true;
- }));
- },
+ this.actor.connect('destroy', this._onDestroy.bind(this));
- showLabel: function() {
+ this._timeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
+ INDICATOR_UPDATE_INTERVAL,
+ () => {
+ this._updateValues();
+ this._drawingArea.queue_repaint();
+ return GLib.SOURCE_CONTINUE;
+ });
+ }
+
+ showLabel() {
if (this.label == null)
return;
@@ -58,12 +58,10 @@ const Indicator = new Lang.Class({
let [stageX, stageY] = this.actor.get_transformed_position();
- let itemWidth = this.actor.allocation.x2 - this.actor.allocation.x1;
- let itemHeight = this.actor.allocation.y2 - this.actor.allocation.y1;
+ let itemWidth = this.actor.allocation.x2 - this.actor.allocation.x1;
- let labelWidth = this.label.width;
- let labelHeight = this.label.height;
- let xOffset = Math.floor((itemWidth - labelWidth) / 2)
+ let labelWidth = this.label.width;
+ let xOffset = Math.floor((itemWidth - labelWidth) / 2);
let x = stageX + xOffset;
@@ -73,48 +71,51 @@ const Indicator = new Lang.Class({
let y = stageY - this.label.get_height() - yOffset; let y = stageY - this.label.get_height() - yOffset;
this.label.set_position(x, y); this.label.set_position(x, y);
+ this.label.get_parent().set_child_above_sibling(this.label, null); - Tweener.addTween(this.label,
Tweener.addTween(this.label, - { opacity: 255,
{ opacity: 255, - time: ITEM_LABEL_SHOW_TIME,
time: ITEM_LABEL_SHOW_TIME, - transition: 'easeOutQuad',
@@ -100,6 +106,14 @@ const Indicator = new Lang.Class({ - });
}); - },
}, -
- setLabelText: function(text) {
+ /* MessageList.Message boilerplate */ + Tweener.addTween(this.label, {
+ canClose: function() { + opacity: 255,
+ return false; + time: ITEM_LABEL_SHOW_TIME,
+ }, + transition: 'easeOutQuad',
+ });
+ }
+ +
+ clear: function() { + setLabelText(text) {
+ }, if (this.label == null)
+ - this.label = new St.Label({ style_class: 'extension-systemMonitor-indicator-label'});
destroy: function() { + this.label = new St.Label({
Mainloop.source_remove(this._timeout); + style_class: 'extension-systemMonitor-indicator-label'
+ });
@@ -194,6 +208,7 @@ const Indicator = new Lang.Class({ this.label.set_text(text);
Main.layoutManager.addChrome(this.label);
this.label.hide();
- },
-
- hideLabel: function () {
- Tweener.addTween(this.label,
- { opacity: 0,
- time: ITEM_LABEL_HIDE_TIME,
- transition: 'easeOutQuad',
- onComplete: Lang.bind(this, function() {
- this.label.hide();
- })
- });
- },
-
- destroy: function() {
- Mainloop.source_remove(this._timeout);
+ }
+ hideLabel() {
+ Tweener.addTween(this.label, {
+ opacity: 0,
+ time: ITEM_LABEL_HIDE_TIME,
+ transition: 'easeOutQuad',
+ onComplete: () => this.label.hide()
+ });
+ }
+
+ destroy() {
this.actor.destroy();
- if (this.label)
- this.label.destroy();
- },
+ }
+
+ _onDestroy() {
+ GLib.source_remove(this._timeout);
+
+ if (this.label)
+ this.label.destroy();
+ }
- _initValues: function() {
- },
+ _initValues() {
+ }
- _updateValues: function() {
- },
+ _updateValues() {
+ }
- _draw: function(area) {
+ _draw(area) {
let [width, height] = area.get_surface_size();
let themeNode = this.actor.get_theme_node();
let cr = area.get_context();
@@ -123,12 +124,12 @@ const Indicator = new Lang.Class({
let color = themeNode.get_color(this.gridColor);
let gridOffset = Math.floor(height / (INDICATOR_NUM_GRID_LINES + 1));
for (let i = 1; i <= INDICATOR_NUM_GRID_LINES; ++i) {
- cr.moveTo(0, i * gridOffset + .5);
- cr.lineTo(width, i * gridOffset + .5);
+ cr.moveTo(0, i * gridOffset + .5);
+ cr.lineTo(width, i * gridOffset + .5);
}
Clutter.cairo_set_source_color(cr, color);
cr.setLineWidth(1);
- cr.setDash([4,1], 0);
+ cr.setDash([4, 1], 0);
cr.stroke();
//draw the foreground
@@ -155,12 +156,12 @@ const Indicator = new Lang.Class({
let renderStats = this.renderStats;
// Make sure we don't have more sample points than pixels
- renderStats.map(Lang.bind(this, function(k){
+ renderStats.map(k => {
let stat = this.stats[k];
if (stat.values.length > width) {
stat.values = stat.values.slice(stat.values.length - width, stat.values.length);
}
- }));
+ });
for (let i = 0; i < renderStats.length; ++i) {
let stat = this.stats[renderStats[i]];
@@ -178,10 +179,10 @@ const Indicator = new Lang.Class({
cr.lineTo(0, height);
cr.closePath();
} else {
- let nextStat = this.stats[renderStats[i+1]];
+ let nextStat = this.stats[renderStats[i + 1]];
makePath(nextStat.values, true);
}
- cr.closePath()
+ cr.closePath();
Clutter.cairo_set_source_color(cr, color);
cr.fill();
@@ -193,40 +194,42 @@ const Indicator = new Lang.Class({
cr.stroke();
} }
} }
}); -});
+Signals.addSignalMethods(Indicator.prototype); // For MessageList.Message compat -
-const CpuIndicator = new Lang.Class({
- Name: 'SystemMonitor.CpuIndicator',
- Extends: Indicator,
+};
const CpuIndicator = new Lang.Class({ - _init: function() {
Name: 'SystemMonitor.CpuIndicator', - this.parent();
@@ -302,9 +317,7 @@ const Extension = new Lang.Class({ +const CpuIndicator = class extends Indicator {
}, + constructor() {
+ super();
enable: function() { this.gridColor = '-grid-color';
- this.renderStats = [ 'cpu-user', 'cpu-sys', 'cpu-iowait' ];
+ this.renderStats = ['cpu-user', 'cpu-sys', 'cpu-iowait'];
// Make sure renderStats is sorted as necessary for rendering
- let renderStatOrder = {'cpu-total': 0, 'cpu-user': 1, 'cpu-sys': 2, 'cpu-iowait': 3};
- this.renderStats = this.renderStats.sort(function(a,b) {
+ let renderStatOrder = {
+ 'cpu-total': 0,
+ 'cpu-user': 1,
+ 'cpu-sys': 2,
+ 'cpu-iowait': 3
+ };
+ this.renderStats = this.renderStats.sort((a, b) => {
return renderStatOrder[a] - renderStatOrder[b];
});
- this.setLabelText(_("CPU"));
- },
+ this.setLabelText(_('CPU'));
+ }
- _initValues: function() {
+ _initValues() {
this._prev = new GTop.glibtop_cpu;
GTop.glibtop_get_cpu(this._prev);
this.stats = {
- 'cpu-user': {color: '-cpu-user-color', values: []},
- 'cpu-sys': {color: '-cpu-sys-color', values: []},
- 'cpu-iowait': {color: '-cpu-iowait-color', values: []},
- 'cpu-total': {color: '-cpu-total-color', values: []}
- };
- },
-
- _updateValues: function() {
+ 'cpu-user': { color: '-cpu-user-color', values: [] },
+ 'cpu-sys': { color: '-cpu-sys-color', values: [] },
+ 'cpu-iowait': { color: '-cpu-iowait-color', values: [] },
+ 'cpu-total': { color: '-cpu-total-color', values: [] }
+ };
+ }
+
+ _updateValues() {
let cpu = new GTop.glibtop_cpu;
let t = 0.0;
GTop.glibtop_get_cpu(cpu);
@@ -246,37 +249,34 @@ const CpuIndicator = new Lang.Class({
this._prev = cpu;
}
-});
+};
-const MemoryIndicator = new Lang.Class({
- Name: 'SystemMonitor.MemoryIndicator',
- Extends: Indicator,
-
- _init: function() {
- this.parent();
+const MemoryIndicator = class extends Indicator {
+ constructor() {
+ super();
this.gridColor = '-grid-color';
- this.renderStats = [ 'mem-user', 'mem-other', 'mem-cached' ];
+ this.renderStats = ['mem-user', 'mem-other', 'mem-cached'];
// Make sure renderStats is sorted as necessary for rendering
let renderStatOrder = { 'mem-cached': 0, 'mem-other': 1, 'mem-user': 2 };
- this.renderStats = this.renderStats.sort(function(a,b) {
+ this.renderStats = this.renderStats.sort((a, b) => {
return renderStatOrder[a] - renderStatOrder[b];
});
- this.setLabelText(_("Memory"));
- },
+ this.setLabelText(_('Memory'));
+ }
- _initValues: function() {
+ _initValues() {
this.mem = new GTop.glibtop_mem;
this.stats = {
- 'mem-user': { color: "-mem-user-color", values: [] },
- 'mem-other': { color: "-mem-other-color", values: [] },
- 'mem-cached': { color: "-mem-cached-color", values: [] }
- };
- },
+ 'mem-user': { color: '-mem-user-color', values: [] },
+ 'mem-other': { color: '-mem-other-color', values: [] },
+ 'mem-cached': { color: '-mem-cached-color', values: [] }
+ };
+ }
- _updateValues: function() {
+ _updateValues() {
GTop.glibtop_get_mem(this.mem);
let t = this.mem.user / this.mem.total;
@@ -286,90 +286,97 @@ const MemoryIndicator = new Lang.Class({
t += this.mem.cached / this.mem.total;
this.stats['mem-cached'].values.push(t);
}
-});
+};
const INDICATORS = [CpuIndicator, MemoryIndicator];
-const Extension = new Lang.Class({
- Name: 'SystemMonitor.Extension',
-
- _init: function() {
- Convenience.initTranslations();
-
- this._showLabelTimeoutId = 0;
- this._resetHoverTimeoutId = 0;
- this._labelShowing = false;
- },
-
- enable: function() {
- this._box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container', - this._box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container',
- x_align: Clutter.ActorAlign.START, - x_align: Clutter.ActorAlign.START,
- x_expand: true }); - x_expand: true });
+ this._section = new MessageList.MessageListSection(_("System Monitor")); - this._indicators = [ ];
this._indicators = [ ]; -
- for (let i = 0; i < INDICATORS.length; i++) {
for (let i = 0; i < INDICATORS.length; i++) { - let indicator = new (INDICATORS[i])();
@@ -313,31 +326,18 @@ const Extension = new Lang.Class({ -
indicator.actor.connect('notify::hover', Lang.bind(this, function() { - indicator.actor.connect('notify::hover', Lang.bind(this, function() {
this._onHover(indicator); - this._onHover(indicator);
})); - }));
- this._box.add_actor(indicator.actor); - this._box.add_actor(indicator.actor);
+ this._section.addMessage(indicator, false); - this._indicators.push(indicator);
this._indicators.push(indicator); - }
} -
- this._boxHolder = new St.BoxLayout({ x_expand: true, - this._boxHolder = new St.BoxLayout({ x_expand: true,
- y_expand: true, - y_expand: true,
- x_align: Clutter.ActorAlign.START, - x_align: Clutter.ActorAlign.START,
@ -614,23 +899,285 @@ index 7b09df0..1388a1f 100644
- -
- this._boxHolder.add_child(this._box); - this._boxHolder.add_child(this._box);
- this._boxHolder.add_child(menuButton); - this._boxHolder.add_child(menuButton);
+ Main.panel.statusArea.dateMenu._messageList._addSection(this._section); - },
+ this._section.actor.get_parent().set_child_at_index(this._section.actor, 0); -
}, - disable: function() {
- this._indicators.forEach(function(i) { i.destroy(); });
disable: function() { -
this._indicators.forEach(function(i) { i.destroy(); });
- let menuButton = Main.messageTray._messageTrayMenuButton.actor; - let menuButton = Main.messageTray._messageTrayMenuButton.actor;
- this._boxHolder.remove_child(menuButton); - this._boxHolder.remove_child(menuButton);
- Main.messageTray.actor.add_child(menuButton); - Main.messageTray.actor.add_child(menuButton);
- -
- this._box.destroy(); - this._box.destroy();
- this._boxHolder.destroy(); - this._boxHolder.destroy();
+ Main.panel.statusArea.dateMenu._messageList._removeSection(this._section); - },
}, -
- _onHover: function (item) {
+class Extension {
+ constructor() {
+ ExtensionUtils.initTranslations();
+
+ this._showLabelTimeoutId = 0;
+ this._resetHoverTimeoutId = 0;
+ this._labelShowing = false;
+ }
+
+ enable() {
+ this._box = new St.BoxLayout({
+ style_class: 'extension-systemMonitor-container',
+ x_align: Clutter.ActorAlign.START,
+ x_expand: true
+ });
+ this._indicators = [];
+
+ for (let i = 0; i < INDICATORS.length; i++) {
+ let indicator = new (INDICATORS[i])();
+
+ indicator.actor.connect('notify::hover', () => {
+ this._onHover(indicator);
+ });
+ this._box.add_actor(indicator.actor);
+ this._indicators.push(indicator);
+ }
+
+ this._boxHolder = new St.BoxLayout({
+ x_expand: true,
+ y_expand: true,
+ x_align: Clutter.ActorAlign.START,
+ });
+ let menuButton = Main.messageTray._messageTrayMenuButton.actor;
+ Main.messageTray.actor.remove_child(menuButton);
+ Main.messageTray.actor.add_child(this._boxHolder);
+
+ this._boxHolder.add_child(this._box);
+ this._boxHolder.add_child(menuButton);
+ }
+
+ disable() {
+ this._indicators.forEach(i => i.destroy());
+
+ let menuButton = Main.messageTray._messageTrayMenuButton.actor;
+ this._boxHolder.remove_child(menuButton);
+ Main.messageTray.actor.add_child(menuButton);
+
+ this._box.destroy();
+ this._boxHolder.destroy();
+ }
+
+ _onHover(item) {
if (item.actor.get_hover()) {
- if (this._showLabelTimeoutId == 0) {
- let timeout = this._labelShowing ? 0 : ITEM_HOVER_TIMEOUT;
- this._showLabelTimeoutId = Mainloop.timeout_add(timeout,
- Lang.bind(this, function() {
- this._labelShowing = true;
- item.showLabel();
- return false;
- }));
- if (this._resetHoverTimeoutId > 0) {
- Mainloop.source_remove(this._resetHoverTimeoutId);
- this._resetHoverTimeoutId = 0;
- }
+ if (this._showLabelTimeoutId)
+ return;
+
+ let timeout = this._labelShowing ? 0 : ITEM_HOVER_TIMEOUT;
+ this._showLabelTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
+ timeout,
+ () => {
+ this._labelShowing = true;
+ item.showLabel();
+ this._showLabelTimeoutId = 0;
+ return GLib.SOURCE_REMOVE;
+ });
+
+ if (this._resetHoverTimeoutId > 0) {
+ GLib.source_remove(this._resetHoverTimeoutId);
+ this._resetHoverTimeoutId = 0;
}
} else {
if (this._showLabelTimeoutId > 0)
- Mainloop.source_remove(this._showLabelTimeoutId);
+ GLib.source_remove(this._showLabelTimeoutId);
this._showLabelTimeoutId = 0;
item.hideLabel();
- if (this._labelShowing) {
- this._resetHoverTimeoutId = Mainloop.timeout_add(ITEM_HOVER_TIMEOUT,
- Lang.bind(this, function() {
- this._labelShowing = false;
- return false;
- }));
- }
+ if (!this._labelShowing)
+ return;
+
+ this._resetHoverTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
+ ITEM_HOVER_TIMEOUT,
+ () => {
+ this._labelShowing = false;
+ return GLib.SOURCE_REMOVE;
+ });
}
- },
-});
+ }
+}
_onHover: function (item) { function init() {
return new Extension();
--
2.21.0
From e7ea49cd416e8ede9767f5ade46a06764d1e9a5b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 17 May 2017 19:31:58 +0200
Subject: [PATCH 3/5] systemMonitor: Move indicators to calendar
The message tray joined the invisible choir, so we have to find
a new home for the extension UI. The message list in the calendar
drop-down looks like the best option, given that it replaced the
old tray (and also took over the old keyboard shortcut to bring
it up quickly).
---
extensions/systemMonitor/extension.js | 65 ++++++++++++-------------
extensions/systemMonitor/stylesheet.css | 14 ------
2 files changed, 31 insertions(+), 48 deletions(-)
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
index 89f8916..0188960 100644
--- a/extensions/systemMonitor/extension.js
+++ b/extensions/systemMonitor/extension.js
@@ -3,9 +3,11 @@
/* exported init */
const { Clutter, GLib, GTop, Shell, St } = imports.gi;
+const Signals = imports.signals;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
+const MessageList = imports.ui.messageList;
const Tweener = imports.ui.tweener;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
@@ -21,22 +23,25 @@ const ITEM_HOVER_TIMEOUT = 300;
const Indicator = class {
constructor() {
this._initValues();
- this._drawingArea = new St.DrawingArea({ reactive: true });
+ this._drawingArea = new St.DrawingArea();
this._drawingArea.connect('repaint', this._draw.bind(this));
- this._drawingArea.connect('button-press-event', () => {
+
+ this.actor = new St.Button({
+ style_class: 'message message-content extension-systemMonitor-indicator-area',
+ child: this._drawingArea,
+ x_expand: true,
+ x_fill: true,
+ y_fill: true,
+ can_focus: true
+ });
+
+ this.actor.connect('clicked', () => {
let app = Shell.AppSystem.get_default().lookup_app('gnome-system-monitor.desktop');
app.open_new_window(-1);
- return true;
- });
- this.actor = new St.Bin({
- style_class: 'extension-systemMonitor-indicator-area',
- reactive: true,
- track_hover: true,
- x_fill: true,
- y_fill: true
+ Main.overview.hide();
+ Main.panel.closeCalendar();
});
- this.actor.add_actor(this._drawingArea);
this.actor.connect('destroy', this._onDestroy.bind(this));
@@ -71,6 +76,7 @@ const Indicator = class {
let y = stageY - this.label.get_height() - yOffset;
this.label.set_position(x, y);
+ this.label.get_parent().set_child_above_sibling(this.label, null);
Tweener.addTween(this.label, {
opacity: 255,
time: ITEM_LABEL_SHOW_TIME,
@@ -98,6 +104,14 @@ const Indicator = class {
});
}
+ /* MessageList.Message boilerplate */
+ canClose() {
+ return false;
+ }
+
+ clear() {
+ }
+
destroy() {
this.actor.destroy();
}
@@ -195,6 +209,7 @@ const Indicator = class {
}
}
};
+Signals.addSignalMethods(Indicator.prototype); // For MessageList.Message compat
const CpuIndicator = class extends Indicator {
constructor() {
@@ -300,11 +315,7 @@ class Extension {
}
enable() {
- this._box = new St.BoxLayout({
- style_class: 'extension-systemMonitor-container',
- x_align: Clutter.ActorAlign.START,
- x_expand: true
- });
+ this._section = new MessageList.MessageListSection(_('System Monitor'));
this._indicators = [];
for (let i = 0; i < INDICATORS.length; i++) {
@@ -313,32 +324,18 @@ class Extension {
indicator.actor.connect('notify::hover', () => {
this._onHover(indicator);
});
- this._box.add_actor(indicator.actor);
+ this._section.addMessage(indicator, false);
this._indicators.push(indicator);
}
- this._boxHolder = new St.BoxLayout({
- x_expand: true,
- y_expand: true,
- x_align: Clutter.ActorAlign.START,
- });
- let menuButton = Main.messageTray._messageTrayMenuButton.actor;
- Main.messageTray.actor.remove_child(menuButton);
- Main.messageTray.actor.add_child(this._boxHolder);
-
- this._boxHolder.add_child(this._box);
- this._boxHolder.add_child(menuButton);
+ Main.panel.statusArea.dateMenu._messageList._addSection(this._section);
+ this._section.actor.get_parent().set_child_at_index(this._section.actor, 0);
}
disable() {
this._indicators.forEach(i => i.destroy());
- let menuButton = Main.messageTray._messageTrayMenuButton.actor;
- this._boxHolder.remove_child(menuButton);
- Main.messageTray.actor.add_child(menuButton);
-
- this._box.destroy();
- this._boxHolder.destroy();
+ Main.panel.statusArea.dateMenu._messageList._removeSection(this._section);
}
_onHover(item) {
diff --git a/extensions/systemMonitor/stylesheet.css b/extensions/systemMonitor/stylesheet.css diff --git a/extensions/systemMonitor/stylesheet.css b/extensions/systemMonitor/stylesheet.css
index 13f95ec..978ac12 100644 index 13f95ec..978ac12 100644
--- a/extensions/systemMonitor/stylesheet.css --- a/extensions/systemMonitor/stylesheet.css
@ -662,70 +1209,67 @@ index 13f95ec..978ac12 100644
.extension-systemMonitor-indicator-label { .extension-systemMonitor-indicator-label {
-- --
2.20.1 2.21.0
From a56d2c1c5546b6f1a6bf66f168874860b427bf9f Mon Sep 17 00:00:00 2001 From f73fe9cfb5f9dbd6647e4eb30a9af0fb7ff79219 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 18 May 2017 16:20:07 +0200 Date: Thu, 18 May 2017 16:20:07 +0200
Subject: [PATCH 3/4] systemMonitor: Handle clicks on section title Subject: [PATCH 4/5] systemMonitor: Handle clicks on section title
While on 3.24.x only the event section still has a clickable title, While on 3.24.x only the event section still has a clickable title,
it's a generic message list feature in previous versions. It's easy it's a generic message list feature in previous versions. It's easy
enough to support with a small subclass, so use that instead of enough to support with a small subclass, so use that instead of
the generic baseclass. the generic baseclass.
Fixes: #3 Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions3
--- ---
extensions/systemMonitor/extension.js | 20 +++++++++++++++++++- extensions/systemMonitor/extension.js | 17 ++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-) 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
index 1388a1f..9c010d8 100644 index 0188960..b4d5a9d 100644
--- a/extensions/systemMonitor/extension.js --- a/extensions/systemMonitor/extension.js
+++ b/extensions/systemMonitor/extension.js +++ b/extensions/systemMonitor/extension.js
@@ -303,6 +303,24 @@ const MemoryIndicator = new Lang.Class({ @@ -303,6 +303,21 @@ const MemoryIndicator = class extends Indicator {
} }
}); };
+const SystemMonitorSection = new Lang.Class({ +class SystemMonitorSection extends MessageList.MessageListSection {
+ Name: 'SystemMonitorSection', + constructor() {
+ Extends: MessageList.MessageListSection, + super(_('System Monitor'));
+ }
+ +
+ _init: function() { + _onTitleClicked() {
+ this.parent(_("System Monitor")); + super._onTitleClicked();
+ },
+
+ _onTitleClicked: function() {
+ this.parent();
+ +
+ let appSys = Shell.AppSystem.get_default(); + let appSys = Shell.AppSystem.get_default();
+ let app = appSys.lookup_app('gnome-system-monitor.desktop'); + let app = appSys.lookup_app('gnome-system-monitor.desktop');
+ if (app) + if (app)
+ app.open_new_window(-1); + app.open_new_window(-1);
+ } + }
+}); +}
+ +
const INDICATORS = [CpuIndicator, MemoryIndicator]; const INDICATORS = [CpuIndicator, MemoryIndicator];
const Extension = new Lang.Class({ class Extension {
@@ -317,7 +335,7 @@ const Extension = new Lang.Class({ @@ -315,7 +330,7 @@ class Extension {
}, }
enable: function() { enable() {
- this._section = new MessageList.MessageListSection(_("System Monitor")); - this._section = new MessageList.MessageListSection(_('System Monitor'));
+ this._section = new SystemMonitorSection(); + this._section = new SystemMonitorSection();
this._indicators = [ ]; this._indicators = [];
for (let i = 0; i < INDICATORS.length; i++) { for (let i = 0; i < INDICATORS.length; i++) {
-- --
2.20.1 2.21.0
From 0b22b3fb2f05a098408437d9cd48482fddc24766 Mon Sep 17 00:00:00 2001 From df76e98d6bbac7dccc86f66e82eac2977fb5ed87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 18 May 2017 18:00:17 +0200 Date: Thu, 18 May 2017 18:00:17 +0200
Subject: [PATCH 4/4] systemMonitor: Provide classic styling Subject: [PATCH 5/5] systemMonitor: Provide classic styling
The indicator tooltips currently don't work out in classic mode The indicator tooltips currently don't work out in classic mode
(dark text on dark background), so provide some mode-specific (dark text on dark background), so provide some mode-specific
@ -763,5 +1307,5 @@ index 48504f6..b6548b1 100644
+ extension_data += files('classic.css') + extension_data += files('classic.css')
+endif +endif
-- --
2.20.1 2.21.0

View File

@ -5,13 +5,12 @@
%global pkg_prefix gnome-shell-extension %global pkg_prefix gnome-shell-extension
Name: gnome-shell-extensions Name: gnome-shell-extensions
Version: 3.28.1 Version: 3.32.1
Release: 8%{?dist} Release: 10%{?dist}
Summary: Modify and extend GNOME Shell functionality and behavior Summary: Modify and extend GNOME Shell functionality and behavior
Group: User Interface/Desktops Group: User Interface/Desktops
# The entire source code is GPLv2+ except lib/convenience.js which is BSD License: GPLv2+
License: GPLv2+ and BSD
URL: http://wiki.gnome.org/Projects/GnomeShell/Extensions URL: http://wiki.gnome.org/Projects/GnomeShell/Extensions
Source0: http://ftp.gnome.org/pub/GNOME/sources/%{name}/%{major_version}/%{name}-%{version}.tar.xz Source0: http://ftp.gnome.org/pub/GNOME/sources/%{name}/%{major_version}/%{name}-%{version}.tar.xz
Source1: gnome-classic.desktop Source1: gnome-classic.desktop
@ -28,24 +27,25 @@ Requires: gnome-shell >= %{min_gs_version}
BuildArch: noarch BuildArch: noarch
Patch0001: 0001-Update-style.patch Patch0001: 0001-Update-style.patch
Patch0002: 0001-classic-Shade-panel-in-overview.patch Patch0002: 0001-apps-menu-add-logo-icon-to-Applications-menu.patch
Patch0003: 0001-apps-menu-add-logo-icon-to-Applications-menu.patch Patch0003: add-extra-extensions.patch
Patch0004: add-extra-extensions.patch Patch0004: 0001-apps-menu-Explicitly-set-label_actor.patch
Patch0005: 0001-apps-menu-Explicitly-set-label_actor.patch Patch0005: resurrect-system-monitor.patch
Patch0006: resurrect-system-monitor.patch Patch0006: 0001-Include-top-icons-in-classic-session.patch
Patch0007: 0001-common-get-rid-of-weird-drop-shadow-nex-to-app-menu.patch Patch0007: more-classic-classic-mode.patch
Patch0008: 0001-Include-top-icons-in-classic-session.patch Patch0008: 0001-apps-menu-Add-missing-chain-up.patch
%description %description
GNOME Shell Extensions is a collection of extensions providing additional and GNOME Shell Extensions is a collection of extensions providing additional and
optional functionality to GNOME Shell. optional functionality to GNOME Shell.
Enabled extensions: Enabled extensions:
* alternate-tab
* apps-menu * apps-menu
* auto-move-windows * auto-move-windows
* dash-to-dock * dash-to-dock
* disable-screenshield
* desktop-icons * desktop-icons
* horizontal-workspaces
* drive-menu * drive-menu
* launch-new-instance * launch-new-instance
* native-window-placement * native-window-placement
@ -68,6 +68,7 @@ License: GPLv2+
Requires: gnome-shell >= %{min_gs_version} Requires: gnome-shell >= %{min_gs_version}
# Dock extension no longer provided by GNOME Shell extensions >= 3.7.1 # Dock extension no longer provided by GNOME Shell extensions >= 3.7.1
Obsoletes: %{pkg_prefix}-dock < 3.7.1 Obsoletes: %{pkg_prefix}-dock < 3.7.1
Obsoletes: %{pkg_prefix}-alternate-tab < 3.31.2
# Alternative-status-menu extension no longer provided by GNOME Shell extensions >= 3.9.5 # Alternative-status-menu extension no longer provided by GNOME Shell extensions >= 3.9.5
Obsoletes: %{pkg_prefix}-alternative-status-menu < 3.9.5 Obsoletes: %{pkg_prefix}-alternative-status-menu < 3.9.5
# Xrandr-indicator extension no longer provided by GNOME Shell extensions >= 3.9.5 # Xrandr-indicator extension no longer provided by GNOME Shell extensions >= 3.9.5
@ -88,9 +89,9 @@ This package provides common data files shared by various extensions.
Summary: GNOME "classic" mode session Summary: GNOME "classic" mode session
Group: User Interface/Desktops Group: User Interface/Desktops
License: GPLv2+ License: GPLv2+
Requires: %{pkg_prefix}-alternate-tab = %{version}-%{release}
Requires: %{pkg_prefix}-apps-menu = %{version}-%{release} Requires: %{pkg_prefix}-apps-menu = %{version}-%{release}
Requires: %{pkg_prefix}-desktop-icons = %{version}-%{release} Requires: %{pkg_prefix}-desktop-icons = %{version}-%{release}
Requires: %{pkg_prefix}-horizontal-workspaces = %{version}-%{release}
Requires: %{pkg_prefix}-launch-new-instance = %{version}-%{release} Requires: %{pkg_prefix}-launch-new-instance = %{version}-%{release}
Requires: %{pkg_prefix}-places-menu = %{version}-%{release} Requires: %{pkg_prefix}-places-menu = %{version}-%{release}
Requires: %{pkg_prefix}-window-list = %{version}-%{release} Requires: %{pkg_prefix}-window-list = %{version}-%{release}
@ -110,17 +111,6 @@ This package contains the required components for the GNOME Shell "classic"
mode, which aims to provide a GNOME 2-like user interface. mode, which aims to provide a GNOME 2-like user interface.
%package -n %{pkg_prefix}-alternate-tab
Summary: Classic Alt+Tab behavior for GNOME Shell
Group: User Interface/Desktops
License: GPLv2+
Requires: %{pkg_prefix}-common = %{version}-%{release}
%description -n %{pkg_prefix}-alternate-tab
This GNOME Shell extension changes Alt+Tab to be window-based instead of
app-based.
%package -n %{pkg_prefix}-apps-menu %package -n %{pkg_prefix}-apps-menu
Summary: Application menu for GNOME Shell Summary: Application menu for GNOME Shell
Group: User Interface/Desktops Group: User Interface/Desktops
@ -154,6 +144,26 @@ Requires: %{pkg_prefix}-common = %{version}-%{release}
This GNOME Shell extension makes the dash available outside the activities overview. This GNOME Shell extension makes the dash available outside the activities overview.
%package -n %{pkg_prefix}-disable-screenshield
Summary: Disable GNOME Shell screen shield if lock is disabled
Group: User Interface/Desktops
License: GPLv2+
Requires: %{pkg_prefix}-common = %{version}-%{release}
%description -n %{pkg_prefix}-disable-screenshield
This GNOME Shell extension disabled the screen shield if screen locking is disabled.
%package -n %{pkg_prefix}-horizontal-workspaces
Summary: Desktop icons support for the classic experience
Group: User Interface/Desktops
License: GPLv3+
Requires: %{pkg_prefix}-common = %{version}-%{release}
%description -n %{pkg_prefix}-horizontal-workspaces
This GNOME Shell extension adds desktop icons support as seen in GNOME 2
%package -n %{pkg_prefix}-desktop-icons %package -n %{pkg_prefix}-desktop-icons
Summary: Desktop icons support for the classic experience Summary: Desktop icons support for the classic experience
Group: User Interface/Desktops Group: User Interface/Desktops
@ -283,6 +293,16 @@ This GNOME Shell extension enables loading a GNOME Shell theme from
~/.themes/<name>/gnome-shell/. ~/.themes/<name>/gnome-shell/.
%package -n %{pkg_prefix}-window-grouper
Summary: Keep windows that belong to the same process on the same workspace
Group: User Interface/Desktops
License: GPLv2+
Requires: %{pkg_prefix}-common = %{version}-%{release}
%description -n %{pkg_prefix}-window-grouper
This GNOME Shell extension keeps windows that belong to the same process on the same workspace.
%package -n %{pkg_prefix}-window-list %package -n %{pkg_prefix}-window-list
Summary: Display a window list at the bottom of the screen in GNOME Shell Summary: Display a window list at the bottom of the screen in GNOME Shell
Group: User Interface/Desktops Group: User Interface/Desktops
@ -323,6 +343,7 @@ workspaces.
%meson -Dextension_set="all" -Dclassic_mode=true %meson -Dextension_set="all" -Dclassic_mode=true
%meson_build %meson_build
%install %install
%meson_install %meson_install
@ -334,15 +355,12 @@ cp $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome-classic.desktop \
cp $RPM_SOURCE_DIR/gnome-classic-wayland.desktop $RPM_BUILD_ROOT%{_datadir}/wayland-sessions cp $RPM_SOURCE_DIR/gnome-classic-wayland.desktop $RPM_BUILD_ROOT%{_datadir}/wayland-sessions
cp $RPM_SOURCE_DIR/gnome-classic.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions cp $RPM_SOURCE_DIR/gnome-classic.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
# Drop useless example extension
rm -r $RPM_BUILD_ROOT%{_datadir}/gnome-shell/extensions/example*/
rm $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.example.gschema.xml
%find_lang %{name} %find_lang %{name}
%files -n %{pkg_prefix}-common -f %{name}.lang %files -n %{pkg_prefix}-common -f %{name}.lang
%doc COPYING NEWS README.md %doc NEWS README.md
%license COPYING
%files -n gnome-classic-session %files -n gnome-classic-session
@ -353,11 +371,7 @@ rm $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.exampl
%{_datadir}/gnome-shell/theme/gnome-classic.css %{_datadir}/gnome-shell/theme/gnome-classic.css
%{_datadir}/xsessions/gnome-classic.desktop %{_datadir}/xsessions/gnome-classic.desktop
%{_datadir}/wayland-sessions/gnome-classic-wayland.desktop %{_datadir}/wayland-sessions/gnome-classic-wayland.desktop
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.classic-overrides.gschema.xml %{_datadir}/glib-2.0/schemas/00_org.gnome.shell.extensions.classic.gschema.override
%files -n %{pkg_prefix}-alternate-tab
%{_datadir}/gnome-shell/extensions/alternate-tab*/
%files -n %{pkg_prefix}-apps-menu %files -n %{pkg_prefix}-apps-menu
%{_datadir}/gnome-shell/extensions/apps-menu*/ %{_datadir}/gnome-shell/extensions/apps-menu*/
@ -373,6 +387,14 @@ rm $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.exampl
%{_datadir}/gnome-shell/extensions/dash-to-dock*/ %{_datadir}/gnome-shell/extensions/dash-to-dock*/
%files -n %{pkg_prefix}-disable-screenshield
%{_datadir}/gnome-shell/extensions/disable-screenshield*/
%files -n %{pkg_prefix}-horizontal-workspaces
%{_datadir}/gnome-shell/extensions/horizontal-workspaces*/
%files -n %{pkg_prefix}-desktop-icons %files -n %{pkg_prefix}-desktop-icons
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml
%{_datadir}/gnome-shell/extensions/desktop-icons*/ %{_datadir}/gnome-shell/extensions/desktop-icons*/
@ -426,6 +448,11 @@ rm $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.exampl
%{_datadir}/gnome-shell/extensions/user-theme*/ %{_datadir}/gnome-shell/extensions/user-theme*/
%files -n %{pkg_prefix}-window-grouper
%{_datadir}/gnome-shell/extensions/window-grouper*/
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.window-grouper.gschema.xml
%files -n %{pkg_prefix}-window-list %files -n %{pkg_prefix}-window-list
%{_datadir}/gnome-shell/extensions/window-list*/ %{_datadir}/gnome-shell/extensions/window-list*/
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.window-list.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.window-list.gschema.xml
@ -440,6 +467,57 @@ rm $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.exampl
%changelog %changelog
* Wed Jul 24 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-10
- Drop obsolete downstream style patch
- Keep classic notification styling
Related: #1731372
* Thu Jul 18 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-9
- Backport classic style improvements
Resolves: #1726093
* Thu Jul 04 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-8
- Allow closing window picker with Escape
Resolves: #1725854
* Sat Jun 29 2019 Florian Müllner <fmuellner@redhat.com> - 3.32-1-7
- Add window thumbnails to workspace switcher
Resolves: #1723467
- Fix apps-menu not disabling itself entirely
Resolves: #1722047
* Tue Jun 25 2019 Florian Müllner <fmuellner@redhat.com> - 3.32-1-6
- Fix new classic mode issues:
- stray signal handler with overlay key
Resolves: #1722844
- improve DND support:
+ don't consider regular windows
(it doesn't work well, and GNOME 2 didn't support it either)
+ indicate that workspace thumbs are drop targets
Related: #1704360
* Tue Jun 18 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-5
- Small refinements after design feedback:
- use default icon size in picker button to avoid blurriness
- use <super> shortcut to open window picker
Resolves: #1721195
* Tue Jun 18 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-4
- Don't add apps-menu logo when activities button is present
Resolves: #1721195
* Wed Jun 12 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-3
- Make classic mode more classic
Resolves: #1704360
* Fri May 31 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-2
- Fix top-icons sizing issue
Resolves: #1715765
* Thu May 23 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.1-1
- Update to 3.32.1
Resolves: #1713453
* Mon Feb 11 2019 Florian Müllner <fmuellner@redhat.com> - 3.28.1-8 * Mon Feb 11 2019 Florian Müllner <fmuellner@redhat.com> - 3.28.1-8
- Update desktop-icons extension to 19.01 - Update desktop-icons extension to 19.01
Resolves: #1666739 Resolves: #1666739