Compare commits

..

14 Commits

Author SHA1 Message Date
Florian Müllner
c815e506dd Bump version to 47.3
Update NEWS.
2025-01-12 21:59:15 +01:00
Florian Müllner
176206a38c places-menu: Remove left-over modeline
This one slipped through commit 253ddb864 ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/370>
(cherry picked from commit 83c41bad30)
2025-01-12 20:53:59 +00:00
Bartłomiej Piotrowski
72b2534790 ci: Switch to GNOME GitLab mirror of ci-templates
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/368>
(cherry picked from commit 0f69d7663b)
2025-01-12 20:53:59 +00:00
Florian Müllner
28ac6906c2 ci: Adapt to updated release module template
The release module moved into production now. The process changed
slightly with regard to the testing period, so we will have to
adapt the existing job a bit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 5d8d3601b4)
2025-01-12 20:53:59 +00:00
Florian Müllner
e30f634d08 ci: Move LINT_LOG variable out of global section
It is only used by the eslint job, so better define it there.

While at it, make sure the variable is quoted as that's considered
good practice (even when safe to use unquoted as in this case).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit ea77b557e5)
2025-01-12 20:53:59 +00:00
Florian Müllner
aed90a3f6c ci: Use variable for meson build directory
This ensures that the value is consistent between jobs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 9f48149346)
2025-01-12 20:53:59 +00:00
Florian Müllner
7054010520 Revert "ci: Use meson introspect to generate artifact path"
The new release service that now moved into production expects
the tag to match the release version.

Instead of using the $VERSION-real pattern in case of error,
switch to a pre-push hook to hopefully prevent those errors
in the first place:

  https://gitlab.gnome.org/-/snippets/6710

This reverts commit 8c014a6b1d.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 0d1b279a64)
2025-01-12 20:53:59 +00:00
Florian Müllner
cc3e2842a8 ci: Bump js image
gnome-shell switched to F41 for its JS image, follow suit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/365>
(cherry picked from commit b30871d105)
2025-01-12 20:53:59 +00:00
Florian Müllner
f6d4e44ee4 workspace-indicator: Do not only exclude DESKTOP windows
There are other window types that should be excluded from workspace
previews, including more common ones like menus. Instead of checking
for a variety of window types, delegate the decision to mutter by
checking for the `skip-taskbar` property.

