Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package budgie-desktop for openSUSE:Factory 
checked in at 2021-02-18 20:40:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/budgie-desktop (Old)
 and      /work/SRC/openSUSE:Factory/.budgie-desktop.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "budgie-desktop"

Thu Feb 18 20:40:28 2021 rev:19 rq:873197 version:10.5.2+481e9bd2

Changes:
--------
--- /work/SRC/openSUSE:Factory/budgie-desktop/budgie-desktop.changes    
2021-02-11 12:52:59.905969035 +0100
+++ /work/SRC/openSUSE:Factory/.budgie-desktop.new.28504/budgie-desktop.changes 
2021-02-18 20:52:38.779452652 +0100
@@ -1,0 +2,9 @@
+Wed Feb 17 16:53:05 UTC 2021 - Callum Farmer <gm...@opensuse.org>
+
+- Add fullscreen-tracking.patch: fix tracking issues
+- Add GNOME-40.patch: support for GNOME 40
+- Tweaked dependencies on typelibs
+- Updated BuildRequires:
+  * pkgconfig(libmutter-6/7) >> pkgconfig(libmutter-6/7/8)
+
+-------------------------------------------------------------------

New:
----
  GNOME-40.patch
  fullscreen-tracking.patch

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

Other differences:
------------------
++++++ budgie-desktop.spec ++++++
--- /var/tmp/diff_new_pack.GJlLqq/_old  2021-02-18 20:52:39.491453320 +0100
+++ /var/tmp/diff_new_pack.GJlLqq/_new  2021-02-18 20:52:39.495453324 +0100
@@ -28,11 +28,13 @@
 Source:         %{name}-%{version}.tar.xz
 # PATCH-FIX-OPENSUSE: Create a clean separation between Budgie and GNOME 
desktops
 Patch:          desktop-override.patch
+Patch1:         fullscreen-tracking.patch
+Patch2:         GNOME-40.patch
 BuildRequires:  intltool
 BuildRequires:  meson
 BuildRequires:  pkgconfig
 BuildRequires:  sassc
-BuildRequires:  (pkgconfig(libmutter-6) or pkgconfig(libmutter-7))
+BuildRequires:  (pkgconfig(libmutter-6) or pkgconfig(libmutter-7) or 
pkgconfig(libmutter-8))
 BuildRequires:  pkgconfig(accountsservice)
 BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(gio-2.0)
@@ -60,8 +62,6 @@
 Requires:       gnome-session-core
 Requires:       gnome-settings-daemon
 Requires:       ibus
-Requires:       typelib-1_0-Budgie-1_0
-Requires:       typelib-1_0-PeasGtk-1_0
 Recommends:     gnome-software
 Recommends:     NetworkManager-applet
 Recommends:     gnome-backgrounds
@@ -74,6 +74,7 @@
 Summary:        Introspection bindings for the Budgie Desktop
 Group:          System/Libraries 
 Requires:       %{name} = %{version}-%{release}
+Requires:       typelib(PeasGtk) = 1.0
 
 %description -n typelib-1_0-Budgie-1_0
 This package provides GObject Introspection files required for
@@ -84,7 +85,7 @@
 Summary:        Development files for the Budgie Desktop
 Group:          Development/Libraries/GNOME
 Requires:       %{name} = %{version}-%{release}
-Requires:       typelib-1_0-Budgie-1_0 = %{version}-%{release}
+Requires:       typelib(Budgie) = 1.0
 
 %description devel
 This package provides development files required for software to be

++++++ GNOME-40.patch ++++++
++++ 11259 lines (skipped)

++++++ fullscreen-tracking.patch ++++++
>From e14a4bcfbe5008db5b98eb4eac395e4c1643dbf7 Mon Sep 17 00:00:00 2001
From: Campbell Jones <g...@serebit.com>
Date: Thu, 4 Feb 2021 15:50:34 -0500
Subject: [PATCH] Resolve issues with fullscreen tracking

---
 src/abomination/abomination.vala | 36 ++++++++++++++++++++------------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/src/abomination/abomination.vala b/src/abomination/abomination.vala
index 04b9ebf6..409be27e 100644
--- a/src/abomination/abomination.vala
+++ b/src/abomination/abomination.vala
@@ -151,16 +151,11 @@ namespace Budgie {
                                rename_group(old_class_name, new_class); // 
Rename the class
                        });
 
-                       app.window.state_changed.connect((changed, new_state) 
=> {
-                               if (Wnck.WindowState.FULLSCREEN in changed) {
-                                       if (Wnck.WindowState.FULLSCREEN in 
new_state) {
-                                               
fullscreen_windows.insert(app.window.get_name(), app.window); // Add to 
fullscreen_windows
-                                       } else {
-                                               
fullscreen_windows.steal(app.window.get_name()); // Remove from 
fullscreen_windows
-                                       }
+                       track_window_fullscreen_state(app.window, 
app.window.get_state());
 
-                                       toggle_night_light(); // Ensure we 
toggle Night Light if needed
-                                       set_notifications_paused(); // Ensure 
we pause notifications if needed
+                       app.window.state_changed.connect((changed, new_state) 
=> {
+                               if (Wnck.WindowState.FULLSCREEN in changed || 
Wnck.WindowState.MINIMIZED in changed) {
+                                       
track_window_fullscreen_state(app.window, new_state);
                                }
                        });
                }
@@ -191,10 +186,7 @@ namespace Budgie {
 
                        running_apps_id.steal(id); // Remove from 
running_apps_id
 
-                       if (fullscreen_windows.contains(window.get_name())) { 
// Window was fullscreened at some point
-                               fullscreen_windows.steal(window.get_name()); // 
Remove from fullscreen window if it was there in the first place
-                               toggle_night_light(); // Toggle night light if 
necessary
-                       }
+                       track_window_fullscreen_state(window, null); // Remove 
from fullscreen_windows and toggle state if necessary
 
                        if (app != null) { // App is defined
                                Array<AbominationRunningApp> group_apps = 
running_apps.get(app.group); // Get apps based on group name
@@ -268,6 +260,24 @@ namespace Budgie {
                        }
                }
 
+               /**
+                * Adds and removes windows from fullscreen_windows depending 
on their state.
+                * Additionally, toggles night light and notification pausing 
as necessary if either are enabled.
+                */
+               public void track_window_fullscreen_state(Wnck.Window window, 
Wnck.WindowState? state) {
+                       string window_name = window.get_name();
+
+                       // only add a fullscreen window if it isn't currently 
minimized
+                       if (state != null && Wnck.WindowState.FULLSCREEN in 
state && !(Wnck.WindowState.MINIMIZED in state)) {
+                               fullscreen_windows.insert(window_name, window); 
// Add to fullscreen_windows
+                       } else if (window_name in fullscreen_windows) {
+                               fullscreen_windows.steal(window_name); // 
Remove from fullscreen_windows
+                       }
+
+                       toggle_night_light(); // Ensure we toggle Night Light 
if needed
+                       set_notifications_paused(); // Ensure we pause 
notifications if needed
+               }
+
                /**
                 * toggle_night_light will toggle the state of the night light 
depending on requested state
                 * If we're disabling, we'll check if there is any items in 
fullscreen_windows first

Reply via email to