Codebase list gnome-shell-extensions / d7e5653
Import Debian changes 3.30.0-1 gnome-shell-extensions (3.30.0-1) unstable; urgency=medium * New upstream release * Release to unstable gnome-shell-extensions (3.29.91-1) experimental; urgency=medium * Team upload * New upstream development release * Bump Standards-Version to 4.2.0 * Sort dependency lists (wrap-and-sort -a) * d/copyright: Remove unnecessary sentence fragment * d/p/series: Remove commented-out line gnome-shell-extensions (3.29.90-1) experimental; urgency=medium * Team upload * New upstream development release gnome-shell-extensions (3.29.3+really3.29.3-1) experimental; urgency=medium * Team upload * d/watch: Watch for development versions * Re-upload to experimental with a higher version than 3.29.3+really3.28.1-1, which reverted the incorrect upload of the previous version to unstable gnome-shell-extensions (3.29.3-1) unstable; urgency=medium * Team upload [ Arnaud Rebillout ] * New upstream release [ Simon McVittie ] * Bump Standards-Version to 4.1.5 * Set Rules-Requires-Root to no Jeremy Bicha authored 5 years ago Sophie Brun committed 5 years ago
25 changed file(s) with 305 addition(s) and 225 deletion(s). Raw diff Collapse all Expand all
0 3.30.0
1 ======
2 * Bump version
3
4 3.29.91
5 =======
6 * Misc. bug fixes [Florian; #90]
7
8 Contributors:
9 Florian Müllner
10
11 3.29.90
12 =======
13 * Misc. bug fixes [Florian; #786496]
14
15 Contributors:
16 Florian Müllner
17
18 3.29.3
19 ======
20 * Adjust to global.screen removal [Jonas; #759538]
21
22 Contributors:
23 Jonas Ådahl, Florian Müllner
24
25 3.29.2
26 ======
27 * Misc. bug fixes [Florian; #69]
28
29 Contributors:
30 Florian Müllner
31
032 3.28.1
133 ======
234 * Misc. bug fixes [Xiaoguang, Florian; #59, #62]
0 [org.gnome.mutter:GNOME-Classic]
1 dynamic-workspaces=false
2
3 [org.gnome.desktop.wm.preferences:GNOME-Classic]
4 button-layout='appmenu:minimize,maximize,close'
5
6 [org.gnome.desktop.wm.keybindings:GNOME-Classic]
7 switch-applications=[]
8 switch-windows=['<Super>Tab','<Alt>Tab']
+0
-6
data/gnome-shell-sass/HACKING less more
0 --- Generating the css file ---
1
2 You need sass to generate the css file.
3
4 To generate them run from a command line in the project directory:
5 sass --sourcemap=none --update ./
+0
-7
data/gnome-shell-sass/README less more
0 GNOME Shell Sass is a project intended to allow the sharing of the theme sources in sass between gnome-shell and other projects like gnome-shell-extensions.
1
2 License
3 =======
4 GNOME Shell Sass is distributed under the terms of the GNU General Public License,
5 version 2 or later. See the COPYING file for details.
6
0 # GNOME Shell Sass
1 GNOME Shell Sass is a project intended to allow the sharing of the
2 theme sources in sass between gnome-shell and other projects like
3 gnome-shell-extensions.
4
5 Any changes should be done in the [GNOME Shell subtree][shell-subtree]
6 and not the stand-alone [gnome-shell-sass repository][sass-repo]. They
7 will then be synchronized periodically before releases.
8
9 ## License
10 GNOME Shell Sass is distributed under the terms of the GNU General Public
11 License, version 2 or later. See the [COPYING][license] file for details.
12
13 [shell-subtree]: https://gitlab.gnome.org/GNOME/gnome-shell/tree/master/data/theme/gnome-shell-sass
14 [sass-repo]: https://gitlab.gnome.org/GNOME/gnome-shell-sass
15 [license]: COPYING
127127
128128 .slider {
129129 height: 1em;
130 -slider-height: 0.3em;
131 -slider-background-color: $insensitive_bg_color; //background of the trough
132 -slider-border-color: $borders_color; //trough border color
133 -slider-active-background-color: $selected_bg_color; //active trough fill
134 -slider-active-border-color: darken($selected_bg_color,10%); //active trough border
135 -slider-border-width: 1px;
130 -barlevel-height: 0.3em;
131 -barlevel-background-color: $insensitive_bg_color; //background of the trough
132 -barlevel-border-color: $borders_color; //trough border color
133 -barlevel-active-background-color: $selected_bg_color; //active trough fill
134 -barlevel-active-border-color: darken($selected_bg_color,10%); //active trough border
135 -barlevel-overdrive-color: $destructive_color;
136 -barlevel-overdrive-border-color: darken($destructive_color,10%);
137 -barlevel-overdrive-separator-width: 0.2em;
138 -barlevel-border-width: 1px;
136139 -slider-handle-radius: 6px;
137140 }
138141
584587 .osd-monitor-label { font-size: 3em; }
585588 .level {
586589 height: 0.6em;
587 border-radius: 0.3em;
588 background-color: transparentize(darken($osd_bg_color,15%),0.5);
589 color: $osd_fg_color;
590 }
591 .level-bar {
592 background-color: $osd_fg_color;
593 border-radius: 0.3em;
590 -barlevel-height: 0.6em;
591 -barlevel-background-color: transparentize(darken($osd_bg_color,15%),0.5);
592 -barlevel-active-background-color: $osd_fg_color;
593 -barlevel-overdrive-color: $destructive_color;
594 -barlevel-overdrive-separator-width: 0.2em;
594595 }
595596 }
596597
732733 transition-duration: 500ms;
733734 font-weight: bold;
734735 height: 1.86em;
736 font-feature-settings: "tnum";
735737
736738 &.unlock-screen,
737739 &.login-screen,
822824 }
823825
824826 .screencast-indicator { color: $warning_color; }
827
828 .remote-access-indicator { color: $warning_color; }
825829
826830 &.solid {
827831 background-color: black;
957961 padding: 0.1em;
958962 margin: 2px;
959963 border-radius: 1.4em;
964 font-feature-settings: "tnum";
960965 &:hover,&:focus { background-color: lighten($bg_color,5%); }
961966 &:active,&:selected {
962967 color: lighten($selected_fg_color,5%);
11101115 .aggregate-menu {
11111116 min-width: 21em;
11121117 .popup-menu-icon { padding: 0 4px; }
1113 .popup-sub-menu .popup-menu-item :first-child {
1118 .popup-sub-menu .popup-menu-item > :first-child {
11141119 &:ltr { /* 12px spacing + 2*4px padding */
11151120 padding-left: 20px; margin-left: 1.09em; }
11161121 &:rtl { /* 12px spacing + 2*4px padding */
11191124 }
11201125
11211126 .system-menu-action {
1127 -st-icon-style: symbolic;
11221128 color: $fg_color;
11231129 border-radius: 32px; /* wish we could do 50% */
11241130 padding: 13px;
17871793 .login-dialog-user-list-view { -st-vfade-offset: 1em; }
17881794 .login-dialog-user-list {
17891795 spacing: 12px;
1790 padding: .2em;
17911796 width: 23em;
17921797 &:expanded .login-dialog-user-list-item:selected { background-color: $selected_bg_color; color: $selected_fg_color; }
17931798 &:expanded .login-dialog-user-list-item:logged-in { border-right: 2px solid $selected_bg_color; }
17941799 }
17951800 .login-dialog-user-list-item {
17961801 border-radius: 5px;
1797 padding: .2em;
1802 padding: 6px;
17981803 color: darken($osd_fg_color,30%);
1799 &:ltr { padding-right: 1em; }
1800 &:rtl { padding-left: 1em; }
1804 &:ltr .user-widget { padding-right: 1em; }
1805 &:rtl .user-widget { padding-left: 1em; }
18011806 .login-dialog-timed-login-indicator {
18021807 height: 2px;
1803 margin: 2px 0 0 0;
1808 margin-top: 6px;
18041809 background-color: $osd_fg_color;
18051810 }
18061811 &:focus .login-dialog-timed-login-indicator { background-color: $selected_fg_color; }
18151820 padding-left: 15px;
18161821 }
18171822 .user-widget-label {
1818 &:ltr { padding-left: 18px; }
1819 &:rtl { padding-right: 18px; }
1823 &:ltr { padding-left: 14px; }
1824 &:rtl { padding-right: 14px; }
18201825 }
18211826
18221827 .login-dialog-prompt-layout {
18671872 .screen-shield-clock-time {
18681873 font-size: 72pt;
18691874 text-shadow: 0px 2px 2px rgba(0,0,0,0.4);
1875 font-feature-settings: "tnum";
18701876 }
18711877
18721878 .screen-shield-clock-date {
5858
5959 install_data(theme_data, install_dir: themedir)
6060
61 classic_schema = 'org.gnome.shell.extensions.classic-overrides.gschema.xml'
62 install_data(classic_schema, install_dir: schemadir)
61 classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
62 install_data(classic_override, install_dir: schemadir)
+0
-46
data/org.gnome.shell.extensions.classic-overrides.gschema.xml less more
0 <schemalist>
1 <schema id="org.gnome.shell.extensions.classic-overrides"
2 path="/org/gnome/shell/extensions/classic-overrides/"
3 gettext-domain="gnome-shell-extensions">
4 <key name="attach-modal-dialogs" type="b">
5 <default>true</default>
6 <summary>Attach modal dialog to the parent window</summary>
7 <description>
8 This key overrides the key in org.gnome.mutter when running
9 GNOME Shell.
10 </description>
11 </key>
12
13 <key name="button-layout" type="s">
14 <default>"appmenu:minimize,maximize,close"</default>
15 <summary>Arrangement of buttons on the titlebar</summary>
16 <description>
17 This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell.
18 </description>
19 </key>
20
21 <key name="edge-tiling" type="b">
22 <default>true</default>
23 <summary>Enable edge tiling when dropping windows on screen edges</summary>
24 <description>
25 This key overrides the key in org.gnome.mutter when running GNOME Shell.
26 </description>
27 </key>
28
29 <key name="workspaces-only-on-primary" type="b">
30 <default>true</default>
31 <summary>Workspaces only on primary monitor</summary>
32 <description>
33 This key overrides the key in org.gnome.mutter when running GNOME Shell.
34 </description>
35 </key>
36
37 <key name="focus-change-on-pointer-rest" type="b">
38 <default>true</default>
39 <summary>Delay focus changes in mouse mode until the pointer stops moving</summary>
40 <description>
41 This key overrides the key in org.gnome.mutter when running GNOME Shell.
42 </description>
43 </key>
44 </schema>
45 </schemalist>
0 gnome-shell-extensions (3.30.0-1) unstable; urgency=medium
1
2 * New upstream release
3 * Release to unstable
4
5 -- Jeremy Bicha <[email protected]> Wed, 05 Sep 2018 12:34:40 -0400
6
7 gnome-shell-extensions (3.29.91-1) experimental; urgency=medium
8
9 * Team upload
10 * New upstream development release
11 * Bump Standards-Version to 4.2.0
12 * Sort dependency lists (wrap-and-sort -a)
13 * d/copyright: Remove unnecessary sentence fragment
14 * d/p/series: Remove commented-out line
15
16 -- Simon McVittie <[email protected]> Mon, 20 Aug 2018 20:27:57 +0100
17
18 gnome-shell-extensions (3.29.90-1) experimental; urgency=medium
19
20 * Team upload
21 * New upstream development release
22
23 -- Simon McVittie <[email protected]> Thu, 02 Aug 2018 10:46:44 +0100
24
25 gnome-shell-extensions (3.29.3+really3.29.3-1) experimental; urgency=medium
26
27 * Team upload
28 * d/watch: Watch for development versions
29 * Re-upload to experimental with a higher version than
30 3.29.3+really3.28.1-1, which reverted the incorrect upload of the
31 previous version to unstable
32
33 -- Simon McVittie <[email protected]> Fri, 27 Jul 2018 23:56:10 +0100
34
35 gnome-shell-extensions (3.29.3-1) unstable; urgency=medium
36
37 * Team upload
38
39 [ Arnaud Rebillout ]
40 * New upstream release
41
42 [ Simon McVittie ]
43 * Bump Standards-Version to 4.1.5
44 * Set Rules-Requires-Root to no
45
46 -- Simon McVittie <[email protected]> Fri, 27 Jul 2018 09:37:34 +0100
47
048 gnome-shell-extensions (3.28.1-1) unstable; urgency=medium
149
250 * New upstream release
1010 gnome-pkg-tools,
1111 meson (>= 0.44.0),
1212 sassc
13 Standards-Version: 4.1.4
13 Rules-Requires-Root: no
14 Standards-Version: 4.2.0
1415 Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell-extensions
1516 Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell-extensions.git
1617 Homepage: https://wiki.gnome.org/Projects/GnomeShell/Extensions
1718
1819 Package: gnome-shell-extensions
1920 Architecture: all
20 Depends: ${misc:Depends},
21 gnome-shell (>= ${gnome:Version}),
22 gnome-shell (<< ${gnome:NextVersion}),
23 gir1.2-atk-1.0,
21 Depends: gir1.2-atk-1.0,
2422 gir1.2-clutter-1.0,
2523 gir1.2-gdkpixbuf-2.0,
2624 gir1.2-glib-2.0,
2725 gir1.2-gmenu-3.0,
2826 gir1.2-gtk-3.0,
2927 gir1.2-pango-1.0,
28 gnome-session-bin (>= 3.8),
29 gnome-settings-daemon (>= 3.24),
30 gnome-shell (<< ${gnome:NextVersion}),
31 gnome-shell (>= ${gnome:Version}),
3032 gvfs (>= 1.16.0),
31 gnome-session-bin (>= 3.8),
32 gnome-settings-daemon (>= 3.24)
33 ${misc:Depends}
3334 Recommends: gnome-tweaks
3435 Replaces: gnome-shell-common (<< 3.18)
3536 Breaks: gnome-shell-common (<< 3.18)
66 gnome-pkg-tools,
77 meson (>= 0.44.0),
88 sassc
9 Standards-Version: 4.1.4
9 Rules-Requires-Root: no
10 Standards-Version: 4.2.0
1011 Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell-extensions
1112 Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell-extensions.git
1213 Homepage: https://wiki.gnome.org/Projects/GnomeShell/Extensions
1314
1415 Package: gnome-shell-extensions
1516 Architecture: all
16 Depends: ${misc:Depends},
17 gnome-shell (>= ${gnome:Version}),
18 gnome-shell (<< ${gnome:NextVersion}),
19 gir1.2-atk-1.0,
17 Depends: gir1.2-atk-1.0,
2018 gir1.2-clutter-1.0,
2119 gir1.2-gdkpixbuf-2.0,
2220 gir1.2-glib-2.0,
2321 gir1.2-gmenu-3.0,
2422 gir1.2-gtk-3.0,
2523 gir1.2-pango-1.0,
24 gnome-session-bin (>= 3.8),
25 gnome-settings-daemon (>= 3.24),
26 gnome-shell (<< ${gnome:NextVersion}),
27 gnome-shell (>= ${gnome:Version}),
2628 gvfs (>= 1.16.0),
27 gnome-session-bin (>= 3.8),
28 gnome-settings-daemon (>= 3.24)
29 ${misc:Depends}
2930 Recommends: gnome-tweaks
3031 Replaces: gnome-shell-common (<< 3.18)
3132 Breaks: gnome-shell-common (<< 3.18)
2323 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2424 GNU General Public License for more details.
2525 .
26 You should have received a copy of the GNU General Public License
27 along with this program. If not, see
28 .
2926 On Debian systems, the complete text of the GNU General
3027 Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
22 debian-branch = debian/master
33 upstream-branch = upstream/latest
44 upstream-vcs-tag = %(version)s
5
6 [buildpackage]
7 sign-tags = True
8
9 [import-orig]
10 postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
11
12 [pq]
13 patch-numbers = False
0 #dont-require-nautilus-classic.patch
10 gnome-session-classic-wrapper-script.patch
2121 schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
2222
2323 cp $srcdir/NEWS $srcdir/COPYING $f
24 cp -r $localedir $f
2425
2526 if [ -f $schema ]; then
2627 mkdir $f/schemas
3030 return injections['_keyPressHandler'].call(this, keysym, action);
3131 };
3232
33 Main.wm._forcedWindowSwitcher = function(display, screen, window, binding) {
33 Main.wm._forcedWindowSwitcher = function(display, window, binding) {
3434 /* prevent a corner case where both popups show up at once */
3535 if (this._workspaceSwitcherPopup != null)
3636 this._workspaceSwitcherPopup.destroy();
7878 return;
7979
8080 // ensure we have the required number of workspaces
81 for (let i = global.screen.n_workspaces; i <= workspaceNum; i++) {
81 let workspaceManager = global.workspace_manager;
82 for (let i = workspaceManager.n_workspaces; i <= workspaceNum; i++) {
8283 window.change_workspace_by_index(i - 1, false);
83 global.screen.append_new_workspace(false, 0);
84 workspaceManager.append_new_workspace(false, 0);
8485 }
8586
8687 window.change_workspace_by_index(workspaceNum, false);
174174 }
175175
176176 destroy() {
177 if (this._connectedId) {
178 this._monitor.disconnect(this._connectedId);
179 this._monitor.disconnect(this._disconnectedId);
180 this._connectedId = 0;
181 this._disconnectedId = 0;
177 if (this._addedId) {
178 this._monitor.disconnect(this._addedId);
179 this._monitor.disconnect(this._removedId);
180 this._addedId = 0;
181 this._removedId = 0;
182182 }
183183
184184 super.destroy();
4949 return (_ignored, result) => {
5050 try {
5151 Gio.AppInfo.launch_default_for_uri_finish(result);
52 } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
53 let source = {
54 get_icon: () => { return this.icon; }
55 };
56 let op = new ShellMountOperation.ShellMountOperation(source);
57 this.file.mount_enclosing_volume(0, op.mountOp, null, (file, result) => {
58 try {
59 op.close();
60 file.mount_enclosing_volume_finish(result);
61 } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED)) {
62 // e.g. user canceled the password dialog
63 return;
64 } catch(e) {
65 Main.notifyError(_("Failed to mount volume for “%s”").format(this.name), e.message);
66 return;
67 }
68
69 if (tryMount) {
70 let callback = this._createLaunchCallback(launchContext, false);
71 Gio.AppInfo.launch_default_for_uri_async(file.get_uri(),
72 launchContext,
73 null,
74 callback);
75 }
76 });
7752 } catch(e) {
78 Main.notifyError(_("Failed to launch “%s”").format(this.name), e.message);
53 if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
54 let source = {
55 get_icon: () => { return this.icon; }
56 };
57 let op = new ShellMountOperation.ShellMountOperation(source);
58 this.file.mount_enclosing_volume(0, op.mountOp, null, (file, result) => {
59 try {
60 op.close();
61 file.mount_enclosing_volume_finish(result);
62 } catch(e) {
63 if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
64 // e.g. user canceled the password dialog
65 return;
66 Main.notifyError(_("Failed to mount volume for “%s”").format(this.name), e.message);
67 return;
68 }
69
70 if (tryMount) {
71 let callback = this._createLaunchCallback(launchContext, false);
72 Gio.AppInfo.launch_default_for_uri_async(file.get_uri(),
73 launchContext,
74 null,
75 callback);
76 }
77 });
78 } else {
79 Main.notifyError(_("Failed to launch “%s”").format(this.name), e.message);
80 }
7981 }
8082 }
8183 }
9698 let info = file.query_info_finish(result);
9799 this.icon = info.get_symbolic_icon();
98100 this.emit('changed');
99 } catch(e if e instanceof Gio.IOErrorEnum) {
100 return;
101 } catch(e) {
102 if (e instanceof Gio.IOErrorEnum)
103 return;
104 throw e;
101105 }
102106 });
103107
122126 try {
123127 let info = this.file.query_info('standard::display-name', 0, null);
124128 return info.get_display_name();
125 } catch(e if e instanceof Gio.IOErrorEnum) {
126 return this.file.get_basename();
129 } catch(e) {
130 if (e instanceof Gio.IOErrorEnum)
131 return this.file.get_basename();
132 throw e;
127133 }
128134 }
129135 };
348354 let file = Gio.File.new_for_path(specialPath), info;
349355 try {
350356 info = new PlaceInfo('special', file);
351 } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
352 continue;
357 } catch(e) {
358 if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
359 continue;
360 throw e;
353361 }
354362
355363 specials.push(info);
513521
514522 try {
515523 devItem = new PlaceDeviceInfo(kind, mount);
516 } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
517 return;
524 } catch(e) {
525 if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
526 return;
527 throw e;
518528 }
519529
520530 this._places[kind].push(devItem);
525535
526536 try {
527537 volItem = new PlaceVolumeInfo(kind, volume);
528 } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
529 return;
538 } catch(e) {
539 if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
540 return;
541 throw e;
530542 }
531543
532544 this._places[kind].push(volItem);
6868 [1600, 900]
6969 ];
7070
71 function cycleScreenshotSizes(display, screen, window, binding) {
71 function cycleScreenshotSizes(display, window, binding) {
7272 // Probably this isn't useful with 5 sizes, but you can decrease instead
7373 // of increase by holding down shift.
7474 let modifiers = binding.get_modifiers();
237237
238238 if (this._perMonitor) {
239239 this._windowEnteredMonitorId =
240 global.screen.connect('window-entered-monitor',
240 global.display.connect('window-entered-monitor',
241241 this._windowEnteredOrLeftMonitor.bind(this));
242242 this._windowLeftMonitorId =
243 global.screen.connect('window-left-monitor',
243 global.display.connect('window-left-monitor',
244244 this._windowEnteredOrLeftMonitor.bind(this));
245245 }
246246 }
281281 this.actor.remove_style_class_name('focused');
282282 }
283283
284 _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
284 _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
285285 throw new Error('Not implemented');
286286 }
287287
288288 _isWindowVisible(window) {
289 let workspace = global.screen.get_active_workspace();
289 let workspace = global.workspace_manager.get_active_workspace();
290290
291291 return !window.skip_taskbar &&
292292 window.located_on_workspace(workspace) &&
314314 global.window_manager.disconnect(this._switchWorkspaceId);
315315
316316 if (this._windowEnteredMonitorId)
317 global.screen.disconnect(this._windowEnteredMonitorId);
317 global.display.disconnect(this._windowEnteredMonitorId);
318318 this._windowEnteredMonitorId = 0;
319319
320320 if (this._windowLeftMonitorId)
321 global.screen.disconnect(this._windowLeftMonitorId);
321 global.display.disconnect(this._windowLeftMonitorId);
322322 this._windowLeftMonitorId = 0;
323323 }
324324 };
376376 this.actor.remove_style_class_name('minimized');
377377 }
378378
379 _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
379 _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
380380 if (monitorIndex == this._monitorIndex && metaWindow == this.metaWindow)
381381 this._updateVisibility();
382382 }
517517 this._updateStyle();
518518 }
519519
520 _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
520 _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
521521 if (this._windowTracker.get_window_app(metaWindow) == this.app &&
522522 monitorIndex == this._monitorIndex) {
523523 this._updateVisibility();
528528 _updateVisibility() {
529529 if (!this._perMonitor) {
530530 // fast path: use ShellApp API to avoid iterating over all windows.
531 let workspace = global.screen.get_active_workspace();
531 let workspace = global.workspace_manager.get_active_workspace();
532532 this.actor.visible = this.app.is_on_workspace(workspace);
533533 } else {
534534 this.actor.visible = this.getWindowList().length >= 1;
651651 x_expand: true, y_expand: true });
652652 this.actor.add_actor(container);
653653
654 this._currentWorkspace = global.screen.get_active_workspace().index();
654 let workspaceManager = global.workspace_manager;
655
656 this._currentWorkspace = workspaceManager.get_active_workspace().index();
655657 this.statusLabel = new St.Label({ text: this._getStatusText(),
656658 x_align: Clutter.ActorAlign.CENTER,
657659 y_align: Clutter.ActorAlign.CENTER });
659661
660662 this.workspacesItems = [];
661663
662 this._screenSignals = [];
663 this._screenSignals.push(global.screen.connect('notify::n-workspaces',
664 this._updateMenu.bind(this)));
665 this._screenSignals.push(global.screen.connect_after('workspace-switched',
666 this._updateIndicator.bind(this)));
664 this._workspaceManagerSignals = [];
665 this._workspaceManagerSignals.push(workspaceManager.connect('notify::n-workspaces',
666 this._updateMenu.bind(this)));
667 this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched',
668 this._updateIndicator.bind(this)));
667669
668670 this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
669671 this._updateMenu();
675677 }
676678
677679 destroy() {
678 for (let i = 0; i < this._screenSignals.length; i++)
679 global.screen.disconnect(this._screenSignals[i]);
680 for (let i = 0; i < this._workspaceManagerSignals.length; i++)
681 global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
680682
681683 if (this._settingsChangedId) {
682684 this._settings.disconnect(this._settingsChangedId);
688690
689691 _updateIndicator() {
690692 this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
691 this._currentWorkspace = global.screen.get_active_workspace().index();
693 this._currentWorkspace = global.workspace_manager.get_active_workspace().index();
692694 this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
693695
694696 this.statusLabel.set_text(this._getStatusText());
695697 }
696698
697699 _getStatusText() {
698 let current = global.screen.get_active_workspace().index();
699 let total = global.screen.n_workspaces;
700 let workspaceManager = global.workspace_manager;
701 let current = workspaceManager.get_active_workspace().index();
702 let total = workspaceManager.n_workspaces;
700703
701704 return '%d / %d'.format(current + 1, total);
702705 }
703706
704707 _updateMenu() {
708 let workspaceManager = global.workspace_manager;
709
705710 this.menu.removeAll();
706711 this.workspacesItems = [];
707 this._currentWorkspace = global.screen.get_active_workspace().index();
708
709 for(let i = 0; i < global.screen.n_workspaces; i++) {
712 this._currentWorkspace = workspaceManager.get_active_workspace().index();
713
714 for(let i = 0; i < workspaceManager.n_workspaces; i++) {
710715 let name = Meta.prefs_get_workspace_name(i);
711716 let item = new PopupMenu.PopupMenuItem(name);
712717 item.workspaceId = i;
726731 }
727732
728733 _activate(index) {
729 if(index >= 0 && index < global.screen.n_workspaces) {
730 let metaWorkspace = global.screen.get_workspace_by_index(index);
734 let workspaceManager = global.workspace_manager;
735
736 if(index >= 0 && index < workspaceManager.n_workspaces) {
737 let metaWorkspace = workspaceManager.get_workspace_by_index(index);
731738 metaWorkspace.activate(global.get_current_time());
732739 }
733740 }
791798 indicatorsBox.add(this._workspaceIndicator.container, { expand: false, y_fill: true });
792799
793800 this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
794 this._workspaceSettings = this._getWorkspaceSettings();
795801 this._workspacesOnlyOnPrimaryChangedId =
796 this._workspaceSettings.connect('changed::workspaces-only-on-primary',
797 this._updateWorkspaceIndicatorVisibility.bind(this));
798 this._dynamicWorkspacesSettings = this._getDynamicWorkspacesSettings();
802 this._mutterSettings.connect('changed::workspaces-only-on-primary',
803 this._updateWorkspaceIndicatorVisibility.bind(this));
799804 this._dynamicWorkspacesChangedId =
800 this._dynamicWorkspacesSettings.connect('changed::dynamic-workspaces',
801 this._updateWorkspaceIndicatorVisibility.bind(this));
805 this._mutterSettings.connect('changed::dynamic-workspaces',
806 this._updateWorkspaceIndicatorVisibility.bind(this));
802807 this._updateWorkspaceIndicatorVisibility();
803808
804809 this._menuManager = new PopupMenu.PopupMenuManager(this);
832837 this._updateKeyboardAnchor();
833838 });
834839
840 let workspaceManager = global.workspace_manager;
841
835842 this._workspaceSignals = new Map();
836843 this._nWorkspacesChangedId =
837 global.screen.connect('notify::n-workspaces',
838 this._onWorkspacesChanged.bind(this));
844 workspaceManager.connect('notify::n-workspaces',
845 this._onWorkspacesChanged.bind(this));
839846 this._onWorkspacesChanged();
840847
841848 this._switchWorkspaceId =
855862 });
856863
857864 this._fullscreenChangedId =
858 global.screen.connect('in-fullscreen-changed', () => {
865 global.display.connect('in-fullscreen-changed', () => {
859866 this._updateKeyboardAnchor();
860867 });
861868
880887 this._groupingModeChanged();
881888 }
882889
883 _getDynamicWorkspacesSettings() {
884 if (this._workspaceSettings.list_keys().includes('dynamic-workspaces'))
885 return this._workspaceSettings;
886 return this._mutterSettings;
887 }
888
889 _getWorkspaceSettings() {
890 let settings = global.get_overrides_settings() || this._mutterSettings;
891 if (settings.list_keys().includes('workspaces-only-on-primary'))
892 return settings;
893 return this._mutterSettings;
894 }
895
896890 _onScrollEvent(actor, event) {
897891 let direction = event.get_scroll_direction();
898892 let diff = 0;
922916 }
923917
924918 _updateWorkspaceIndicatorVisibility() {
925 let hasWorkspaces = this._dynamicWorkspacesSettings.get_boolean('dynamic-workspaces') ||
926 global.screen.n_workspaces > 1;
919 let workspaceManager = global.workspace_manager;
920 let hasWorkspaces = this._mutterSettings.get_boolean('dynamic-workspaces') ||
921 workspaceManager.n_workspaces > 1;
927922 let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor ||
928 !this._workspaceSettings.get_boolean('workspaces-only-on-primary');
923 !this._mutterSettings.get_boolean('workspaces-only-on-primary');
929924
930925 this._workspaceIndicator.actor.visible = hasWorkspaces && workspacesOnMonitor;
931926 }
938933 let [, childWidth] = children[0].get_preferred_width(-1);
939934 let spacing = this._windowList.layout_manager.spacing;
940935
941 let workspace = global.screen.get_active_workspace();
936 let workspace = global.workspace_manager.get_active_workspace();
942937 let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
943938 if (this._perMonitor)
944939 windows = windows.filter(w => w.get_monitor() == this._monitor.index);
10781073 }
10791074
10801075 _onWorkspacesChanged() {
1081 let numWorkspaces = global.screen.n_workspaces;
1076 let workspaceManager = global.workspace_manager;
1077 let numWorkspaces = workspaceManager.n_workspaces;
1078
10821079 for (let i = 0; i < numWorkspaces; i++) {
1083 let workspace = global.screen.get_workspace_by_index(i);
1080 let workspace = workspaceManager.get_workspace_by_index(i);
10841081 if (this._workspaceSignals.has(workspace))
10851082 continue;
10861083
10981095 }
10991096
11001097 _disconnectWorkspaceSignals() {
1101 let numWorkspaces = global.screen.n_workspaces;
1098 let workspaceManager = global.workspace_manager;
1099 let numWorkspaces = workspaceManager.n_workspaces;
1100
11021101 for (let i = 0; i < numWorkspaces; i++) {
1103 let workspace = global.screen.get_workspace_by_index(i);
1102 let workspace = workspaceManager.get_workspace_by_index(i);
11041103 let signals = this._workspaceSignals.get(workspace);
11051104 this._workspaceSignals.delete(workspace);
11061105 workspace.disconnect(signals._windowAddedId);
11621161 }
11631162
11641163 _onDestroy() {
1165 this._workspaceSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
1166 this._dynamicWorkspacesSettings.disconnect(this._dynamicWorkspacesChangedId);
1164 this._mutterSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
1165 this._mutterSettings.disconnect(this._dynamicWorkspacesChangedId);
11671166
11681167 this._workspaceIndicator.destroy();
11691168
11781177 Main.layoutManager.hideKeyboard();
11791178
11801179 this._disconnectWorkspaceSignals();
1181 global.screen.disconnect(this._nWorkspacesChangedId);
1180 global.workspace_manager.disconnect(this._nWorkspacesChangedId);
11821181 this._nWorkspacesChangedId = 0;
11831182
11841183 global.window_manager.disconnect(this._switchWorkspaceId);
11881187 Main.overview.disconnect(this._overviewShowingId);
11891188 Main.overview.disconnect(this._overviewHidingId);
11901189
1191 global.screen.disconnect(this._fullscreenChangedId);
1190 global.display.disconnect(this._fullscreenChangedId);
11921191
11931192 Main.xdndHandler.disconnect(this._dragBeginId);
11941193 Main.xdndHandler.disconnect(this._dragEndId);
134134 if(Main.overview.viewSelector._activePage != Main.overview.viewSelector._workspacesPage)
135135 return false;
136136
137 let workspaceManager = global.workspace_manager;
138
137139 if ((o.get_key_symbol() == Clutter.KEY_Alt_L ||
138140 o.get_key_symbol() == Clutter.KEY_Alt_R)
139141 && !this._pickWorkspace) {
140142 this._prevFocusActor = global.stage.get_key_focus();
141143 global.stage.set_key_focus(null);
142 this._active = global.screen.get_active_workspace_index();
144 this._active = workspaceManager.get_active_workspace_index();
143145 this._pickWindow = true;
144 this._workspaces[global.screen.get_active_workspace_index()].showWindowsTooltips();
146 this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
145147 return true;
146148 }
147149 if ((o.get_key_symbol() == Clutter.KEY_Control_L ||
165167 return true;
166168
167169 if (this._pickWindow) {
168 if (this._active != global.screen.get_active_workspace_index()) {
170 if (this._active != workspaceManager.get_active_workspace_index()) {
169171 this._hideTooltips();
170172 return false;
171173 }
2424 constructor() {
2525 super(0.0, _("Workspace Indicator"));
2626
27 this._currentWorkspace = global.screen.get_active_workspace().index();
27 let workspaceManager = global.workspace_manager;
28
29 this._currentWorkspace = workspaceManager.get_active_workspace().index();
2830 this.statusLabel = new St.Label({ y_align: Clutter.ActorAlign.CENTER,
2931 text: this._labelText() });
3032
3436 this._workspaceSection = new PopupMenu.PopupMenuSection();
3537 this.menu.addMenuItem(this._workspaceSection);
3638
37 this._screenSignals = [];
38 this._screenSignals.push(global.screen.connect_after('workspace-added', this._createWorkspacesSection.bind(this)));
39 this._screenSignals.push(global.screen.connect_after('workspace-removed',
40 this._createWorkspacesSection.bind(this)));
41 this._screenSignals.push(global.screen.connect_after('workspace-switched',
42 this._updateIndicator.bind(this)));
39 this._workspaceManagerSignals = [];
40 this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-added',
41 this._createWorkspacesSection.bind(this)));
42 this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-removed',
43 this._createWorkspacesSection.bind(this)));
44 this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched',
45 this._updateIndicator.bind(this)));
4346
4447 this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
4548 this._createWorkspacesSection();
5457 }
5558
5659 destroy() {
57 for (let i = 0; i < this._screenSignals.length; i++)
58 global.screen.disconnect(this._screenSignals[i]);
60 for (let i = 0; i < this._workspaceManagerSignals.length; i++)
61 global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
5962
6063 if (this._settingsChangedId) {
6164 this._settings.disconnect(this._settingsChangedId);
6770
6871 _updateIndicator() {
6972 this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
70 this._currentWorkspace = global.screen.get_active_workspace().index();
73 this._currentWorkspace = global.workspace_manager.get_active_workspace().index();
7174 this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
7275
7376 this.statusLabel.set_text(this._labelText());
8285 }
8386
8487 _createWorkspacesSection() {
88 let workspaceManager = global.workspace_manager;
89
8590 this._workspaceSection.removeAll();
8691 this.workspacesItems = [];
87 this._currentWorkspace = global.screen.get_active_workspace().index();
92 this._currentWorkspace = workspaceManager.get_active_workspace().index();
8893
8994 let i = 0;
90 for(; i < global.screen.n_workspaces; i++) {
95 for(; i < workspaceManager.n_workspaces; i++) {
9196 this.workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
9297 this._workspaceSection.addMenuItem(this.workspacesItems[i]);
9398 this.workspacesItems[i].workspaceId = i;
105110 }
106111
107112 _activate(index) {
108 if(index >= 0 && index < global.screen.n_workspaces) {
109 let metaWorkspace = global.screen.get_workspace_by_index(index);
113 let workspaceManager = global.workspace_manager;
114
115 if(index >= 0 && index < workspaceManager.n_workspaces) {
116 let metaWorkspace = workspaceManager.get_workspace_by_index(index);
110117 metaWorkspace.activate(global.get_current_time());
111118 }
112119 }
122129 return;
123130 }
124131
125 let newIndex = global.screen.get_active_workspace().index() + diff;
132 let newIndex = global.workspace_manager.get_active_workspace().index() + diff;
126133 this._activate(newIndex);
127134 }
128135 };
00 project('gnome-shell-extensions',
1 version: '3.28.1',
1 version: '3.30.0',
22 meson_version: '>= 0.44.0',
33 license: 'GPL2+'
44 )
3333 uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
3434
3535 classic_extensions = [
36 'alternate-tab',
3736 'apps-menu',
3837 'places-menu',
3938 'launch-new-instance',
4241
4342 default_extensions = classic_extensions
4443 default_extensions += [
44 'alternate-tab',
4545 'drive-menu',
4646 'screenshot-window-sizer',
4747 'windowsNavigator',
00 data/gnome-classic.desktop.in
11 data/gnome-classic.session.desktop.in
2 data/org.gnome.shell.extensions.classic-overrides.gschema.xml
32 extensions/alternate-tab/prefs.js
43 extensions/apps-menu/extension.js
54 extensions/auto-move-windows/extension.js