Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cinnamon-screensaver for openSUSE:Factory checked in at 2023-06-11 19:54:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cinnamon-screensaver (Old) and /work/SRC/openSUSE:Factory/.cinnamon-screensaver.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon-screensaver" Sun Jun 11 19:54:39 2023 rev:26 rq:1091839 version:5.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/cinnamon-screensaver/cinnamon-screensaver.changes 2023-01-21 19:11:25.225250233 +0100 +++ /work/SRC/openSUSE:Factory/.cinnamon-screensaver.new.15902/cinnamon-screensaver.changes 2023-06-11 19:57:27.987950728 +0200 @@ -1,0 +2,12 @@ +Fri Jun 2 21:09:25 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 5.8.0: + * Prioritize Playing Audio over other players. + * remove redundant parentheses + * utils.py: Add gdm3 to the switch user function. + * use Gio flags instead of ints + * stage: Multiply the stage window by the global scale. + * Fix stacking issue with the backup window. + * Add missing dependency on x11-util + +------------------------------------------------------------------- Old: ---- cinnamon-screensaver-5.6.3.tar.gz New: ---- cinnamon-screensaver-5.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cinnamon-screensaver.spec ++++++ --- /var/tmp/diff_new_pack.ogYMJ4/_old 2023-06-11 19:57:28.539954056 +0200 +++ /var/tmp/diff_new_pack.ogYMJ4/_new 2023-06-11 19:57:28.547954104 +0200 @@ -17,7 +17,7 @@ Name: cinnamon-screensaver -Version: 5.6.3 +Version: 5.8.0 Release: 0 Summary: Cinnamon screensaver and locker License: GPL-2.0-or-later ++++++ cinnamon-screensaver-5.6.3.tar.gz -> cinnamon-screensaver-5.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/.github/workflows/build.yml new/cinnamon-screensaver-5.8.0/.github/workflows/build.yml --- old/cinnamon-screensaver-5.6.3/.github/workflows/build.yml 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/.github/workflows/build.yml 2023-06-01 15:08:05.000000000 +0200 @@ -8,6 +8,12 @@ branches: - master workflow_dispatch: + inputs: + debug_enabled: + type: boolean + description: 'Start an SSH server on failure.' + required: false + default: false jobs: build: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/HACKING new/cinnamon-screensaver-5.8.0/HACKING --- old/cinnamon-screensaver-5.6.3/HACKING 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/HACKING 2023-06-01 15:08:05.000000000 +0200 @@ -4,7 +4,12 @@ Cinnamon-Screensaver is normally build using dpkg. If using Linux Mint, Ubuntu, or any other member of the Debian family, install the `devscripts` package with `sudo apt-get install devscripts`. - + +Other dependencies that may be needed to get it to build: + `sudo apt install dh-make dh-python gobject-introspection meson build-essential libgtk-3-dev libxdo-dev libgirepository1.0-dev` + + + Once you have devscripts, run `debuild -us -uc` to build cinnamon-screensaver (or any other cinnamon package) and `sudo dpkg -i ../cinnamon-screensaver_{version}_{arch}.deb` to install. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/backup-locker/cs-backup-locker.c new/cinnamon-screensaver-5.8.0/backup-locker/cs-backup-locker.c --- old/cinnamon-screensaver-5.6.3/backup-locker/cs-backup-locker.c 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/backup-locker/cs-backup-locker.c 2023-06-01 15:08:05.000000000 +0200 @@ -29,6 +29,7 @@ G_DECLARE_FINAL_TYPE (BackupWindow, backup_window, BACKUP, WINDOW, GtkWindow) static void setup_window_monitor (BackupWindow *window, gulong xid); +static void quit (BackupWindow *window); struct _BackupWindow { @@ -40,6 +41,7 @@ CsEventGrabber *grabber; gulong pretty_xid; + guint activate_idle_id; gboolean should_grab; }; @@ -97,15 +99,26 @@ gtk_widget_queue_resize (GTK_WIDGET (window)); } -static gboolean -paint_background (GtkWidget *widget, - cairo_t *cr, - gpointer user_data) +static void +set_active_background (BackupWindow *window, + gboolean active) { - cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 1.0); - cairo_paint (cr); + GtkStyleContext *context; + + context = gtk_widget_get_style_context (GTK_WIDGET (window)); - return FALSE; + if (active) + { + gtk_style_context_remove_class (context, "backup-dormant"); + gtk_style_context_add_class (context, "backup-active"); + } + else + { + gtk_style_context_remove_class (context, "backup-active"); + gtk_style_context_add_class (context, "backup-dormant"); + } + + gtk_widget_queue_draw (GTK_WIDGET (window)); } static void @@ -120,21 +133,45 @@ static void window_grab_broken (gpointer data); -static void -activate_backup_window (BackupWindow *window) +static gboolean +activate_backup_window_cb (BackupWindow *window) { g_debug ("Grabbing input"); - cs_event_grabber_move_to_window (window->grabber, - gtk_widget_get_window (GTK_WIDGET (window)), - gtk_widget_get_screen (GTK_WIDGET (window)), - FALSE); - g_signal_connect_swapped (window, "grab-broken-event", G_CALLBACK (window_grab_broken), window); + if (window->should_grab) + { + if (cs_event_grabber_grab_root (window->grabber, FALSE)) + { + guint32 user_time; + cs_event_grabber_move_to_window (window->grabber, + gtk_widget_get_window (GTK_WIDGET (window)), + gtk_widget_get_screen (GTK_WIDGET (window)), + FALSE); + g_signal_connect_swapped (window, "grab-broken-event", G_CALLBACK (window_grab_broken), window); - gtk_widget_show (window->info_box); - position_info_box (window); + set_active_background (window, TRUE); - window->should_grab = TRUE; + user_time = gdk_x11_display_get_user_time (gtk_widget_get_display (GTK_WIDGET (window))); + gdk_x11_window_set_user_time (gtk_widget_get_window (GTK_WIDGET (window)), user_time); + + gtk_widget_show (window->info_box); + position_info_box (window); + } + else + { + return G_SOURCE_CONTINUE; + } + } + + window->activate_idle_id = 0; + return G_SOURCE_REMOVE; +} + +static void +activate_backup_window (BackupWindow *window) +{ + g_clear_handle_id (&window->activate_idle_id, g_source_remove); + window->activate_idle_id = g_idle_add ((GSourceFunc) activate_backup_window_cb, window); } static void @@ -159,34 +196,51 @@ } } -static void -on_composited_changed (gpointer data) +static gboolean +update_for_compositing (gpointer data) { BackupWindow *window = BACKUP_WINDOW (data); + GdkVisual *visual; + visual = gdk_screen_get_rgba_visual (gdk_screen_get_default ()); + if (!visual) + { + g_critical ("Can't get RGBA visual to paint backup window"); + return FALSE; + } - g_debug ("Received composited-changed"); - - if (gtk_widget_get_realized (GTK_WIDGET (window))) + if (visual != NULL && gdk_screen_is_composited (gdk_screen_get_default ())) { gtk_widget_hide (GTK_WIDGET (window)); gtk_widget_unrealize (GTK_WIDGET (window)); + gtk_widget_set_visual (GTK_WIDGET (window), visual); gtk_widget_realize (GTK_WIDGET (window)); - if (window->should_grab) - { - guint32 user_time; - - user_time = gdk_x11_display_get_user_time (gtk_widget_get_display (GTK_WIDGET (window))); - gdk_x11_window_set_user_time (gtk_widget_get_window (GTK_WIDGET (window)), user_time); - } - gtk_widget_show (GTK_WIDGET (window)); } + g_debug ("update for compositing\n"); if (window->should_grab) { activate_backup_window (window); } + + return TRUE; +} + +static void +on_composited_changed (gpointer data) +{ + g_debug ("Received composited-changed"); + + g_return_if_fail (BACKUP_IS_WINDOW (data)); + + BackupWindow *window = BACKUP_WINDOW (data); + + if (!update_for_compositing (window)) + { + g_critical ("Error realizing backup-locker window - exiting"); + quit(window); + } } static void @@ -196,6 +250,7 @@ { backup_window_ungrab (window); + set_active_background (window, FALSE); setup_window_monitor (window, xwindow); } @@ -224,10 +279,6 @@ GtkWidget *widget; PangoAttrList *attrs; - gtk_window_set_decorated (GTK_WINDOW (window), FALSE); - gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE); - gtk_window_set_skip_pager_hint (GTK_WINDOW (window), TRUE); - gtk_widget_set_events (GTK_WIDGET (window), gtk_widget_get_events (GTK_WIDGET (window)) | GDK_POINTER_MOTION_MASK @@ -331,7 +382,6 @@ gtk_widget_set_halign (widget, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 6); - g_signal_connect (GTK_WIDGET (window), "draw", G_CALLBACK (paint_background), window); g_signal_connect_swapped (gdk_screen_get_default (), "composited-changed", G_CALLBACK (on_composited_changed), window); gtk_widget_show_all (box); @@ -380,20 +430,40 @@ backup_window_new (gulong pretty_xid) { BackupWindow *window; + GtkStyleContext *context; + GtkCssProvider *provider; GObject *result; result = g_object_new (BACKUP_TYPE_WINDOW, "type", GTK_WINDOW_POPUP, - "app-paintable", TRUE, NULL); window = BACKUP_WINDOW (result); + context = gtk_widget_get_style_context (GTK_WIDGET (window)); + gtk_style_context_remove_class (context, "background"); + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (provider, ".backup-dormant { background-color: transparent; }" + ".backup-active { background-color: black; }", -1, NULL); + gtk_style_context_add_provider (context, + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + set_active_background (window, FALSE); + window->event_filter = cs_gdk_event_filter_new (GTK_WIDGET (window), pretty_xid); g_signal_connect (window->event_filter, "xscreen-size", G_CALLBACK (root_window_size_changed), window); g_signal_connect (window->event_filter, "screensaver-window-changed", G_CALLBACK (screensaver_window_changed), window); window->pretty_xid = pretty_xid; + window->should_grab = FALSE; + + if (!update_for_compositing (window)) + { + return NULL; + } + + setup_window_monitor (BACKUP_WINDOW (window), window->pretty_xid); return GTK_WIDGET (result); } @@ -452,13 +522,19 @@ // The main process will kill us, or the user will have to. Either way, grab everything. if (!g_cancellable_is_cancelled (task_cancellable)) { - g_debug ("Screensaver window gone: 0x%lx (pretty_xid now 0x%lx)", xid, window->pretty_xid); g_mutex_lock (&pretty_xid_mutex); + g_debug ("Screensaver window gone: 0x%lx", xid); if (xid == window->pretty_xid) { + window->should_grab = TRUE; + window->pretty_xid = 0; activate_backup_window (window); } + else + { + g_debug ("Already have new screensaver window, not activating ourselves: 0x%lx", window->pretty_xid); + } g_mutex_unlock (&pretty_xid_mutex); } @@ -474,6 +550,8 @@ g_debug ("Beginning to monitor screensaver window 0x%lx", xid); g_mutex_lock (&pretty_xid_mutex); + + window->should_grab = FALSE; window->pretty_xid = xid; window_monitor_cancellable = g_cancellable_new (); @@ -487,18 +565,24 @@ g_mutex_unlock (&pretty_xid_mutex); } +static void +quit (BackupWindow *window) +{ + g_clear_handle_id (&sigterm_src_id, g_source_remove); + g_cancellable_cancel (window_monitor_cancellable); + + gtk_widget_destroy (GTK_WIDGET (window)); + gtk_main_quit (); +} + static gboolean sigterm_received (gpointer data) { g_debug("SIGTERM received, cleaning up."); - GtkWidget *window = GTK_WIDGET (data); + g_return_val_if_fail (BACKUP_IS_WINDOW (data), G_SOURCE_REMOVE); - g_clear_handle_id (&sigterm_src_id, g_source_remove); - g_cancellable_cancel (window_monitor_cancellable); - - gtk_widget_destroy (window); - gtk_main_quit (); + quit (BACKUP_WINDOW (data)); return G_SOURCE_REMOVE; } @@ -561,10 +645,13 @@ window = backup_window_new (xid); - sigterm_src_id = g_unix_signal_add (SIGTERM, (GSourceFunc) sigterm_received, window); - setup_window_monitor (BACKUP_WINDOW (window), xid); + if (window == NULL) + { + g_critical ("No backup window"); + exit(1); + } - gtk_widget_show (window); + sigterm_src_id = g_unix_signal_add (SIGTERM, (GSourceFunc) sigterm_received, window); gtk_main (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/debian/changelog new/cinnamon-screensaver-5.8.0/debian/changelog --- old/cinnamon-screensaver-5.6.3/debian/changelog 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/debian/changelog 2023-06-01 15:08:05.000000000 +0200 @@ -1,3 +1,25 @@ +cinnamon-screensaver (5.8.0) victoria; urgency=medium + + [ IMarvinTPA ] + * Prioritize Playing Audio over other players. (#428) + + [ hduelme ] + * remove redundant parentheses (#427) + + [ Michael Webster ] + * utils.py: Add gdm3 to the switch user function. + + [ hduelme ] + * use Gio flags instead of ints (#432) + + [ Michael Webster ] + * github workflow: Add optional ssh session. + * stage: Multiply the stage window by the global scale. + * Fix stacking issue with the backup window. + * Add missing dependency on x11-util + + -- Clement Lefebvre <r...@linuxmint.com> Thu, 01 Jun 2023 14:07:33 +0100 + cinnamon-screensaver (5.6.3) vera; urgency=medium [ Michael Webster ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/debian/control new/cinnamon-screensaver-5.8.0/debian/control --- old/cinnamon-screensaver-5.6.3/debian/control 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/debian/control 2023-06-01 15:08:05.000000000 +0200 @@ -40,6 +40,7 @@ python3-setproctitle, python3-xapp (>= 1.0.1), python3-xlib, + x11-utils, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/libcscreensaver/cs-gdk-event-filter-x11.c new/cinnamon-screensaver-5.8.0/libcscreensaver/cs-gdk-event-filter-x11.c --- old/cinnamon-screensaver-5.6.3/libcscreensaver/cs-gdk-event-filter-x11.c 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/libcscreensaver/cs-gdk-event-filter-x11.c 2023-06-01 15:08:05.000000000 +0200 @@ -147,19 +147,6 @@ XRaiseWindow(GDK_DISPLAY_XDISPLAY (filter->display), filter->my_xid); } - else - { - g_debug ("BackupWindow received %s from screensaver window (0x%lx), restacking us below it.", - event_type, - event_window); - - Window windows[] = { - filter->pretty_xid, - filter->my_xid - }; - - XRestackWindows (GDK_DISPLAY_XDISPLAY (filter->display), windows, 2); - } } else { @@ -294,24 +281,6 @@ #endif } -static void -disable_unredirection (CsGdkEventFilter *filter) -{ - GdkWindow *gdk_window; - guchar _NET_WM_BYPASS_COMPOSITOR_HINT_OFF = 2; - - gdk_window = gtk_widget_get_window (filter->managed_window); - - gdk_x11_display_error_trap_push (filter->display); - - XChangeProperty (GDK_DISPLAY_XDISPLAY (filter->display), GDK_WINDOW_XID (gdk_window), - XInternAtom (GDK_DISPLAY_XDISPLAY (filter->display), "_NET_WM_BYPASS_COMPOSITOR", TRUE), - XA_CARDINAL, 32, PropModeReplace, &_NET_WM_BYPASS_COMPOSITOR_HINT_OFF, 1); - XFlush (GDK_DISPLAY_XDISPLAY (filter->display)); - - gdk_x11_display_error_trap_pop_ignored (filter->display); -} - static GdkFilterReturn xevent_filter (GdkXEvent *xevent, GdkEvent *event, @@ -383,11 +352,6 @@ select_popup_events (filter); select_shape_events (filter); - if (fractional_scaling) - { - disable_unredirection (filter); - } - if (debug) { g_log_set_handler ("Cvc", G_LOG_LEVEL_DEBUG, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/libcscreensaver/cs-screen-x11.c new/cinnamon-screensaver-5.8.0/libcscreensaver/cs-screen-x11.c --- old/cinnamon-screensaver-5.6.3/libcscreensaver/cs-screen-x11.c 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/libcscreensaver/cs-screen-x11.c 2023-06-01 15:08:05.000000000 +0200 @@ -891,3 +891,28 @@ { XResetScreenSaver (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); } + +/** + * cs_screen_get_global_scale: + * + * Retrieves the global scale factor from the GdkScreen. + * + */ +gint +cs_screen_get_global_scale (void) +{ + GdkScreen *gdkscreen; + GValue value = G_VALUE_INIT; + gint window_scale = 1; + + gdkscreen = gdk_screen_get_default (); + + g_value_init (&value, G_TYPE_INT); + + if (gdk_screen_get_setting (gdkscreen, "gdk-window-scaling-factor", &value)) + { + window_scale = g_value_get_int (&value); + } + + return window_scale; +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/libcscreensaver/cs-screen.h new/cinnamon-screensaver-5.8.0/libcscreensaver/cs-screen.h --- old/cinnamon-screensaver-5.6.3/libcscreensaver/cs-screen.h 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/libcscreensaver/cs-screen.h 2023-06-01 15:08:05.000000000 +0200 @@ -84,6 +84,8 @@ void cs_screen_reset_screensaver (void); +gint cs_screen_get_global_scale (void); + G_END_DECLS #endif /* __CS_SCREEN_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/meson.build new/cinnamon-screensaver-5.8.0/meson.build --- old/cinnamon-screensaver-5.6.3/meson.build 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/meson.build 2023-06-01 15:08:05.000000000 +0200 @@ -1,4 +1,4 @@ -project('cinnamon-screensaver', 'c', version: '5.6.3', meson_version: '>=0.46.0') +project('cinnamon-screensaver', 'c', version: '5.8.0', meson_version: '>=0.46.0') cc = meson.get_compiler('c') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/cinnamon-screensaver-command.py new/cinnamon-screensaver-5.8.0/src/cinnamon-screensaver-command.py --- old/cinnamon-screensaver-5.6.3/src/cinnamon-screensaver-command.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/cinnamon-screensaver-command.py 2023-06-01 15:08:05.000000000 +0200 @@ -60,7 +60,7 @@ quit() if args.action_id == Action.VERSION: - print("cinnamon-screensaver %s" % (config.VERSION)) + print("cinnamon-screensaver %s" % config.VERSION) quit() self.action_id = args.action_id diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/cinnamon-screensaver-main.py new/cinnamon-screensaver-5.8.0/src/cinnamon-screensaver-main.py --- old/cinnamon-screensaver-5.6.3/src/cinnamon-screensaver-main.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/cinnamon-screensaver-main.py 2023-06-01 15:08:05.000000000 +0200 @@ -64,7 +64,7 @@ quit() if args.version: - print("cinnamon-screensaver %s" % (config.VERSION)) + print("cinnamon-screensaver %s" % config.VERSION) quit() status.LockEnabled = not args.lock_disabled diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/clock.py new/cinnamon-screensaver-5.8.0/src/clock.py --- old/cinnamon-screensaver-5.6.3/src/clock.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/clock.py 2023-06-01 15:08:05.000000000 +0200 @@ -66,7 +66,7 @@ self.on_clock_changed) tz = Gio.File.new_for_path(path="/etc/localtime") - self.tz_monitor = tz.monitor_file(0, None) + self.tz_monitor = tz.monitor_file(Gio.FileMonitorFlags.NONE, None) trackers.con_tracker_get().connect(self.tz_monitor, "changed", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/dbusdepot/mediaPlayerWatcher.py new/cinnamon-screensaver-5.8.0/src/dbusdepot/mediaPlayerWatcher.py --- old/cinnamon-screensaver-5.6.3/src/dbusdepot/mediaPlayerWatcher.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/dbusdepot/mediaPlayerWatcher.py 2023-06-01 15:08:05.000000000 +0200 @@ -260,19 +260,22 @@ def get_best_player(self): """ - Find the first player in our list that is either playing, or - *can* be played. Players that are simply loaded but don't have - any playlist queued up should not pass these tests - we have only - limited control from the lockscreen. + Find the first player in our list that is playing, then for one + that *can* be played. Players that are simply loaded but don't + have any playlist queued up should not pass these tests - we have + only limited control from the lockscreen. """ + + first_idle = None + for client in self.player_clients: if client.get_playback_status() == PlaybackStatus.Playing: return client - if client.get_can_play_pause() and client.get_can_control(): - return client + if first_idle is None and client.get_can_play_pause() and client.get_can_control(): + first_idle = client - return None + return first_idle def get_all_player_names(self): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/osk.py new/cinnamon-screensaver-5.8.0/src/osk.py --- old/cinnamon-screensaver-5.6.3/src/osk.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/osk.py 2023-06-01 15:08:05.000000000 +0200 @@ -267,7 +267,7 @@ if right_box.get_children(): row.pack_end(right_box, True, True, 0) - key_width = (self.max_width / (num_keys )) - (DEFAULT_PADDING * 2) + key_width = (self.max_width / num_keys) - (DEFAULT_PADDING * 2) key_height = row_height - (DEFAULT_PADDING * 2) for child in row_children: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/stage.py new/cinnamon-screensaver-5.8.0/src/stage.py --- old/cinnamon-screensaver-5.6.3/src/stage.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/stage.py 2023-06-01 15:08:05.000000000 +0200 @@ -748,6 +748,10 @@ else: self.rect = status.screen.get_screen_geometry() + scale = status.screen.get_global_scale() + self.rect.width *= scale + self.rect.height *= scale + DEBUG("Stage.update_geometry - new backdrop position: %d, %d new size: %d x %d" % (self.rect.x, self.rect.y, self.rect.width, self.rect.height)) hints = Gdk.Geometry() @@ -875,7 +879,7 @@ the unlock dialog, reduce our available region width to accomodate it, reducing the allocation for the floating widgets as required. """ - if (unlock_nw > region_w): + if unlock_nw > region_w: region_w = (monitor_rect.width - unlock_nw) / 2 region_h = monitor_rect.height diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/util/keybindings.py new/cinnamon-screensaver-5.8.0/src/util/keybindings.py --- old/cinnamon-screensaver-5.6.3/src/util/keybindings.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/util/keybindings.py 2023-06-01 15:08:05.000000000 +0200 @@ -108,7 +108,7 @@ return True if status.Awake: - if (event.keyval in (Gdk.KEY_Tab, Gdk.KEY_ISO_Left_Tab)): + if event.keyval in (Gdk.KEY_Tab, Gdk.KEY_ISO_Left_Tab): if event.keyval == Gdk.KEY_ISO_Left_Tab: self.manager.propagate_tab_event(True) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/util/settings.py new/cinnamon-screensaver-5.8.0/src/util/settings.py --- old/cinnamon-screensaver-5.6.3/src/util/settings.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/util/settings.py 2023-06-01 15:08:05.000000000 +0200 @@ -149,4 +149,4 @@ return osk_settings.get_string(OSK_TYPE) def get_osk_a11y_active(): - return (a11y_settings.get_boolean(OSK_A11Y_ENABLED) and osk_settings.get_string(OSK_ACTIVATION) == 'accessible') \ No newline at end of file + return a11y_settings.get_boolean(OSK_A11Y_ENABLED) and osk_settings.get_string(OSK_ACTIVATION) == 'accessible' \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/util/utils.py new/cinnamon-screensaver-5.8.0/src/util/utils.py --- old/cinnamon-screensaver-5.6.3/src/util/utils.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/util/utils.py 2023-06-01 15:08:05.000000000 +0200 @@ -93,14 +93,20 @@ command = "%s %s" % ("mdmflexiserver", "--startnew Standard") ctx = Gdk.Display.get_default().get_app_launch_context() - app = Gio.AppInfo.create_from_commandline(command, "mdmflexiserver", 0) + app = Gio.AppInfo.create_from_commandline(command, "mdmflexiserver", Gio.AppInfoCreateFlags.NONE) if app: app.launch(None, ctx) elif process_is_running("gdm"): command = "%s %s" % ("gdmflexiserver", "--startnew Standard") ctx = Gdk.Display.get_default().get_app_launch_context() - app = Gio.AppInfo.create_from_commandline(command, "gdmflexiserver", 0) + app = Gio.AppInfo.create_from_commandline(command, "gdmflexiserver", Gio.AppInfoCreateFlags.NONE) + if app: + app.launch(None, ctx) + elif process_is_running("gdm3"): + ctx = Gdk.Display.get_default().get_app_launch_context() + + app = Gio.AppInfo.create_from_commandline("gdmflexiserver", None, Gio.AppInfoCreateFlags.NONE) if app: app.launch(None, ctx) elif os.getenv("XDG_SEAT_PATH") is not None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-screensaver-5.6.3/src/widgets/marqueeLabel.py new/cinnamon-screensaver-5.8.0/src/widgets/marqueeLabel.py --- old/cinnamon-screensaver-5.6.3/src/widgets/marqueeLabel.py 2023-01-07 16:56:40.000000000 +0100 +++ new/cinnamon-screensaver-5.8.0/src/widgets/marqueeLabel.py 2023-06-01 15:08:05.000000000 +0200 @@ -16,7 +16,7 @@ self.set_shadow_type(Gtk.ShadowType.NONE) def do_get_preferred_width(self): - return (400, 400) + return 400, 400 class MarqueeLabel(Gtk.Stack): """