Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gnome-shell for openSUSE:Factory 
checked in at 2021-08-25 20:56:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-shell (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-shell.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-shell"

Wed Aug 25 20:56:25 2021 rev:205 rq:913700 version:40.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-shell/gnome-shell.changes  2021-08-16 
10:05:46.095512702 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-shell.new.1899/gnome-shell.changes        
2021-08-25 20:56:54.617263429 +0200
@@ -1,0 +2,20 @@
+Wed Aug 18 17:33:23 UTC 2021 - Bj??rn Lie <bjorn....@gmail.com>
+
+- Update to version 40.4:
+  + Don't include hidden search results in keynav.
+  + Always take workarea into account when allocating workspaces.
+  + Add focus indication for switches.
+  + Fix glitch when dragging window preview in overview.
+  + workspace: Handle skip-taskbar changes.
+  + screenShield: Fix suspend inhibitor accounting.
+  + Fixed crash.
+  + Misc. bug fixes and cleanups.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Mon Aug 16 20:26:30 UTC 2021 - Michael Gorse <mgo...@suse.com>
+
+- Remove libcroco from BuildRequires: the relevant sources are now
+  included directly in the gnome-shell tarball.
+
+-------------------------------------------------------------------

Old:
----
  gnome-shell-40.3.tar.xz

New:
----
  gnome-shell-40.4.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnome-shell.spec ++++++
--- /var/tmp/diff_new_pack.z5ZBJ6/_old  2021-08-25 20:56:55.289262547 +0200
+++ /var/tmp/diff_new_pack.z5ZBJ6/_new  2021-08-25 20:56:55.293262542 +0200
@@ -19,7 +19,7 @@
 %global __requires_exclude typelib\\(Meta\\)
 
 Name:           gnome-shell
-Version:        40.3
+Version:        40.4
 Release:        0
 Summary:        GNOME Shell
 # shew extension is LGPL 2.1; gnome-shell-extension-tool is GPL-3.0-or-later
@@ -92,7 +92,6 @@
 BuildRequires:  pkgconfig(json-glib-1.0) >= 0.13.2
 BuildRequires:  pkgconfig(libcanberra)
 BuildRequires:  pkgconfig(libcanberra-gtk3)
-BuildRequires:  pkgconfig(libcroco-0.6) >= 0.6.8
 BuildRequires:  pkgconfig(libecal-2.0) >= 3.33.1
 BuildRequires:  pkgconfig(libedataserver-1.2) >= 3.33.1
 BuildRequires:  pkgconfig(libgnome-menu-3.0) >= 3.5.3

++++++ gnome-shell-40.3.tar.xz -> gnome-shell-40.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/NEWS new/gnome-shell-40.4/NEWS
--- old/gnome-shell-40.3/NEWS   2021-07-12 19:45:12.318893700 +0200
+++ new/gnome-shell-40.4/NEWS   2021-08-18 01:19:40.671349300 +0200
@@ -1,3 +1,22 @@
+40.4
+====
+* Don't include hidden search results in keynav [Florian; #4470]
+* Always take workarea into account when allocating workspaces [Marco; !1892]
+* Add focus indication for switches [vanadiae; !1920]
+* Fix glitch when dragging window preview in overview [Sebastian; !1847]
+* workspace: Handle skip-taskbar changes  [Daniel; !1925]
+* screenShield: Fix suspend inhibitor accounting [Sebastian; !1927]
+* Fixed crash [Florian; !1935]
+* Misc. bug fixes and cleanups [Florian, Sebastian; !1921, !1926, !1932,
+  !1938, !1945, !1950]
+
+Contributors:
+  Marco Trevisan (Trevi??o), Sebastian Keller, Florian M??llner, Daniel van 
Vugt,
+  vanadiae
+
+Translators:
+  Quentin PAG??S [oc]
+
 40.3
 ====
 * Fix glitch in app grid ??? session transition [Harshad; !1886]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-shell-40.3/data/theme/gnome-shell-high-contrast.css 
new/gnome-shell-40.4/data/theme/gnome-shell-high-contrast.css
--- old/gnome-shell-40.3/data/theme/gnome-shell-high-contrast.css       
2021-07-12 19:45:19.043730700 +0200
+++ new/gnome-shell-40.4/data/theme/gnome-shell-high-contrast.css       
2021-08-18 01:19:45.633366000 +0200
@@ -719,6 +719,13 @@
   margin: 8px 16px 0;
   padding: 4px;
   spacing: 12px; }
+  .message-list-controls .dnd-button {
+    border-width: 2px;
+    border-color: transparent;
+    border-radius: 99px;
+    border-style: solid; }
+    .message-list-controls .dnd-button:focus {
+      border-color: rgba(33, 93, 156, 0.6); }
 
 .message {
   border-width: 1px;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-shell-40.3/data/theme/gnome-shell-sass/widgets/_message-list.scss 
new/gnome-shell-40.4/data/theme/gnome-shell-sass/widgets/_message-list.scss
--- old/gnome-shell-40.3/data/theme/gnome-shell-sass/widgets/_message-list.scss 
2021-07-12 19:45:12.335893200 +0200
+++ new/gnome-shell-40.4/data/theme/gnome-shell-sass/widgets/_message-list.scss 
2021-08-18 01:19:40.680349300 +0200
@@ -25,6 +25,20 @@
   // NOTE: remove the padding if notification_bubble could remove margin for 
drop shadow
   padding: $base_margin;
   spacing: $base_spacing * 2;
+
+  .dnd-button {
+    // We need this because the focus outline isn't inset like for the buttons
+    // so the dnd button would grow when it gets focus if we didn't change only
+    // its color when focusing.
+    border-width: 2px;
+    border-color: transparent;
+    border-radius: 99px;
+    border-style: solid;
+
+    &:focus {
+      border-color: transparentize($selected_bg_color, 0.4);
+    }
+  }
 }
 
 // message bubbles
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/data/theme/gnome-shell.css 
new/gnome-shell-40.4/data/theme/gnome-shell.css
--- old/gnome-shell-40.3/data/theme/gnome-shell.css     2021-07-12 
19:45:19.086729800 +0200
+++ new/gnome-shell-40.4/data/theme/gnome-shell.css     2021-08-18 
01:19:45.666366000 +0200
@@ -719,6 +719,13 @@
   margin: 8px 16px 0;
   padding: 4px;
   spacing: 12px; }
