Compare commits

..

11 Commits

Author SHA1 Message Date
Florian Müllner 2dd9ae80ca Bump version to 48.3
Update NEWS.
2025-06-29 12:56:57 +02:00
Florian Müllner 00b30c1a47 cleanup: Remove unused eslint-disable directives
The 'camelcase' rule only applies to variables and properties,
not to function names are getter/setter.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/413>
(cherry picked from commit 9e11ec9940)
2025-06-29 01:52:59 +02:00
Florian Müllner 5f68dd5645 cleanup: Remove unused catch bindings
Optional catch bindings have been supported for quite a while now,
so we can treat unused error bindings in catch statements like
any other unused variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/413>
(cherry picked from commit 3a76b9eec4)
2025-06-29 01:52:53 +02:00
Florian Müllner 752ed054fe workspace-indicator: Remove left-over variable
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
(cherry picked from commit 53ba3ce620)
2025-06-29 01:52:39 +02:00
Florian Müllner 88c420f8f2 lint: Require dangling comma in multi-line imports
This keeps the config in line with gjs, which added the option
in gjs@f7d3b5d4c8.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/411>
(cherry picked from commit 301017904b)
2025-06-29 01:52:34 +02:00
Florian Müllner 0e31708227 window-list: Only remove fullscreen tracking in overview
Since commit 981e8e42e2, we untrack chrome in the overview to avoid
fullscreen tracking interfering with hiding the window list in the
overview.

However this also means that we no longer contribute to the struts
while in the overview, which can lead to unwanted window resizes
around the transition.

So instead of fully untracking the actor, retrack without fullscreen
tracking.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/409>
(cherry picked from commit 0ad959de1e)
2025-06-29 01:52:20 +02:00
Florian Müllner 5ec6daa8e5 Revert "window-list: Fix initial visibility"
Since we no longer track fullscreen state in the overview,
the workaround is no longer necessary.

This reverts commit 6ee4205f1e.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/409>
(cherry picked from commit a3ff3c79b2)
2025-06-29 01:51:57 +02:00
Florian Müllner f1e2121b5e Bump version to 48.2
Update NEWS.
2025-05-24 19:10:03 +02:00
Neal Gompa 27c86490c2 build: Do not install anything in xsessions when X11 is disabled
Fixes: b05eb4eb6d ("build: Allow disabling the X11 session")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/400>
(cherry picked from commit 2552c92fe1)
2025-05-23 19:09:47 +02:00
Neal Gompa 64900f4a2e build: Allow disabling the X11 session
This is consistent with gnome-session and the rest of the GNOME
session stack.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/396>
(cherry picked from commit b05eb4eb6d)
2025-05-23 19:09:32 +02:00
Daniel Buch Hansen bf84e5d58f windowsNavigator: Adjust to get_key_focus() changes in Clutter
Clutter.Stage.get_key_focus() now always returns the value of
the Clutter.Stage.keyFocus property, whereas previously it
would return the stage itself when no explicit focus was set.

