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