+  .message-list-controls .dnd-button {
+    border-width: 2px;
+    border-color: transparent;
+    border-radius: 99px;
+    border-style: solid; }
+    .message-list-controls .dnd-button:focus {
+      border-color: rgba(27, 106, 203, 0.6); }
 
 .message {
   border-width: 1px;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/appDisplay.js 
new/gnome-shell-40.4/js/ui/appDisplay.js
--- old/gnome-shell-40.3/js/ui/appDisplay.js    2021-07-12 19:45:12.348893000 
+0200
+++ new/gnome-shell-40.4/js/ui/appDisplay.js    2021-08-18 01:19:40.687349300 
+0200
@@ -1831,11 +1831,13 @@
 
         // Create the new folder
         let newFolderPath = this._folderSettings.path.concat('folders/', 
newFolderId, '/');
-        let newFolderSettings = new Gio.Settings({
-            schema_id: 'org.gnome.desktop.app-folders.folder',
-            path: newFolderPath,
-        });
-        if (!newFolderSettings) {
+        let newFolderSettings;
+        try {
+            newFolderSettings = new Gio.Settings({
+                schema_id: 'org.gnome.desktop.app-folders.folder',
+                path: newFolderPath,
+            });
+        } catch (e) {
             log('Error creating new folder');
             return false;
         }
@@ -3531,8 +3533,7 @@
 
             if 
(Shell.AppSystem.get_default().lookup_app('org.gnome.Software.desktop')) {
                 this._appendSeparator();
-                let item = this._appendMenuItem(_("Show Details"));
-                item.connect('activate', async () => {
+                this.addAction(_('Show Details'), async () => {
                     let id = this._source.app.get_id();
                     let args = GLib.Variant.new('(ss)', [id, '']);
                     const bus = await Gio.DBus.get(Gio.BusType.SESSION, null);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/boxpointer.js 
new/gnome-shell-40.4/js/ui/boxpointer.js
--- old/gnome-shell-40.3/js/ui/boxpointer.js    2021-07-12 19:45:12.349892900 
+0200
+++ new/gnome-shell-40.4/js/ui/boxpointer.js    2021-08-18 01:19:40.688349200 
+0200
@@ -556,7 +556,7 @@
                 arrowOrigin = y1;
             } else if (arrowOrigin >= (y2 - (borderRadius + halfBase))) {
                 if (arrowOrigin < y2)
-                    resX -= y2 - arrowOrigin;
+                    resY -= y2 - arrowOrigin;
                 arrowOrigin = y2;
             }
             break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/calendar.js 
new/gnome-shell-40.4/js/ui/calendar.js
--- old/gnome-shell-40.3/js/ui/calendar.js      2021-07-12 19:45:12.350892800 
+0200
+++ new/gnome-shell-40.4/js/ui/calendar.js      2021-08-18 01:19:40.688349200 
+0200
@@ -954,10 +954,12 @@
 
         this._dndSwitch = new DoNotDisturbSwitch();
         this._dndButton = new St.Button({
+            style_class: 'dnd-button',
             can_focus: true,
             toggle_mode: true,
             child: this._dndSwitch,
             label_actor: dndLabel,
+            y_align: Clutter.ActorAlign.CENTER,
         });
         this._dndSwitch.bind_property('state',
             this._dndButton, 'checked',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/components/telepathyClient.js 
new/gnome-shell-40.4/js/ui/components/telepathyClient.js
--- old/gnome-shell-40.3/js/ui/components/telepathyClient.js    2021-07-12 
19:45:12.353892800 +0200
+++ new/gnome-shell-40.4/js/ui/components/telepathyClient.js    2021-08-18 
01:19:40.689349400 +0200
@@ -415,7 +415,7 @@
 
     _updateAvatarIcon() {
         this.iconUpdated();
-        if (this._notifiction) {
+        if (this._notification) {
             this._notification.update(this._notification.title,
                                       this._notification.bannerBodyText,
                                       { gicon: this.getIcon() });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/keyboard.js 
new/gnome-shell-40.4/js/ui/keyboard.js
--- old/gnome-shell-40.3/js/ui/keyboard.js      2021-07-12 19:45:12.358892700 
+0200
+++ new/gnome-shell-40.4/js/ui/keyboard.js      2021-08-18 01:19:40.691349300 
+0200
@@ -2125,12 +2125,12 @@
     }
 
     keyvalPress(keyval) {
-        this._virtualDevice.notify_keyval(Clutter.get_current_event_time(),
+        this._virtualDevice.notify_keyval(Clutter.get_current_event_time() * 
1000,
                                           keyval, Clutter.KeyState.PRESSED);
     }
 
     keyvalRelease(keyval) {
-        this._virtualDevice.notify_keyval(Clutter.get_current_event_time(),
+        this._virtualDevice.notify_keyval(Clutter.get_current_event_time() * 
1000,
                                           keyval, Clutter.KeyState.RELEASED);
     }
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/magnifier.js 
new/gnome-shell-40.4/js/ui/magnifier.js
--- old/gnome-shell-40.3/js/ui/magnifier.js     2021-07-12 19:45:12.361892500 
+0200
+++ new/gnome-shell-40.4/js/ui/magnifier.js     2021-08-18 01:19:40.692349400 
+0200
@@ -228,26 +228,25 @@
      * scrollToMousePos:
      * Position all zoom regions' ROI relative to the current location of the
      * system pointer.
-     * @returns {bool} true.
      */
     scrollToMousePos() {
         let [xMouse, yMouse] = global.get_pointer();
 
-        if (xMouse != this.xMouse || yMouse != this.yMouse) {
-            this.xMouse = xMouse;
-            this.yMouse = yMouse;
+        if (xMouse === this.xMouse && yMouse === this.yMouse)
+            return;
 
-            let sysMouseOverAny = false;
-            this._zoomRegions.forEach(zoomRegion => {
-                if (zoomRegion.scrollToMousePos())
-                    sysMouseOverAny = true;
-            });
-            if (sysMouseOverAny)
-                this.hideSystemCursor();
-            else
-                this.showSystemCursor();
-        }
-        return true;
+        this.xMouse = xMouse;
+        this.yMouse = yMouse;
+
+        let sysMouseOverAny = false;
+        this._zoomRegions.forEach(zoomRegion => {
+            if (zoomRegion.scrollToMousePos())
+                sysMouseOverAny = true;
+        });
+        if (sysMouseOverAny)
+            this.hideSystemCursor();
+        else
+            this.showSystemCursor();
     }
 
     /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/main.js 
new/gnome-shell-40.4/js/ui/main.js
--- old/gnome-shell-40.3/js/ui/main.js  2021-07-12 19:45:12.361892500 +0200
+++ new/gnome-shell-40.4/js/ui/main.js  2021-08-18 01:19:40.692349400 +0200
@@ -97,6 +97,12 @@
 let _themeResource = null;
 let _oskResource = null;
 
+// Redefine _LocalFilePrototype in case it points to the wrong prototype.
+// See https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/595
+const localFileGType = GObject.type_from_name('GLocalFile');
+if (Gio._LocalFilePrototype.constructor.$gtype !== localFileGType)
+    Gio._LocalFilePrototype = Gio.File.new_for_path('/').constructor.prototype;
+
 Gio._promisify(Gio._LocalFilePrototype, 'delete_async', 'delete_finish');
 Gio._promisify(Gio._LocalFilePrototype, 'touch_async', 'touch_finish');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/overviewControls.js 
new/gnome-shell-40.4/js/ui/overviewControls.js
--- old/gnome-shell-40.3/js/ui/overviewControls.js      2021-07-12 
19:45:12.364892500 +0200
+++ new/gnome-shell-40.4/js/ui/overviewControls.js      2021-08-18 
01:19:40.694349300 +0200
@@ -47,8 +47,9 @@
         stateAdjustment.connect('notify::value', () => this.layout_changed());
     }
 
-    _computeWorkspacesBoxForState(state, box, startY, searchHeight, 
dashHeight, thumbnailsHeight) {
-        const workspaceBox = box.copy();
+    _computeWorkspacesBoxForState(state, workAreaBox, searchHeight, 
dashHeight, thumbnailsHeight) {
+        const workspaceBox = workAreaBox.copy();
+        const [startX, startY] = workAreaBox.get_origin();
         const [width, height] = workspaceBox.get_size();
         const { spacing } = this;
         const { expandFraction } = this._workspacesThumbnails;
@@ -57,7 +58,7 @@
         case ControlsState.HIDDEN:
             break;
         case ControlsState.WINDOW_PICKER:
-            workspaceBox.set_origin(0,
+            workspaceBox.set_origin(startX,
                 startY + searchHeight + spacing +
                 thumbnailsHeight + spacing * expandFraction);
             workspaceBox.set_size(width,
@@ -67,7 +68,7 @@
                 thumbnailsHeight - spacing * expandFraction);
             break;
         case ControlsState.APP_GRID:
-            workspaceBox.set_origin(0, startY + searchHeight + spacing);
+            workspaceBox.set_origin(startX, startY + searchHeight + spacing);
             workspaceBox.set_size(
                 width,
                 Math.round(height * SMALL_WORKSPACE_RATIO));
@@ -77,18 +78,19 @@
         return workspaceBox;
     }
 
-    _getAppDisplayBoxForState(state, box, startY, searchHeight, dashHeight, 
appGridBox) {
-        const [width, height] = box.get_size();
+    _getAppDisplayBoxForState(state, workAreaBox, searchHeight, dashHeight, 
appGridBox) {
+        const [startX, startY] = workAreaBox.get_origin();
+        const [width, height] = workAreaBox.get_size();
         const appDisplayBox = new Clutter.ActorBox();
         const { spacing } = this;
 
         switch (state) {
         case ControlsState.HIDDEN:
         case ControlsState.WINDOW_PICKER:
-            appDisplayBox.set_origin(0, box.y2);
+            appDisplayBox.set_origin(startX, workAreaBox.y2);
             break;
         case ControlsState.APP_GRID:
-            appDisplayBox.set_origin(0,
+            appDisplayBox.set_origin(startX,
                 startY + searchHeight + spacing + appGridBox.get_height());
             break;
         }
@@ -126,34 +128,37 @@
         return [0, 0];
     }
 
-    vfunc_allocate(container, box) {
+    vfunc_allocate(_container, _box) {
         const childBox = new Clutter.ActorBox();
 
         const { spacing } = this;
 
-        let startY = 0;
-        if (Main.layoutManager.panelBox.y === 
Main.layoutManager.primaryMonitor.y) {
-            startY = Main.layoutManager.panelBox.height;
-            box.y1 += startY;
-        }
-        const [width, height] = box.get_size();
+        const monitor = 
Main.layoutManager.findMonitorForActor(this._container);
+        const workArea = 
Main.layoutManager.getWorkAreaForMonitor(monitor.index);
+        const startX = workArea.x - monitor.x;
+        const startY = workArea.y - monitor.y;
+        const workAreaBox = new Clutter.ActorBox();
+        workAreaBox.set_origin(startX, startY);
+        workAreaBox.set_size(workArea.width, workArea.height);
+        const [width, height] = workAreaBox.get_size();
         let availableHeight = height;
+        const availableWidth = width;
 
         // Search entry
         let [searchHeight] = this._searchEntry.get_preferred_height(width);
-        childBox.set_origin(0, startY);
+        childBox.set_origin(startX, startY);
         childBox.set_size(width, searchHeight);
         this._searchEntry.allocate(childBox);
 
         availableHeight -= searchHeight + spacing;
 
         // Dash
-        const maxDashHeight = Math.round(box.get_height() * 
DASH_MAX_HEIGHT_RATIO);
+        const maxDashHeight = Math.round(workAreaBox.get_height() * 
DASH_MAX_HEIGHT_RATIO);
         this._dash.setMaxSize(width, maxDashHeight);
 
         let [, dashHeight] = this._dash.get_preferred_height(width);
         dashHeight = Math.min(dashHeight, maxDashHeight);
-        childBox.set_origin(0, startY + height - dashHeight);
+        childBox.set_origin(startX, startY + height - dashHeight);
         childBox.set_size(width, dashHeight);
         this._dash.allocate(childBox);
 
@@ -168,13 +173,13 @@
             thumbnailsHeight = Math.min(
                 thumbnailsHeight * expandFraction,
                 height * WorkspaceThumbnail.MAX_THUMBNAIL_SCALE);
-            childBox.set_origin(0, startY + searchHeight + spacing);
+            childBox.set_origin(startX, startY + searchHeight + spacing);
             childBox.set_size(width, thumbnailsHeight);
             this._workspacesThumbnails.allocate(childBox);
         }
 
         // Workspaces
-        let params = [box, startY, searchHeight, dashHeight, thumbnailsHeight];
+        let params = [workAreaBox, searchHeight, dashHeight, thumbnailsHeight];
         const transitionParams = 
this._stateAdjustment.getStateTransitionParams();
 
         // Update cached boxes
@@ -199,7 +204,7 @@
             const workspaceAppGridBox =
                 this._cachedWorkspaceBoxes.get(ControlsState.APP_GRID);
 
-            params = [box, startY, searchHeight, dashHeight, 
workspaceAppGridBox];
+            params = [workAreaBox, searchHeight, dashHeight, 
workspaceAppGridBox];
             let appDisplayBox;
             if (!transitionParams.transitioning) {
                 appDisplayBox =
@@ -217,8 +222,8 @@
         }
 
         // Search
-        childBox.set_origin(0, startY + searchHeight + spacing);
-        childBox.set_size(width, availableHeight);
+        childBox.set_origin(startX, startY + searchHeight + spacing);
+        childBox.set_size(availableWidth, availableHeight);
 
         this._searchController.allocate(childBox);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/popupMenu.js 
new/gnome-shell-40.4/js/ui/popupMenu.js
--- old/gnome-shell-40.3/js/ui/popupMenu.js     2021-07-12 19:45:12.367892500 
+0200
+++ new/gnome-shell-40.4/js/ui/popupMenu.js     2021-08-18 01:19:40.695349500 
+0200
@@ -324,7 +324,6 @@
         super._init({
             style_class: 'toggle-switch',
             accessible_role: Atk.Role.CHECK_BOX,
-            can_focus: true,
             state,
         });
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/screenShield.js 
new/gnome-shell-40.4/js/ui/screenShield.js
--- old/gnome-shell-40.3/js/ui/screenShield.js  2021-07-12 19:45:12.368892400 
+0200
+++ new/gnome-shell-40.4/js/ui/screenShield.js  2021-08-18 01:19:40.695349500 
+0200
@@ -122,6 +122,7 @@
         this._isActive = false;
         this._isLocked = false;
         this._inUnlockAnimation = false;
+        this._inhibited = false;
         this._activationTime = 0;
         this._becameActiveId = 0;
         this._lockTimeoutId = 0;
@@ -203,20 +204,35 @@
     }
 
     _syncInhibitor() {
-        let lockEnabled = this._settings.get_boolean(LOCK_ENABLED_KEY);
-        let lockLocked = this._lockSettings.get_boolean(DISABLE_LOCK_KEY);
-        let inhibit = this._loginSession && this._loginSession.Active &&
-                       !this._isActive && lockEnabled && !lockLocked && 
Main.sessionMode.unlockDialog;
+        const lockEnabled = this._settings.get_boolean(LOCK_ENABLED_KEY);
+        const lockLocked = this._lockSettings.get_boolean(DISABLE_LOCK_KEY);
+        const inhibit = !!this._loginSession && this._loginSession.Active &&
+                         !this._isActive && lockEnabled && !lockLocked &&
+                         !!Main.sessionMode.unlockDialog;
+
+        if (inhibit === this._inhibited)
+            return;
+
+        this._inhibited = inhibit;
+
         if (inhibit) {
-            this._loginManager.inhibit(_("GNOME needs to lock the screen"),
+            this._loginManager.inhibit(_('GNOME needs to lock the screen'),
                 inhibitor => {
-                    if (this._inhibitor)
-                        this._inhibitor.close(null);
-                    this._inhibitor = inhibitor;
+                    if (inhibitor) {
+                        if (this._inhibitor)
+                            inhibitor.close(null);
+                        else
+                            this._inhibitor = inhibitor;
+                    }
+
+                    // Handle uninhibits that happened after the start
+                    if (!this._inhibited) {
+                        this._inhibitor?.close(null);
+                        this._inhibitor = null;
+                    }
                 });
         } else {
-            if (this._inhibitor)
-                this._inhibitor.close(null);
+            this._inhibitor?.close(null);
             this._inhibitor = null;
         }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/search.js 
new/gnome-shell-40.4/js/ui/search.js
--- old/gnome-shell-40.3/js/ui/search.js        2021-07-12 19:45:12.369892400 
+0200
+++ new/gnome-shell-40.4/js/ui/search.js        2021-08-18 01:19:40.695349500 
+0200
@@ -429,6 +429,7 @@
                 childBox.set_size(0, 0);
 
             child.allocate(childBox);
+            child.can_focus = childBox.get_area() > 0;
 
             childBox.x1 += childWidth;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/status/location.js 
new/gnome-shell-40.4/js/ui/status/location.js
--- old/gnome-shell-40.3/js/ui/status/location.js       2021-07-12 
19:45:12.373892300 +0200
+++ new/gnome-shell-40.4/js/ui/status/location.js       2021-08-18 
01:19:40.697349300 +0200
@@ -16,8 +16,8 @@
 const MAX_ACCURACY_LEVEL = 'max-accuracy-level';
 const ENABLED = 'enabled';
 
-const APP_PERMISSIONS_TABLE = 'gnome';
-const APP_PERMISSIONS_ID = 'geolocation';
+const APP_PERMISSIONS_TABLE = 'location';
+const APP_PERMISSIONS_ID = 'location';
 
 var GeoclueAccuracyLevel = {
     NONE: 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/js/ui/workspace.js 
new/gnome-shell-40.4/js/ui/workspace.js
--- old/gnome-shell-40.3/js/ui/workspace.js     2021-07-12 19:45:12.378892200 
+0200
+++ new/gnome-shell-40.4/js/ui/workspace.js     2021-08-18 01:19:40.699349400 
+0200
@@ -627,8 +627,9 @@
         }
 
         const { ControlsState } = OverviewControls;
-        const inSessionTransition =
-            this._overviewAdjustment.value <= ControlsState.WINDOW_PICKER;
+        const { currentState, transitioning } =
+            this._overviewAdjustment.getStateTransitionParams();
+        const inSessionTransition = currentState <= 
ControlsState.WINDOW_PICKER;
 
         const window = this._sortedWindows[0];
 
@@ -638,8 +639,8 @@
             const [, bottomOversize] = window.chromeHeights();
             const [containerX, containerY] = containerBox.get_origin();
 
-            const extraHeightProgress = this._overviewAdjustment.value -
-                OverviewControls.ControlsState.WINDOW_PICKER;
+            const extraHeightProgress =
+                currentState - OverviewControls.ControlsState.WINDOW_PICKER;
 
             const extraClipHeight = bottomOversize * (1 - extraHeightProgress);
 
@@ -689,7 +690,8 @@
                 workspaceBoxWidth = 0;
                 workspaceBoxHeight = 0;
 
-                child.opacity = stateAdjustementValue * 255;
+                if (transitioning)
+                    child.opacity = stateAdjustementValue * 255;
             }
 
             // Don't allow the scaled floating size to drop below
@@ -1012,13 +1014,21 @@
 
         const [contentWidth, contentHeight] = contentBox.get_size();
         const monitor = Main.layoutManager.monitors[this._monitorIndex];
-        const xOff = (contentWidth / this._workarea.width) *
-            (this._workarea.x - monitor.x);
-        const yOff = (contentHeight / this._workarea.height) *
-            (this._workarea.y - monitor.y);
-
-        contentBox.set_origin(-xOff, -yOff);
-        contentBox.set_size(xOff + contentWidth, yOff + contentHeight);
+        const [mX1, mX2] = [monitor.x, monitor.x + monitor.width];
+        const [mY1, mY2] = [monitor.y, monitor.y + monitor.height];
+        const [wX1, wX2] = [this._workarea.x, this._workarea.x + 
this._workarea.width];
+        const [wY1, wY2] = [this._workarea.y, this._workarea.y + 
this._workarea.height];
+        const xScale = contentWidth / this._workarea.width;
+        const yScale = contentHeight / this._workarea.height;
+        const leftOffset = wX1 - mX1;
+        const topOffset = wY1 - mY1;
+        const rightOffset = mX2 - wX2;
+        const bottomOffset = mY2 - wY2;
+
+        contentBox.set_origin(-leftOffset * xScale, -topOffset * yScale);
+        contentBox.set_size(
+            contentWidth + (leftOffset + rightOffset) * xScale,
+            contentHeight + (topOffset + bottomOffset) * yScale);
         this._backgroundGroup.allocate(contentBox);
     }
 
@@ -1096,6 +1106,7 @@
         this.connect('style-changed', this._onStyleChanged.bind(this));
         this.connect('destroy', this._onDestroy.bind(this));
 
+        this._skipTaskbarSignals = new Map();
         const windows = global.get_window_actors().map(a => a.meta_window)
             .filter(this._isMyWindow, this);
 
@@ -1222,6 +1233,14 @@
         if (!this._isMyWindow(metaWin))
             return;
 
+        this._skipTaskbarSignals.set(metaWin,
+            metaWin.connect('notify::skip-taskbar', () => {
+                if (metaWin.skip_taskbar)
+                    this._doRemoveWindow(metaWin);
+                else
+                    this._doAddWindow(metaWin);
+            }));
+
         if (!this._isOverviewWindow(metaWin)) {
             if (metaWin.get_transient_for() == null)
                 return;
@@ -1290,7 +1309,15 @@
         return false;
     }
 
+    _clearSkipTaskbarSignals() {
+        for (const [metaWin, id] of this._skipTaskbarSignals)
+            metaWin.disconnect(id);
+        this._skipTaskbarSignals.clear();
+    }
+
     prepareToLeaveOverview() {
+        this._clearSkipTaskbarSignals();
+
         for (let i = 0; i < this._windows.length; i++)
             this._windows[i].remove_all_transitions();
 
@@ -1304,6 +1331,8 @@
     }
 
     _onDestroy() {
+        this._clearSkipTaskbarSignals();
+
         if (this._overviewHiddenId) {
             Main.overview.disconnect(this._overviewHiddenId);
             this._overviewHiddenId = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/meson.build 
new/gnome-shell-40.4/meson.build
--- old/gnome-shell-40.3/meson.build    2021-07-12 19:45:12.382892100 +0200
+++ new/gnome-shell-40.4/meson.build    2021-08-18 01:19:40.700349300 +0200
@@ -1,5 +1,5 @@
 project('gnome-shell', 'c',
-  version: '40.3',
+  version: '40.4',
   meson_version: '>= 0.53.0',
   license: 'GPLv2+'
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/po/oc.po 
new/gnome-shell-40.4/po/oc.po
--- old/gnome-shell-40.3/po/oc.po       2021-07-12 19:45:12.484889500 +0200
+++ new/gnome-shell-40.4/po/oc.po       2021-08-18 01:19:40.735349400 +0200
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: gnome-shell master fr\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n";
-"POT-Creation-Date: 2021-06-16 08:21+0000\n"
-"PO-Revision-Date: 2021-07-08 21:42+0200\n"
+"POT-Creation-Date: 2021-08-02 15:23+0000\n"
+"PO-Revision-Date: 2021-08-11 17:53+0200\n"
 "Last-Translator: Quentin PAG??S\n"
 "Language-Team: Tot En ??c\n"
 "Language: oc\n"
@@ -210,6 +210,11 @@
 "number will represent versions that do not exist yet. This huge number can "
 "be used to effectively disable the dialog."
 msgstr ""
+"Aquesta clau determina la version de la fen??stra ?? la Benvenguda de GNOME 
?? "
+"darri??rament afichada. Una cadena de t??xt voida indica la version mai "
+"anciana possibla, e un grand nombre representa una version qu'exist??s pas "
+"encara. Un grand nombre p??t servir a desactivar d???un biais efectiu la "
+"fen??stra."
 
 #: data/org.gnome.shell.gschema.xml.in:109
 msgid "Enable introspection API"
@@ -233,6 +238,12 @@
 "???application id??? ??? 'data' pair. Currently, the following values are 
stored "
 "as 'data': ??? ???position???: the position of the application icon in the 
page"
 msgstr ""
+"Disposicion del selector d???aplicacions. Cada entrada del tabl??u es una "
+"pagina. Las paginas son gardadas dins l?????rdre qu'apareisson dins Shell de "
+"GNOME. Cada pagina conten un parelh ????identificant d???aplicacion???? ??? "
+"????donadas????. Actualament, las valors seguentas son gardadas coma "
+"????donadas??????: ??? ????posicion??????: la posicion de l???ic??na de 
l???aplicacion sus la "
+"pagina"
 
 #: data/org.gnome.shell.gschema.xml.in:157
 msgid "Keybinding to open the application menu"
@@ -443,6 +454,9 @@
 "extension can???t be displayed. We recommend that you report the issue to the 
"
 "extension authors."
 msgstr ""
+"O planh??m, mas i a un probl??mas???: los param??tres d???aquesta extensions 
se "
+"p??don pas afichar. Vos recomandam de senhalar aqueste probl??ma als autors 
de "
+"l???extension."
 
 #: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:64
 msgid "Technical Details"
@@ -1085,7 +1099,7 @@
 msgid "%s is now known as %s"
 msgstr "%s es ara conegut jol nom de %s"
 
-#: js/ui/ctrlAltTab.js:21 js/ui/overviewControls.js:398
+#: js/ui/ctrlAltTab.js:21 js/ui/overviewControls.js:399
 msgid "Windows"
 msgstr "Fen??stras"
 
@@ -1541,11 +1555,11 @@
 msgid "Web Page"
 msgstr "Pagina Web"
 
-#: js/ui/main.js:294
+#: js/ui/main.js:300
 msgid "Logged in as a privileged user"
 msgstr "Connectat coma utilizaire amb privil??gis"
 
-#: js/ui/main.js:295
+#: js/ui/main.js:301
 msgid ""
 "Running a session as a privileged user should be avoided for security "
 "reasons. If possible, you should log in as a normal user."
@@ -1554,11 +1568,11 @@
 "per de rasons de seguretat. Vos caldri??, se es possible, de vos connectar "
 "coma utilizaire normal."
 
-#: js/ui/main.js:344
+#: js/ui/main.js:350
 msgid "Screen Lock disabled"
 msgstr "Verrolhatge d???ecran desactivat"
 
-#: js/ui/main.js:345
+#: js/ui/main.js:351
 msgid "Screen Locking requires the GNOME display manager."
 msgstr "Lo verrolhatge d???ecran requer??s lo gestionari d???afichatge GNOME."
 
@@ -1578,11 +1592,11 @@
 #. in the search entry when no search is
 #. active; it should not exceed ~30
 #. characters.
-#: js/ui/overviewControls.js:307
+#: js/ui/overviewControls.js:308
 msgid "Type to search"
 msgstr "Picatz per recercar"
 
-#: js/ui/overviewControls.js:386
+#: js/ui/overviewControls.js:387
 msgid "Applications"
 msgstr "Aplicacions"
 
@@ -2153,38 +2167,38 @@
 msgid "Disable Until Tomorrow"
 msgstr "Desactivar fins a deman"
 
-#: js/ui/status/power.js:47
+#: js/ui/status/power.js:51
 msgid "Power Settings"
 msgstr "Param??tres de gestion de l'energia"
 
-#: js/ui/status/power.js:63
+#: js/ui/status/power.js:68
 msgid "Fully Charged"
 msgstr "Carga completa"
 
-#: js/ui/status/power.js:69
+#: js/ui/status/power.js:74
 msgid "Not Charging"
 msgstr "Pas en carga"
 
 #. 0 is reported when UPower does not have enough data
 #. to estimate battery life
-#: js/ui/status/power.js:72 js/ui/status/power.js:78
+#: js/ui/status/power.js:77 js/ui/status/power.js:83
 msgid "Estimating???"
 msgstr "Estimacion en cors???"
 
 #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
-#: js/ui/status/power.js:86
+#: js/ui/status/power.js:91
 #, javascript-format
 msgid "%d???%02d Remaining (%d???%%)"
 msgstr "%d???%02d restant (%d %%)"
 
 #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
-#: js/ui/status/power.js:91
+#: js/ui/status/power.js:97
 #, javascript-format
 msgid "%d???%02d Until Full (%d???%%)"
 msgstr "%d???%02d abans cargament complet (%d %%)"
 
 #. The icon label
-#: js/ui/status/power.js:137
+#: js/ui/status/power.js:145
 #, javascript-format
 msgid "%d???%%"
 msgstr "%d???%%"
@@ -2450,19 +2464,19 @@
 msgid "Evolution Calendar"
 msgstr "Agenda d'Evolution"
 
-#: src/main.c:415 subprojects/extensions-tool/src/main.c:317
+#: src/main.c:419 subprojects/extensions-tool/src/main.c:317
 msgid "Print version"
 msgstr "Aficha la version"
 
-#: src/main.c:421
+#: src/main.c:425
 msgid "Mode used by GDM for login screen"
 msgstr "M??de utilizat per GDM per l'ecran de connexion"
 
-#: src/main.c:427
+#: src/main.c:431
 msgid "Use a specific mode, e.g. ???gdm??? for login screen"
 msgstr "Utilizar un m??de particular, per ex. ?? gdm ?? per l???ecran de 
connexion"
 
-#: src/main.c:433
+#: src/main.c:437
 msgid "List possible modes"
 msgstr "Far la lista dels m??des possibles"
 
@@ -2542,6 +2556,9 @@
 #: subprojects/extensions-app/js/main.js:216
 msgid "translator-credits"
 msgstr ""
+"Launchpad Contributions:\n"
+"C??dric VALMARY (Tot en ??c) https://launchpad.net/~cvalmary\n";
+"Quentin PAG??S https://launchpad.net/~kwentin";
 
 #: subprojects/extensions-app/js/main.js:344
 #, javascript-format
@@ -2607,6 +2624,9 @@
 "encounter problems with your system, it is recommended to disable all "
 "extensions."
 msgstr ""
+"Las extensions p??don menar a de probl??mas sist??ma, inclutz per la "
+"performan??a. Se pensatz qu???es v??stre cas, se recomanda de desactivar 
totas "
+"las extensions."
 
 #: subprojects/extensions-app/data/ui/extensions-window.ui:150
 msgid "Manually Installed"
@@ -2625,6 +2645,8 @@
 "We???re very sorry, but it was not possible to get the list of installed "
 "extensions. Make sure you are logged into GNOME and try again."
 msgstr ""
+"O planh??m, es pas possible d???obt??ner la lista de las extensions 
installadas. "
+"Verificatz que s??tz ben connectat a GNOME e tornatz ensajar."
 
 #: subprojects/extensions-app/data/ui/extensions-window.ui:288
 msgid "Extension Updates Ready"
@@ -2670,6 +2692,9 @@
 "This should be in the format of an email address (clicktofocus@janedoe."
 "example.com)\n"
 msgstr ""
+"L???UUID es un identificant globalament unica per v??stra extension.\n"
+"Son format deu correspondre al format d???una adre??a electronica "
+"(clicperfo...@joanmiquel.com)\n"
 
 #: subprojects/extensions-tool/src/command-create.c:363
 msgid "Choose one of the available templates:\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/src/shell-global.c 
new/gnome-shell-40.4/src/shell-global.c
--- old/gnome-shell-40.3/src/shell-global.c     2021-07-12 19:45:12.514888800 
+0200
+++ new/gnome-shell-40.4/src/shell-global.c     2021-08-18 01:19:40.752349600 
+0200
@@ -1236,7 +1236,7 @@
   char *buf;
   char *buf_p;
   char *buf_end;
-  GError *error = NULL;
+  g_autoptr (GError) error = NULL;
 
   if (!g_file_get_contents ("/proc/self/cmdline", &buf, &len, &error))
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/src/shell-perf-log.c 
new/gnome-shell-40.4/src/shell-perf-log.c
--- old/gnome-shell-40.3/src/shell-perf-log.c   2021-07-12 19:45:12.516888900 
+0200
+++ new/gnome-shell-40.4/src/shell-perf-log.c   2021-08-18 01:19:40.753349500 
+0200
@@ -862,7 +862,7 @@
                 gpointer    user_data)
 {
   ReplayToJsonClosure *closure = user_data;
-  char *event_str;
+  g_autofree char *event_str = NULL;
 
   if (closure->error != NULL)
     return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/src/st/st-icon.c 
new/gnome-shell-40.4/src/st/st-icon.c
--- old/gnome-shell-40.3/src/st/st-icon.c       2021-07-12 19:45:12.531888500 
+0200
+++ new/gnome-shell-40.4/src/st/st-icon.c       2021-08-18 01:19:40.761349700 
+0200
@@ -456,12 +456,12 @@
       return;
     }
 
-  resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (icon));
-
   theme_node = st_widget_peek_theme_node (ST_WIDGET (icon));
   if (theme_node == NULL)
     return;
 
+  resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (icon));
+
   stage = clutter_actor_get_stage (CLUTTER_ACTOR (icon));
   context = st_theme_context_get_for_stage (CLUTTER_STAGE (stage));
   g_object_get (context, "scale-factor", &paint_scale, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/src/st/st-scroll-bar.c 
new/gnome-shell-40.4/src/st/st-scroll-bar.c
--- old/gnome-shell-40.3/src/st/st-scroll-bar.c 2021-07-12 19:45:12.533888300 
+0200
+++ new/gnome-shell-40.4/src/st/st-scroll-bar.c 2021-08-18 01:19:40.762349600 
+0200
@@ -200,23 +200,11 @@
 
   st_theme_node_get_content_box (theme_node, box, &content_box);
 
-  if (priv->vertical)
-    {
-      trough_box.x1 = content_box.x1;
-      trough_box.y1 = content_box.y1;
-      trough_box.x2 = content_box.x2;
-      trough_box.y2 = content_box.y2;
-      clutter_actor_allocate (priv->trough, &trough_box);
-    }
-  else
-    {
-      trough_box.x1 = content_box.x1;
-      trough_box.y1 = content_box.y1;
-      trough_box.x2 = content_box.x2;
-      trough_box.y2 = content_box.y2;
-      clutter_actor_allocate (priv->trough, &trough_box);
-    }
-
+  trough_box.x1 = content_box.x1;
+  trough_box.y1 = content_box.y1;
+  trough_box.x2 = content_box.x2;
+  trough_box.y2 = content_box.y2;
+  clutter_actor_allocate (priv->trough, &trough_box);
 
   if (priv->adjustment)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-shell-40.3/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
 
new/gnome-shell-40.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
--- 
old/gnome-shell-40.3/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
  2021-07-12 19:45:12.546888000 +0200
+++ 
new/gnome-shell-40.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
  2021-08-18 01:19:40.768349600 +0200
@@ -39,6 +39,7 @@
   </description>
 
   <releases>
+    <release version="40.4" date="2021-08-18"/>
     <release version="40.3" date="2021-07-11"/>
     <release version="40.2" date="2021-05-14"/>
     <release version="40.1" date="2021-05-13"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-shell-40.3/subprojects/extensions-app/meson.build 
new/gnome-shell-40.4/subprojects/extensions-app/meson.build
--- old/gnome-shell-40.3/subprojects/extensions-app/meson.build 2021-07-12 
19:45:12.548888000 +0200
+++ new/gnome-shell-40.4/subprojects/extensions-app/meson.build 2021-08-18 
01:19:40.769349600 +0200
@@ -1,5 +1,5 @@
 project('gnome-extensions-app',
-  version: '40.3',
+  version: '40.4',
   meson_version: '>= 0.53.0',
   license: 'GPLv2+'
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-shell-40.3/subprojects/extensions-tool/meson.build 
new/gnome-shell-40.4/subprojects/extensions-tool/meson.build
--- old/gnome-shell-40.3/subprojects/extensions-tool/meson.build        
2021-07-12 19:45:12.549888000 +0200
+++ new/gnome-shell-40.4/subprojects/extensions-tool/meson.build        
2021-08-18 01:19:40.769349600 +0200
@@ -1,5 +1,5 @@
 project('gnome-extensions-tool', 'c',
-  version: '40.3',
+  version: '40.4',
   meson_version: '>= 0.53.0',
   license: 'GPLv2+'
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-shell-40.3/subprojects/shew/meson.build 
new/gnome-shell-40.4/subprojects/shew/meson.build
--- old/gnome-shell-40.3/subprojects/shew/meson.build   2021-07-12 
19:45:12.552888000 +0200
+++ new/gnome-shell-40.4/subprojects/shew/meson.build   2021-08-18 
01:19:40.771349700 +0200
@@ -1,5 +1,5 @@
 project('shew', 'c',
-  version: '40.3',
+  version: '40.4',
   meson_version: '>= 0.53.0',
   license: 'LGPLv2+',
 )

Reply via email to