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