Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xfce4-screensaver for 
openSUSE:Factory checked in at 2023-05-01 18:51:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-screensaver (Old)
 and      /work/SRC/openSUSE:Factory/.xfce4-screensaver.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xfce4-screensaver"

Mon May  1 18:51:34 2023 rev:14 rq:1083856 version:4.18.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-screensaver/xfce4-screensaver.changes      
2023-03-28 17:49:20.898969932 +0200
+++ 
/work/SRC/openSUSE:Factory/.xfce4-screensaver.new.1533/xfce4-screensaver.changes
    2023-05-01 18:51:34.941498088 +0200
@@ -1,0 +2,6 @@
+Mon May  1 06:54:43 UTC 2023 - Takashi Iwai <[email protected]>
+
+- Fix hang up with efifb / nomodeset (bsc#1210562):
+  xfce4-screensaver-manager-efifb-lockup-fix.patch
+
+-------------------------------------------------------------------

New:
----
  xfce4-screensaver-manager-efifb-lockup-fix.patch

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

Other differences:
------------------
++++++ xfce4-screensaver.spec ++++++
--- /var/tmp/diff_new_pack.4FHM02/_old  2023-05-01 18:51:35.517501508 +0200
+++ /var/tmp/diff_new_pack.4FHM02/_new  2023-05-01 18:51:35.521501532 +0200
@@ -25,6 +25,8 @@
 Group:          System/GUI/XFCE
 URL:            https://docs.xfce.org/apps/xfce4-screensaver/start
 Source:         
https://archive.xfce.org/src/apps/xfce4-screensaver/4.18/%{name}-%{version}.tar.bz2
+# PATCH-FIX-UPSTREAM commit 3aa15c2278c1 bsc#1210562
+Patch1:         xfce4-screensaver-manager-efifb-lockup-fix.patch
 BuildRequires:  intltool
 BuildRequires:  pam-devel
 BuildRequires:  pkgconfig
@@ -61,7 +63,7 @@
 %lang_package
 
 %prep
-%autosetup
+%autosetup -p1
 
 %build
 %if %{with git}

++++++ xfce4-screensaver-manager-efifb-lockup-fix.patch ++++++
>From 3aa15c2278c12ead23ccbbd7923eab9b365e16a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <[email protected]>
Date: Sat, 29 Apr 2023 11:54:15 +0200
Subject: [PATCH] manager: Do not discard monitors without model and
 manufacturer

In the worst case it may be that the only available monitor does not
have these fields filled in (perhaps temporarily). More generally, these
fields may be null and should be handled as such. So if this should be a
problem at some level, another fix should be implemented, without
removing the monitor from the list.

Fixes: #44
Related: c44e54350c786497b3bf3835e079d39c39a4951e
---
 src/gs-manager.c | 55 ++++++------------------------------------------
 1 file changed, 6 insertions(+), 49 deletions(-)

diff --git a/src/gs-manager.c b/src/gs-manager.c
index b692192..5545dce 100644
--- a/src/gs-manager.c
+++ b/src/gs-manager.c
@@ -91,43 +91,12 @@ static void
 gs_manager_create_windows_for_display       (GSManager  *manager,
                                              GdkDisplay *display);
 
-static gboolean
-gs_manager_is_real_monitor (GdkMonitor *monitor) {
-    // avoiding some weird gdk bug
-    // federico> avb: or if you don't care about a little unexplained 
messiness,
-    //                just discard monitors where both fields are null? :)
-    if (gdk_monitor_get_manufacturer(monitor) == NULL && 
gdk_monitor_get_model(monitor) == NULL)
-        return FALSE;
-    return TRUE;
-}
-
-static int
-gs_manager_get_n_monitors (GdkDisplay *display) {
-    // Since gdk_display_get_n_monitors return wrong monitor count
-    // this is a workaround for the problem
-    int n_monitors;
-    int i, count = 0;
-
-    n_monitors = gdk_display_get_n_monitors (display);
-    for (i = 0; i < n_monitors; i++) {
-        GdkMonitor *monitor = gdk_display_get_monitor(display, i);
-        if (gs_manager_is_real_monitor (monitor))
-            count++;
-    }
-    return count;
-}
-
 static gint
 manager_get_monitor_index (GdkMonitor *this_monitor) {
-    GdkDisplay *display;
-    gint        idx;
-
-    if (!gs_manager_is_real_monitor (this_monitor))
-        return -1;
+    GdkDisplay *display = gdk_monitor_get_display (this_monitor);
+    gint n_monitors = gdk_display_get_n_monitors (display);
 
-    display = gdk_monitor_get_display (this_monitor);
-
-    for (idx = 0; idx < gdk_display_get_n_monitors (display); idx++) {
+    for (gint idx = 0; idx < n_monitors; idx++) {
         GdkMonitor *monitor = gdk_display_get_monitor (display, idx);
         if (monitor == this_monitor)
             return idx;
@@ -640,8 +609,7 @@ find_window_at_pointer (GSManager *manager) {
     monitor = gdk_display_get_monitor_at_point (display, x, y);
 
     /* Find the gs-window that is on that monitor */
-    if (gs_manager_is_real_monitor (monitor))
-        window = g_slist_nth (manager->priv->windows, 
manager_get_monitor_index (monitor));
+    window = g_slist_nth (manager->priv->windows, manager_get_monitor_index 
(monitor));
 
     if (window == NULL) {
         gs_debug ("WARNING: Could not find the GSWindow for display %s",
@@ -980,9 +948,6 @@ gs_manager_create_window_for_monitor (GSManager  *manager,
     GSWindow    *window;
     GdkRectangle rect;
 
-    if (!gs_manager_is_real_monitor (monitor))
-        return;
-
     if (g_slist_nth (manager->priv->windows, 
manager_get_monitor_index(monitor))) {
         gs_debug ("Found already created window for Monitor %d", 
manager_get_monitor_index(monitor));
         return;
@@ -1078,12 +1043,8 @@ static void
 on_display_monitor_added (GdkDisplay *display,
                           GdkMonitor *monitor,
                           GSManager  *manager) {
-    int         n_monitors;
-
-    n_monitors = gs_manager_get_n_monitors (display);
-
     gs_debug ("Monitor %s added on display %s, now there are %d",
-              gdk_monitor_get_model(monitor), gdk_display_get_name (display), 
n_monitors);
+              gdk_monitor_get_model(monitor), gdk_display_get_name (display), 
gdk_display_get_n_monitors (display));
 
     reconfigure_monitors (display, manager);
 }
@@ -1092,12 +1053,8 @@ static void
 on_display_monitor_removed (GdkDisplay *display,
                             GdkMonitor *monitor,
                             GSManager  *manager) {
-    int         n_monitors;
-
-    n_monitors = gs_manager_get_n_monitors (display);
-
     gs_debug ("Monitor %p removed on display %s, now there are %d",
-              monitor, gdk_display_get_name (display), n_monitors);
+              monitor, gdk_display_get_name (display), 
gdk_display_get_n_monitors (display));
 
     reconfigure_monitors (display, manager);
 }
-- 
GitLab

Reply via email to