parent
284528cb97
commit
221d74f481
@ -0,0 +1,46 @@
|
|||||||
|
From 1cad6c8d47fb9f0b17a2c47f93e5f923d1cb32c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Thu, 7 Mar 2024 18:22:32 +0100
|
||||||
|
Subject: [PATCH] windowPreview: Override with window icon if available
|
||||||
|
|
||||||
|
---
|
||||||
|
js/ui/windowPreview.js | 16 ++++++++++++++++
|
||||||
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/js/ui/windowPreview.js b/js/ui/windowPreview.js
|
||||||
|
index e67ec9ec0f..db325258b4 100644
|
||||||
|
--- a/js/ui/windowPreview.js
|
||||||
|
+++ b/js/ui/windowPreview.js
|
||||||
|
@@ -123,6 +123,12 @@ var WindowPreview = GObject.registerClass({
|
||||||
|
const tracker = Shell.WindowTracker.get_default();
|
||||||
|
const app = tracker.get_window_app(this.metaWindow);
|
||||||
|
this._icon = app.create_icon_texture(ICON_SIZE);
|
||||||
|
+ // Override with window icon if available
|
||||||
|
+ if (this._hasWindowIcon()) {
|
||||||
|
+ const textureCache = St.TextureCache.get_default();
|
||||||
|
+ this._icon.gicon = textureCache.bind_cairo_surface_property(
|
||||||
|
+ this.metaWindow, 'icon');
|
||||||
|
+ }
|
||||||
|
this._icon.add_style_class_name('icon-dropshadow');
|
||||||
|
this._icon.set({
|
||||||
|
reactive: true,
|
||||||
|
@@ -226,6 +232,16 @@ var WindowPreview = GObject.registerClass({
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
+ _hasWindowIcon() {
|
||||||
|
+ // HACK: GI cannot handle CairoSurface, so this
|
||||||
|
+ // will throw if the icon property is non-null
|
||||||
|
+ try {
|
||||||
|
+ return this.metaWindow.icon !== null;
|
||||||
|
+ } catch (e) {
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
_updateIconScale() {
|
||||||
|
const { ControlsState } = OverviewControls;
|
||||||
|
const { currentState, initialState, finalState } =
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
@ -0,0 +1,107 @@
|
|||||||
|
From 3a89e8597f6f3e7fa468bae93768f8253a3141e7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Thu, 6 Oct 2022 14:30:20 +0200
|
||||||
|
Subject: [PATCH 1/2] inhibitShortcutsDialog: Don't override resource
|
||||||
|
|
||||||
|
PermissionStore's Set() method takes a complete permission
|
||||||
|
table, so when setting an app's permission, we are implicitly
|
||||||
|
removing all previously set entries for other apps.
|
||||||
|
|
||||||
|
Switch to the SetPermission() method which sets the permission
|
||||||
|
for a single app.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5937
|
||||||
|
|
||||||
|
Part-of:
|
||||||
|
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2504>
|
||||||
|
---
|
||||||
|
...g.freedesktop.impl.portal.PermissionStore.xml | 7 +++++++
|
||||||
|
js/ui/inhibitShortcutsDialog.js | 16 ++++++----------
|
||||||
|
2 files changed, 13 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml b/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml
|
||||||
|
index 75fbc468a8..55d3fc30cb 100644
|
||||||
|
--- a/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml
|
||||||
|
+++ b/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml
|
||||||
|
@@ -13,6 +13,13 @@
|
||||||
|
<arg name="app_permissions" type="a{sas}" direction="in"/>
|
||||||
|
<arg name="data" type="v" direction="in"/>
|
||||||
|
</method>
|
||||||
|
+ <method name="SetPermission">
|
||||||
|
+ <arg name='table' type='s' direction='in'/>
|
||||||
|
+ <arg name='create' type='b' direction='in'/>
|
||||||
|
+ <arg name='id' type='s' direction='in'/>
|
||||||
|
+ <arg name='app' type='s' direction='in'/>
|
||||||
|
+ <arg name='permissions' type='as' direction='in'/>
|
||||||
|
+ </method>
|
||||||
|
<signal name="Changed">
|
||||||
|
<arg name="table" type="s" direction="out"/>
|
||||||
|
<arg name="id" type="s" direction="out"/>
|
||||||
|
diff --git a/js/ui/inhibitShortcutsDialog.js b/js/ui/inhibitShortcutsDialog.js
|
||||||
|
index c59544eaf9..8ef5861261 100644
|
||||||
|
--- a/js/ui/inhibitShortcutsDialog.js
|
||||||
|
+++ b/js/ui/inhibitShortcutsDialog.js
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
/* exported InhibitShortcutsDialog */
|
||||||
|
-const { Clutter, Gio, GLib, GObject, Gtk, Meta, Pango, Shell, St } = imports.gi;
|
||||||
|
+const {Clutter, Gio, GObject, Gtk, Meta, Pango, Shell, St} = imports.gi;
|
||||||
|
|
||||||
|
const Dialog = imports.ui.dialog;
|
||||||
|
const ModalDialog = imports.ui.modalDialog;
|
||||||
|
@@ -57,15 +57,11 @@ var InhibitShortcutsDialog = GObject.registerClass({
|
||||||
|
if (!this._shouldUsePermStore() || this._permStore == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- let permissions = {};
|
||||||
|
- permissions[this._app.get_id()] = [grant];
|
||||||
|
- let data = GLib.Variant.new('av', {});
|
||||||
|
-
|
||||||
|
- this._permStore.SetRemote(APP_PERMISSIONS_TABLE,
|
||||||
|
- true,
|
||||||
|
- APP_PERMISSIONS_ID,
|
||||||
|
- permissions,
|
||||||
|
- data,
|
||||||
|
+ this._permStore.SetPermissionRemote(APP_PERMISSIONS_TABLE,
|
||||||
|
+ true,
|
||||||
|
+ APP_PERMISSIONS_ID,
|
||||||
|
+ this._app.get_id(),
|
||||||
|
+ [grant],
|
||||||
|
(result, error) => {
|
||||||
|
if (error != null)
|
||||||
|
log(error.message);
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
|
|
||||||
|
From 1391efb2356d1b1eac631df2f5fbd61a7a72bf52 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Fri, 18 Nov 2022 22:40:31 +0100
|
||||||
|
Subject: [PATCH 2/2] inhibitShorcutsDialog: Fix permission check
|
||||||
|
|
||||||
|
Each permission entry is an array of strings, so checking that against
|
||||||
|
the expected string itself will always fail.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6107
|
||||||
|
|
||||||
|
Part-of:
|
||||||
|
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2548>
|
||||||
|
---
|
||||||
|
js/ui/inhibitShortcutsDialog.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/inhibitShortcutsDialog.js b/js/ui/inhibitShortcutsDialog.js
|
||||||
|
index 8ef5861261..4cd2793c3d 100644
|
||||||
|
--- a/js/ui/inhibitShortcutsDialog.js
|
||||||
|
+++ b/js/ui/inhibitShortcutsDialog.js
|
||||||
|
@@ -145,7 +145,7 @@ var InhibitShortcutsDialog = GObject.registerClass({
|
||||||
|
let [permissions] = res;
|
||||||
|
if (permissions[appId] === undefined) // Not found
|
||||||
|
this._dialog.open();
|
||||||
|
- else if (permissions[appId] == GRANTED)
|
||||||
|
+ else if (permissions[appId][0] === GRANTED)
|
||||||
|
this._emitResponse(DialogResponse.ALLOW);
|
||||||
|
else
|
||||||
|
this._emitResponse(DialogResponse.DENY);
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
@ -1,51 +0,0 @@
|
|||||||
diff --git a/js/portalHelper/main.js b/js/portalHelper/main.js
|
|
||||||
index 25f866281..a221c3b88 100644
|
|
||||||
--- a/js/portalHelper/main.js
|
|
||||||
+++ b/js/portalHelper/main.js
|
|
||||||
@@ -4,10 +4,17 @@ imports.gi.versions.Soup = '2.4';
|
|
||||||
|
|
||||||
const Format = imports.format;
|
|
||||||
const Gettext = imports.gettext;
|
|
||||||
-const { Gio, GLib, GObject, Gtk, Pango, Soup, WebKit2: WebKit } = imports.gi;
|
|
||||||
+const { Gio, GLib, GObject, Gtk, Pango, Soup } = imports.gi;
|
|
||||||
|
|
||||||
const _ = Gettext.gettext;
|
|
||||||
|
|
||||||
+let WebKit;
|
|
||||||
+try {
|
|
||||||
+ WebKit = imports.gi.WebKit2;
|
|
||||||
+} catch {
|
|
||||||
+ WebKit = null;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
const Config = imports.misc.config;
|
|
||||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
|
||||||
|
|
||||||
@@ -346,6 +353,11 @@ function initEnvironment() {
|
|
||||||
function main(argv) {
|
|
||||||
initEnvironment();
|
|
||||||
|
|
||||||
+ if (!WebKit) {
|
|
||||||
+ log('WebKit2 typelib is not installed, captive portal helper will be disabled');
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!WebKit.WebContext.new_ephemeral) {
|
|
||||||
log('WebKitGTK 2.16 is required for the portal-helper, see https://bugzilla.gnome.org/show_bug.cgi?id=780453');
|
|
||||||
return 1;
|
|
||||||
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
|
|
||||||
index 01c83c86b..8c5bd8dcb 100644
|
|
||||||
--- a/js/ui/status/network.js
|
|
||||||
+++ b/js/ui/status/network.js
|
|
||||||
@@ -2070,7 +2070,9 @@ class Indicator extends PanelMenu.SystemIndicator {
|
|
||||||
new PortalHelperProxy(Gio.DBus.session, 'org.gnome.Shell.PortalHelper',
|
|
||||||
'/org/gnome/Shell/PortalHelper', (proxy, error) => {
|
|
||||||
if (error) {
|
|
||||||
- log('Error launching the portal helper: %s'.format(error));
|
|
||||||
+ // Timeout is expected if WebKit is unavailable
|
|
||||||
+ if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.TIMED_OUT))
|
|
||||||
+ log('Error launching the portal helper: ' + error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
From b8ae8f713a15b00ec447a23294948fc463220130 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon McVittie <smcv@debian.org>
|
||||||
|
Date: Mon, 6 May 2024 21:58:09 +0100
|
||||||
|
Subject: [PATCH] screencast: Correct expected bus name for streams
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Previously, this only worked because GDBusConnection was not filtering
|
||||||
|
signals by their sender correctly (GNOME/glib#3268).
|
||||||
|
|
||||||
|
Thanks: Alicia Boya García
|
||||||
|
Signed-off-by: Simon McVittie <smcv@debian.org>
|
||||||
|
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3303>
|
||||||
|
---
|
||||||
|
js/dbusServices/screencast/screencastService.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js
|
||||||
|
index 708a15c84..0321b4d69 100644
|
||||||
|
--- a/js/dbusServices/screencast/screencastService.js
|
||||||
|
+++ b/js/dbusServices/screencast/screencastService.js
|
||||||
|
@@ -161,7 +161,7 @@ var Recorder = class {
|
||||||
|
});
|
||||||
|
|
||||||
|
this._streamProxy = new ScreenCastStreamProxy(Gio.DBus.session,
|
||||||
|
- 'org.gnome.ScreenCast.Stream',
|
||||||
|
+ 'org.gnome.Mutter.ScreenCast',
|
||||||
|
streamPath);
|
||||||
|
|
||||||
|
this._streamProxy.connectSignal('PipeWireStreamAdded',
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
Loading…
Reference in new issue