Adjust the code accordingly.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/561
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/395>
(cherry picked from commit e06b1e8236)
2025-05-23 19:09:21 +02:00
12 changed files with 66 additions and 54 deletions
+11 -9
View File
@@ -1,15 +1,17 @@
49.alpha.0 48.3
========== ====
* windowsNavigator: Fix handling keyboard shortcuts [Daniel; !395] * Misc. bug fixes and cleanups [Florian; !409, !411, !405, !413]
* build: Allow disabling the X11 session [Neal; !396, !400]
* Disable X11 session by default [Jordan; !399]
* Misc. bug fixes and cleanups [Florian; !398, !406]
Contributors: Contributors:
Daniel Buch Hansen, Neal Gompa, Florian Müllner, Jordan Petridis Florian Müllner
Translators: 48.2
Emilio Sepúlveda [ia] ====
* windowsNavigator: Fix handling keyboard shortcuts [Daniel; !395]
* build: Allow disabling the X11 session [Neal; !396, !400]
Contributors:
Daniel Buch Hansen, Neal Gompa
48.1 48.1
==== ====
+1 -1
View File
@@ -23,7 +23,7 @@ foreach name : session_desktops
session_instdir = wlsessiondir session_instdir = wlsessiondir
else else
# FIXME: The same target can not be copied into two directories. # FIXME: The same target can not be copied into two directories.
# There is a workaround in build-aux/session-post-install.py until proper # There is a workaround in meson/session-post-install.py until proper
# solution arises: # solution arises:
# https://github.com/mesonbuild/meson/issues/2416 # https://github.com/mesonbuild/meson/issues/2416
session_instdir = wlsessiondir session_instdir = wlsessiondir
+1 -1
View File
@@ -488,7 +488,7 @@ class ApplicationsButton extends PanelMenu.Button {
let id; let id;
try { try {
id = entry.get_desktop_file_id(); // catch non-UTF8 filenames id = entry.get_desktop_file_id(); // catch non-UTF8 filenames
} catch (e) { } catch {
continue; continue;
} }
let app = appSys.lookup_app(id); let app = appSys.lookup_app(id);
@@ -70,8 +70,8 @@ export default class ScreenshotWindowSizerExtension extends Extension {
const backwards = binding.is_reversed(); const backwards = binding.is_reversed();
// Unmaximize first // Unmaximize first
if (window.is_maximized()) if (window.get_maximized() !== 0)
window.unmaximize(); window.unmaximize(Meta.MaximizeFlags.BOTH);
let workArea = window.get_work_area_current_monitor(); let workArea = window.get_work_area_current_monitor();
let outerRect = window.get_frame_rect(); let outerRect = window.get_frame_rect();
+28 -17
View File
@@ -85,10 +85,10 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
this._maximizeItem = new PopupMenu.PopupMenuItem(''); this._maximizeItem = new PopupMenu.PopupMenuItem('');
this._maximizeItem.connect('activate', () => { this._maximizeItem.connect('activate', () => {
if (this._metaWindow.is_maximized()) if (this._metaWindow.get_maximized() === Meta.MaximizeFlags.BOTH)
this._metaWindow.unmaximize(); this._metaWindow.unmaximize(Meta.MaximizeFlags.BOTH);
else else
this._metaWindow.maximize(); this._metaWindow.maximize(Meta.MaximizeFlags.BOTH);
}); });
this.addMenuItem(this._maximizeItem); this.addMenuItem(this._maximizeItem);
@@ -123,7 +123,9 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
} }
_updateMaximizeItem() { _updateMaximizeItem() {
this._maximizeItem.label.text = this._metaWindow.is_maximized() let maximized = this._metaWindow.maximized_vertically &&
this._metaWindow.maximized_horizontally;
this._maximizeItem.label.text = maximized
? _('Unmaximize') : _('Maximize'); ? _('Unmaximize') : _('Maximize');
} }
} }
@@ -430,12 +432,10 @@ class BaseButton extends DashItemContainer {
return this._button.has_style_class_name('focused'); return this._button.has_style_class_name('focused');
} }
// eslint-disable-next-line camelcase
get ignore_workspace() { get ignore_workspace() {
return this._ignoreWorkspace; return this._ignoreWorkspace;
} }
// eslint-disable-next-line camelcase
set ignore_workspace(ignore) { set ignore_workspace(ignore) {
if (this._ignoreWorkspace === ignore) if (this._ignoreWorkspace === ignore)
return; return;
@@ -731,7 +731,7 @@ class AppContextMenu extends PopupMenu.PopupMenu {
this._maximizeItem = new PopupMenu.PopupMenuItem(_('Maximize all')); this._maximizeItem = new PopupMenu.PopupMenuItem(_('Maximize all'));
this._maximizeItem.connect('activate', () => { this._maximizeItem.connect('activate', () => {
this._appButton.getWindowList().forEach(w => { this._appButton.getWindowList().forEach(w => {
w.maximize(); w.maximize(Meta.MaximizeFlags.BOTH);
}); });
}); });
this.addMenuItem(this._maximizeItem); this.addMenuItem(this._maximizeItem);
@@ -739,7 +739,7 @@ class AppContextMenu extends PopupMenu.PopupMenu {
this._unmaximizeItem = new PopupMenu.PopupMenuItem(_('Unmaximize all')); this._unmaximizeItem = new PopupMenu.PopupMenuItem(_('Unmaximize all'));
this._unmaximizeItem.connect('activate', () => { this._unmaximizeItem.connect('activate', () => {
this._appButton.getWindowList().forEach(w => { this._appButton.getWindowList().forEach(w => {
w.unmaximize(); w.unmaximize(Meta.MaximizeFlags.BOTH);
}); });
}); });
this.addMenuItem(this._unmaximizeItem); this.addMenuItem(this._unmaximizeItem);
@@ -758,10 +758,10 @@ class AppContextMenu extends PopupMenu.PopupMenu {
this._minimizeItem.visible = windows.some(w => !w.minimized); this._minimizeItem.visible = windows.some(w => !w.minimized);
this._unminimizeItem.visible = windows.some(w => w.minimized); this._unminimizeItem.visible = windows.some(w => w.minimized);
this._maximizeItem.visible = windows.some(w => { this._maximizeItem.visible = windows.some(w => {
return !w.is_maximized(); return w.get_maximized() !== Meta.MaximizeFlags.BOTH;
}); });
this._unmaximizeItem.visible = windows.some(w => { this._unmaximizeItem.visible = windows.some(w => {
return w.is_maximized(); return w.get_maximized() === Meta.MaximizeFlags.BOTH;
}); });
super.open(animate); super.open(animate);
@@ -981,11 +981,20 @@ class WindowList extends St.Widget {
() => this._onWorkspaceMenuSet(), this); () => this._onWorkspaceMenuSet(), this);
this._onWorkspaceMenuSet(); this._onWorkspaceMenuSet();
const chromeOptions = { const inOverview = Main.overview.visible ||
(Main.layoutManager._startingUp && Main.sessionMode.hasOverview);
const overviewChromeOptions = {
affectsStruts: true, affectsStruts: true,
};
const chromeOptions = {
...overviewChromeOptions,
trackFullscreen: true, trackFullscreen: true,
}; };
Main.layoutManager.addChrome(this, chromeOptions); Main.layoutManager.addChrome(this, inOverview
? overviewChromeOptions
: chromeOptions);
Main.uiGroup.set_child_above_sibling(this, Main.layoutManager.panelBox); Main.uiGroup.set_child_above_sibling(this, Main.layoutManager.panelBox);
Main.ctrlAltTabManager.addGroup(this, _('Window List'), 'start-here-symbolic'); Main.ctrlAltTabManager.addGroup(this, _('Window List'), 'start-here-symbolic');
@@ -1022,20 +1031,17 @@ class WindowList extends St.Widget {
Main.overview.connectObject( Main.overview.connectObject(
'showing', () => { 'showing', () => {
Main.layoutManager.untrackChrome(this); this._retrackChrome(overviewChromeOptions);
this.hide(); this.hide();
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}, },
'hidden', () => { 'hidden', () => {
Main.layoutManager.trackChrome(this, chromeOptions); this._retrackChrome(chromeOptions);
this.visible = !this._monitor.inFullscreen; this.visible = !this._monitor.inFullscreen;
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}, this); }, this);
global.display.connectObject('in-fullscreen-changed', () => { global.display.connectObject('in-fullscreen-changed', () => {
// Work-around for initial change from unknown to !fullscreen
if (Main.overview.visible)
this.hide();
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}, this); }, this);
@@ -1101,6 +1107,11 @@ class WindowList extends St.Widget {
this._monitor.y + this._monitor.height - this.height); this._monitor.y + this._monitor.height - this.height);
} }
_retrackChrome(options) {
Main.layoutManager.untrackChrome(this);
Main.layoutManager.trackChrome(this, options);
}
_updateWorkspaceIndicatorVisibility() { _updateWorkspaceIndicatorVisibility() {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
let hasWorkspaces = this._mutterSettings.get_boolean('dynamic-workspaces') || let hasWorkspaces = this._mutterSettings.get_boolean('dynamic-workspaces') ||
@@ -459,8 +459,6 @@ export class WorkspaceIndicator extends PanelMenu.Button {
this._thumbnails = new WorkspacePreviews(); this._thumbnails = new WorkspacePreviews();
container.add_child(this._thumbnails); container.add_child(this._thumbnails);
this._workspacesItems = [];
workspaceManager.connectObject( workspaceManager.connectObject(
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER, 'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
this); this);
+1
View File
@@ -30,6 +30,7 @@ rules:
- error - error
- arrays: always-multiline - arrays: always-multiline
objects: always-multiline objects: always-multiline
imports: always-multiline
functions: never functions: never
comma-spacing: comma-spacing:
- error - error
+3 -3
View File
@@ -4,7 +4,7 @@
project( project(
'gnome-shell-extensions', 'gnome-shell-extensions',
version: '49.alpha.0', version: '48.3',
meson_version: '>= 1.1.0', meson_version: '>= 1.1.0',
license: 'GPL-2.0-or-later', license: 'GPL-2.0-or-later',
) )
@@ -90,7 +90,7 @@ if classic_mode_enabled
subdir('data') subdir('data')
if have_x11 if have_x11
meson.add_install_script( meson.add_install_script(
'build-aux/session-post-install.py', 'meson/session-post-install.py',
join_paths(get_option('prefix'), datadir), join_paths(get_option('prefix'), datadir),
) )
endif endif
@@ -101,7 +101,7 @@ subdir('po')
gnome.post_install(glib_compile_schemas: true) gnome.post_install(glib_compile_schemas: true)
meson.add_dist_script('build-aux/check-version.py', meson.project_version(), 'NEWS') meson.add_dist_script('meson/check-version.py', meson.project_version(), 'NEWS')
summary_options = { summary_options = {
'extensions': enabled_extensions, 'extensions': enabled_extensions,
+1 -1
View File
@@ -23,6 +23,6 @@ option('classic_mode',
option('x11', option('x11',
type: 'boolean', type: 'boolean',
value: false, value: true,
description: 'Enable X11 session support.' description: 'Enable X11 session support.'
) )
+18 -18
View File
@@ -9,10 +9,10 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions main\n" "Project-Id-Version: gnome-shell-extensions main\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2025-05-15 14:23+0000\n" "POT-Creation-Date: 2025-02-13 00:15+0000\n"
"PO-Revision-Date: 2025-05-26 20:20-0400\n" "PO-Revision-Date: 2025-02-14 10:36-0300\n"
"Last-Translator: Emilio Sepúlveda <emism.translations@gmail.com>\n" "Last-Translator: Emilio Sepúlveda <emism.translations@gmail.com>\n"
"Language-Team: Interlingua <softinterlingua@gmail.com>\n" "Language-Team: Interlingua\n"
"Language: ia\n" "Language: ia\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,7 +23,7 @@ msgstr ""
"X-DL-Domain: po\n" "X-DL-Domain: po\n"
"X-DL-State: Translating\n" "X-DL-State: Translating\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Gtranslator 48.0\n" "X-Generator: Gtranslator 47.1\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -42,11 +42,11 @@ msgstr "GNOME Classic sur Wayland"
msgid "GNOME Classic on Xorg" msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic sur Xorg" msgstr "GNOME Classic sur Xorg"
#: extensions/apps-menu/extension.js:118 #: extensions/apps-menu/extension.js:125
msgid "Favorites" msgid "Favorites"
msgstr "Favoritos" msgstr "Favoritos"
#: extensions/apps-menu/extension.js:392 #: extensions/apps-menu/extension.js:399
msgid "Apps" msgid "Apps"
msgstr "Applicationes" msgstr "Applicationes"
@@ -172,7 +172,7 @@ msgstr "Statos del intercambio"
#: extensions/system-monitor/extension.js:336 #: extensions/system-monitor/extension.js:336
msgid "Upload stats" msgid "Upload stats"
msgstr "Statisticas de incarga" msgstr "Statisticas de carga"
#: extensions/system-monitor/extension.js:350 #: extensions/system-monitor/extension.js:350
msgid "Download stats" msgid "Download stats"
@@ -200,7 +200,7 @@ msgstr "Intercambio"
#: extensions/system-monitor/extension.js:420 #: extensions/system-monitor/extension.js:420
msgid "Upload" msgid "Upload"
msgstr "Incarga" msgstr "Carga"
#: extensions/system-monitor/extension.js:422 #: extensions/system-monitor/extension.js:422
msgid "Download" msgid "Download"
@@ -224,7 +224,7 @@ msgstr "Monstrar usage del intercambio"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24 #: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
msgid "Show upload" msgid "Show upload"
msgstr "Monstrar incarga" msgstr "Monstrar carga"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28 #: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
msgid "Show download" msgid "Show download"
@@ -236,7 +236,7 @@ msgstr "Nomine de thema"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12 #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Le nomine del thema a cargar ab ~/.themes/nomine/gnome-shell" msgstr "Le nomine del thema a cargar desde ~/.themes/nomine/gnome-shell"
#: extensions/window-list/extension.js:95 #: extensions/window-list/extension.js:95
msgid "Close" msgid "Close"
@@ -250,35 +250,35 @@ msgstr "Disminimisar"
msgid "Minimize" msgid "Minimize"
msgstr "Minimisar" msgstr "Minimisar"
#: extensions/window-list/extension.js:127 #: extensions/window-list/extension.js:129
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Dismaximisar" msgstr "Dismaximisar"
#: extensions/window-list/extension.js:127 #: extensions/window-list/extension.js:129
msgid "Maximize" msgid "Maximize"
msgstr "Maximisar" msgstr "Maximisar"
#: extensions/window-list/extension.js:719 #: extensions/window-list/extension.js:721
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimisar toto" msgstr "Minimisar toto"
#: extensions/window-list/extension.js:725 #: extensions/window-list/extension.js:727
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Disminimisar toto" msgstr "Disminimisar toto"
#: extensions/window-list/extension.js:731 #: extensions/window-list/extension.js:733
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximisar toto" msgstr "Maximisar toto"
#: extensions/window-list/extension.js:739 #: extensions/window-list/extension.js:741
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Dismaximisar toto" msgstr "Dismaximisar toto"
#: extensions/window-list/extension.js:747 #: extensions/window-list/extension.js:749
msgid "Close all" msgid "Close all"
msgstr "Clauder toto" msgstr "Clauder toto"
#: extensions/window-list/extension.js:990 extensions/window-list/prefs.js:23 #: extensions/window-list/extension.js:992 extensions/window-list/prefs.js:23
msgid "Window List" msgid "Window List"
msgstr "Lista de fenestras" msgstr "Lista de fenestras"