(The internal `skip-pager` property would be more apt in this case,
but as it only differs from `skip-taskbar` for X11 clients that
explicitly set one and not the other, it shouldn't matter in practice)

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/537
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/363>
(cherry picked from commit 77a11fd9cd)
2025-01-12 20:53:59 +00:00
Florian Müllner
bcf0be86af window-list: Untrack chrome while in overview
The window list is set up to track the monitor's fullscreen state.
Monitors are never considered in fullscreen while showing the overview,
so if shell's layout manager updates the fullscreen visibility after
we hid the bottom bar, it ends up being visible in the overview.

To avoid this, untrack the actor while the overview is visible.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/364>
(cherry picked from commit 981e8e42e2)
2025-01-12 20:53:59 +00:00
Florian Müllner
fb86b18cf1 window-list: Fix disconnecting window signals in context menu
Menus are not actors themselves, so they are not "destroyables" in
terms of automatic signal disconnection, with the result that we
currently leak window signals.

Fix this by using the menu's actor as tracked object, so the signals
are disconnected automatically when the actor is destroyed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/474
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/362>
(cherry picked from commit 4a841dfd49)
2025-01-12 20:53:59 +00:00
Florian Müllner
6400be4a6c places-menu: Update fake mount operation source
gnome-shell now checks for an associated drive to automatically
cancel the operation on disconnect, so fake the corresponding
method. While at it, drop the `get_icon()` method that hasn't
been used for quite a while now.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/508
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
(cherry picked from commit 8957f488dc)
2025-01-12 20:53:59 +00:00
Florian Müllner
b1f727fa34 places-menu: Catch errors during async operation
Uncaught errors in async functions don't provide a good stack, because
the unhandled promise rejection masks the error that triggered it.

While we already handle *expected* errors inside the function, make
sure we catch all errors to get useful stack information for unexpected
errors as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
(cherry picked from commit e0b68a319e)
2025-01-12 20:53:59 +00:00
Yi-Jyun Pan
97d0a0e514 Update Chinese (Taiwan) translation 2025-01-12 15:59:38 +00:00
8 changed files with 102 additions and 111 deletions

View File

@@ -3,10 +3,13 @@
# SPDX-License-Identifier: GPL-2.0-or-later
include:
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bc70242ffb8402243e934659ecc1a2d1c89eca2b/templates/ci-fairy.yml"
- project: 'Infrastructure/openshift-images/gnome-release-service'
file: '/ci-templates/release-module.yml'
- remote: 'https://gitlab.gnome.org/Infrastructure/freedesktop-ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: "https://gitlab.gnome.org/Infrastructure/freedesktop-ci-templates/-/raw/bc70242ffb8402243e934659ecc1a2d1c89eca2b/templates/ci-fairy.yml"
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
job-stage: deploy
dist-job-name: fedora-dist-tarball
tarball-artifact-path: "$TARBALL_ARTIFACT_PATH"
stages:
- pre_review
@@ -16,7 +19,7 @@ stages:
- deploy
default:
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/40:2024-07-11.0
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/41:2024-10-18.0
# Cancel jobs if newer commits are pushed to the branch
interruptible: true
# Auto-retry jobs in case of infra failures
@@ -30,7 +33,8 @@ default:
variables:
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
LINT_LOG: "eslint-report.xml"
MESON_BUILD_DIR: build
TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
workflow:
rules:
@@ -108,14 +112,16 @@ js_check:
eslint:
stage: review
<<: *prereview_req
variables:
LINT_LOG: "eslint-report.xml"
script:
- export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout
- ./.gitlab-ci/run-eslint --output-file "$LINT_LOG" --format junit --stdout
artifacts:
paths:
- ${LINT_LOG}
- "$LINT_LOG"
reports:
junit: ${LINT_LOG}
junit: "$LINT_LOG"
potfile_js_check:
stage: review
@@ -141,28 +147,13 @@ fedora-build:
stage: build
<<: *prereview_req
script:
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C build
- meson test -C build
- meson install -C build
- meson setup "$MESON_BUILD_DIR" --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C "$MESON_BUILD_DIR"
- meson test -C "$MESON_BUILD_DIR"
- meson install -C "$MESON_BUILD_DIR"
artifacts:
paths:
- build
fedora-distinfo:
stage: deploy
needs:
- fedora-build
script:
- .gitlab-ci/export-artifact-path build > dist.env
artifacts:
reports:
dotenv: dist.env
paths:
- build
- dist.env
rules:
- if: '$CI_COMMIT_TAG'
- "$MESON_BUILD_DIR"
fedora-dist:
stage: deploy
@@ -171,7 +162,7 @@ fedora-dist:
variables:
GIT_SUBMODULE_STRATEGY: normal
script:
- meson dist -C build
- meson dist -C "$MESON_BUILD_DIR"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
@@ -180,21 +171,11 @@ fedora-dist:
fedora-dist-tarball:
extends: fedora-dist
needs:
- fedora-distinfo
artifacts:
expose_as: 'Get tarball here'
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- $TARBALL_ARTIFACT_PATH
reports:
dotenv: dist.env
rules:
- if: '$CI_COMMIT_TAG'
release-module:
stage: deploy
needs:
- fedora-dist-tarball
extends: .release-module
- "$TARBALL_ARTIFACT_PATH"
rules:
- if: '$CI_COMMIT_TAG'

View File

@@ -1,21 +0,0 @@
#!/usr/bin/gjs -m
// SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
import Gio from 'gi://Gio';
import {programArgs, programInvocationName, exit} from 'system';
const [buildDir] = programArgs;
if (!buildDir) {
printerr(`usage: ${programInvocationName} <build-dir>`);
exit(1);
}
const subprocess = Gio.Subprocess.new(
['meson', 'introspect', '--projectinfo', buildDir],
Gio.SubprocessFlags.STDOUT_PIPE);
const [, out] = subprocess.communicate_utf8(null, null);
const {descriptive_name, version} = JSON.parse(out);
print(`TARBALL_ARTIFACT_PATH=${buildDir}/meson-dist/${descriptive_name}-${version}.tar.xz`);

14
NEWS
View File

@@ -1,3 +1,17 @@
47.3
====
* places-menu: Fix opening drives with mount operations [Florian; !361]
* window-list: Fix hiding when entering overview with gestures [Florian; !364]
* workspace-indicator: Only show previews of regular windows [Florian; !363]
* Misc. bug fixes and cleanups [Florian, Bartłomiej; !362, !365, !367,
!368, !370]
Contributors:
Florian Müllner, Bartłomiej Piotrowski
Translators:
Yi-Jyun Pan [zh_TW]
47.2
====
* places-menu: Fix a11y labelling [Florian; #542]

View File

@@ -6,7 +6,6 @@
//
// SPDX-License-Identifier: GPL-2.0-or-later
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import Shell from 'gi://Shell';
@@ -61,15 +60,15 @@ class PlaceInfo extends EventEmitter {
return;
}
let source = {
get_icon: () => this.icon,
const source = {
get_drive: () => null,
};
let op = new ShellMountOperation.ShellMountOperation(source);
try {
await this.file.mount_enclosing_volume(0, op.mountOp, null);
if (tryMount)
this._ensureMountAndLaunch(context, false);
this._ensureMountAndLaunch(context, false).catch(logError);
} catch (e) {
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
Main.notifyError(_('Failed to mount volume for “%s”').format(this.name), e.message);
@@ -81,7 +80,7 @@ class PlaceInfo extends EventEmitter {
launch(timestamp) {
let launchContext = global.create_app_launch_context(timestamp, -1);
this._ensureMountAndLaunch(launchContext, true);
this._ensureMountAndLaunch(launchContext, true).catch(logError);
}
getIcon() {

View File

@@ -77,7 +77,7 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
'notify::minimized', this._updateMinimizeItem.bind(this),
'notify::maximized-horizontally', this._updateMaximizeItem.bind(this),
'notify::maximized-vertically', this._updateMaximizeItem.bind(this),
this);
this.actor);
this._updateMinimizeItem();
this._updateMaximizeItem();
@@ -772,10 +772,11 @@ class WindowList extends St.Widget {
() => this._onWorkspaceMenuSet(), this);
this._onWorkspaceMenuSet();
Main.layoutManager.addChrome(this, {
const chromeOptions = {
affectsStruts: true,
trackFullscreen: true,
});
};
Main.layoutManager.addChrome(this, chromeOptions);
Main.uiGroup.set_child_above_sibling(this, Main.layoutManager.panelBox);
Main.ctrlAltTabManager.addGroup(this, _('Window List'), 'start-here-symbolic');
@@ -812,10 +813,12 @@ class WindowList extends St.Widget {
Main.overview.connectObject(
'showing', () => {
Main.layoutManager.untrackChrome(this);
this.hide();
this._updateKeyboardAnchor();
},
'hidden', () => {
Main.layoutManager.trackChrome(this);
this.visible = !this._monitor.inFullscreen;
this._updateKeyboardAnchor();
}, this);

View File

@@ -43,7 +43,7 @@ class WindowPreview extends St.Button {
'size-changed', () => this._checkRelayout(),
'position-changed', () => this._checkRelayout(),
'notify::minimized', this._updateVisible.bind(this),
'notify::window-type', this._updateVisible.bind(this),
'notify::skip-taskbar', this._updateVisible.bind(this),
this);
this._updateVisible();
@@ -72,7 +72,7 @@ class WindowPreview extends St.Button {
}
_updateVisible() {
this.visible = this._window.window_type !== Meta.WindowType.DESKTOP &&
this.visible = !this._window.skip_taskbar &&
this._window.showing_on_its_workspace();
}
}

View File

@@ -4,7 +4,7 @@
project(
'gnome-shell-extensions',
version: '47.2',
version: '47.3',
meson_version: '>= 1.1.0',
license: 'GPL-2.0-or-later',
)

View File

@@ -9,9 +9,9 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2024-04-29 14:28+0000\n"
"PO-Revision-Date: 2024-07-24 10:25+0000\n"
"Last-Translator: Chao-Hsiung Liao <pesder@mail.edu.tw>\n"
"POT-Creation-Date: 2024-11-25 15:07+0000\n"
"PO-Revision-Date: 2025-01-12 23:57+0800\n"
"Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
"Language-Team: Chinese (Traditional) <http://darkbear.mercusysddns.com/"
"projects/gnome-45/gnome-shell-extensions-po-ui-gnome-46-zh_tw/zh_Hant/>\n"
"Language: zh_TW\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.6.2\n"
"X-Generator: Poedit 3.5\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
@@ -38,11 +38,11 @@ msgstr "GNOME Classic 採行 Wayland"
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic 採行 Xorg"
#: extensions/apps-menu/extension.js:126
#: extensions/apps-menu/extension.js:125
msgid "Favorites"
msgstr "喜愛"
#: extensions/apps-menu/extension.js:397
#: extensions/apps-menu/extension.js:399
msgid "Apps"
msgstr "程式"
@@ -58,11 +58,11 @@ msgstr ""
"字串的列表,每個都包含一個應用程式 id (桌面檔名稱),後面接著半形分號 \";\" 與"
"工作區號碼"
#: extensions/auto-move-windows/prefs.js:159
#: extensions/auto-move-windows/prefs.js:156
msgid "Workspace Rules"
msgstr "工作區規則"
#: extensions/auto-move-windows/prefs.js:314
#: extensions/auto-move-windows/prefs.js:311
msgid "Add Rule"
msgstr "加入規則"
@@ -107,8 +107,8 @@ msgstr ""
"如果為真,在對映的縮圖頂端放置視窗說明標題,凌駕 Shell 將它放置在底部的預設"
"值。變更這個設定值需要重新啟動 Shell 來套用效果。"
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:75
#: extensions/places-menu/extension.js:78
msgid "Places"
msgstr "位置"
@@ -223,47 +223,47 @@ msgstr "主題名稱"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "主題的名稱,要從 ~/.themes/name/gnome-shell 載入"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:70
msgid "Close"
msgstr "關閉"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:97
msgid "Unminimize"
msgstr "取消最小化"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:97
msgid "Minimize"
msgstr "最小化"
#: extensions/window-list/extension.js:106
#: extensions/window-list/extension.js:104
msgid "Unmaximize"
msgstr "取消最大化"
#: extensions/window-list/extension.js:106
#: extensions/window-list/extension.js:104
msgid "Maximize"
msgstr "最大化"
#: extensions/window-list/extension.js:471
#: extensions/window-list/extension.js:485
msgid "Minimize all"
msgstr "全部最小化"
#: extensions/window-list/extension.js:477
#: extensions/window-list/extension.js:491
msgid "Unminimize all"
msgstr "全部取消最小化"
#: extensions/window-list/extension.js:483
#: extensions/window-list/extension.js:497
msgid "Maximize all"
msgstr "全部最大化"
#: extensions/window-list/extension.js:491
#: extensions/window-list/extension.js:505
msgid "Unmaximize all"
msgstr "全部取消最大化"
#: extensions/window-list/extension.js:499
#: extensions/window-list/extension.js:513
msgid "Close all"
msgstr "全部關閉"
#: extensions/window-list/extension.js:773
#: extensions/window-list/extension.js:780
msgid "Window List"
msgstr "視窗列表"
@@ -279,7 +279,7 @@ msgstr ""
"決定在視窗列表中何時群組視窗。可能的數值有「never」、「auto」、「always」。"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
#: extensions/window-list/prefs.js:79
#: extensions/window-list/prefs.js:69
msgid "Show windows from all workspaces"
msgstr "顯示所有工作區的視窗"
@@ -297,44 +297,59 @@ msgid ""
"primary one."
msgstr "是否在所有連接的螢幕顯示視窗列表或是只出現在主要螢幕上。"
#: extensions/window-list/prefs.js:35
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
msgid "Show workspace previews in window list"
msgstr "在視窗清單顯示工作區預覽"
#: extensions/window-list/prefs.js:36
msgid "Window Grouping"
msgstr "視窗群組"
#: extensions/window-list/prefs.js:40
#: extensions/window-list/prefs.js:41
msgid "Never group windows"
msgstr "永不群組視窗"
#: extensions/window-list/prefs.js:41
#: extensions/window-list/prefs.js:42
msgid "Group windows when space is limited"
msgstr "當空間受限時群組視窗"
#: extensions/window-list/prefs.js:42
#: extensions/window-list/prefs.js:43
msgid "Always group windows"
msgstr "永遠群組視窗"
#: extensions/window-list/prefs.js:66
#: extensions/window-list/prefs.js:63
msgid "Show on all monitors"
msgstr "顯示於所有螢幕"
#: extensions/window-list/workspaceIndicator.js:255
#: extensions/workspace-indicator/extension.js:261
msgid "Workspace Indicator"
msgstr "工作區指示器"
#: extensions/window-list/prefs.js:75
msgid "Show workspace previews"
msgstr "顯示工作區預覽"
#: extensions/workspace-indicator/prefs.js:69
#: extensions/workspace-indicator/prefs.js:29
msgid "Show Previews In Top Bar"
msgstr "在頂端列顯示預覽"
#: extensions/workspace-indicator/prefs.js:87
#, javascript-format
msgid "Workspace %d"
msgstr "工作區 %d"
#: extensions/workspace-indicator/prefs.js:136
#: extensions/workspace-indicator/prefs.js:154
msgid "Workspace Names"
msgstr "工作區名稱"
#: extensions/workspace-indicator/prefs.js:262
#: extensions/workspace-indicator/prefs.js:280
msgid "Add Workspace"
msgstr "新增工作區"
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
msgid "Show workspace previews in top bar"
msgstr "在頂端列顯示工作區預覽"
#: extensions/workspace-indicator/workspaceIndicator.js:430
msgid "Workspace Indicator"
msgstr "工作區指示器"
#~ msgid "Applications"
#~ msgstr "應用程式"
@@ -468,8 +483,8 @@ msgstr "新增工作區"
#~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
#~ "only' (shows only the application icon) or 'both'."
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' "
#~ "(shows only the application icon) or 'both'."
#~ msgstr ""
#~ "設定視窗在切換器中顯示的方式。有效的選項為「thumbnail-only」(顯示視窗的縮"
#~ "圖)、「app-icon-only」(僅顯示應用程式圖示)或「both」(兩者)"