rpms/gnome-screensaver/F-12 multihead-issues.patch, NONE, 1.1 gnome-screensaver.spec, 1.230, 1.231

Matthias Clasen mclasen at fedoraproject.org
Fri Oct 23 23:55:23 UTC 2009


Author: mclasen

Update of /cvs/pkgs/rpms/gnome-screensaver/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv14600

Modified Files:
	gnome-screensaver.spec 
Added Files:
	multihead-issues.patch 
Log Message:
fix multihead issues


multihead-issues.patch:
 gs-manager.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

--- NEW FILE multihead-issues.patch ---
diff -up gnome-screensaver-2.28.0/src/gs-manager.c.multihead-issues gnome-screensaver-2.28.0/src/gs-manager.c
--- gnome-screensaver-2.28.0/src/gs-manager.c.multihead-issues	2009-08-19 19:19:14.000000000 -0400
+++ gnome-screensaver-2.28.0/src/gs-manager.c	2009-10-23 19:48:08.306135389 -0400
@@ -1450,6 +1450,9 @@ gs_manager_create_window_for_monitor (GS
         connect_window_signals (manager, window);
 
         manager->priv->windows = g_slist_append (manager->priv->windows, window);
+
+	if (manager->priv->active && !manager->priv->fading)
+		gtk_widget_show (window);
 }
 
 static void
@@ -1471,21 +1474,25 @@ on_screen_monitors_changed (GdkScreen *s
         if (n_monitors > n_windows) {
                 /* add more windows */
                 for (i = n_windows; i < n_monitors; i++) {
-                        gs_manager_create_window_for_monitor (manager, screen, i - 1);
+                        gs_manager_create_window_for_monitor (manager, screen, i);
                 }
         } else {
                 /* remove the extra windows */
-                for (l = manager->priv->windows; l != NULL; l = l->next) {
+                l = manager->priv->windows; 
+                while (l != NULL) {
                         GdkScreen *this_screen;
                         int        this_monitor;
+                        GSList    *next = l->next;
 
                         this_screen = gs_window_get_screen (GS_WINDOW (l->data));
                         this_monitor = gs_window_get_monitor (GS_WINDOW (l->data));
                         if (this_screen == screen && this_monitor >= n_monitors) {
                                 manager_maybe_stop_job_for_window (manager, GS_WINDOW (l->data));
+				g_hash_table_remove (manager->priv->jobs, l->data);
                                 gs_window_destroy (GS_WINDOW (l->data));
                                 manager->priv->windows = g_slist_delete_link (manager->priv->windows, l);
                         }
+                        l = next;
                 }
         }
 }


Index: gnome-screensaver.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gnome-screensaver/F-12/gnome-screensaver.spec,v
retrieving revision 1.230
retrieving revision 1.231
diff -u -p -r1.230 -r1.231
--- gnome-screensaver.spec	22 Oct 2009 18:53:22 -0000	1.230
+++ gnome-screensaver.spec	23 Oct 2009 23:55:22 -0000	1.231
@@ -14,7 +14,7 @@
 Summary: GNOME Screensaver
 Name: gnome-screensaver
 Version: 2.28.0
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: GPLv2+
 Group: Amusements/Graphics
 Source0: http://download.gnome.org/sources/gnome-screensaver/2.28/%{name}-%{version}.tar.bz2
@@ -26,6 +26,7 @@ Patch2: gnome-screensaver-2.26.0-securit
 Patch7: gnome-screensaver-2.20.0-blank-by-default.patch
 Patch8: gnome-screensaver-2.20.0-selinux-permit.patch
 Patch9: xrandr-gamma.patch
+Patch10: multihead-issues.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 URL: http://www.gnome.org
@@ -79,6 +80,7 @@ simple, sane, secure defaults and be wel
 %patch7 -p1 -b .blank-by-default
 %patch8 -p1 -b .selinux-permit
 %patch9 -p1 -b .xrandr-gamma
+%patch10 -p1 -b .multihead-issues
 
 libtoolize --force --copy
 
@@ -153,6 +155,9 @@ fi
 %doc %{_mandir}/man1/*.1.gz
 
 %changelog
+* Fri Oct 23 2009 Matthias Clasen <mclasen at redhat.com> 2.28.0-4
+- Fix crashes and malfunctions in dynamic multihead situations
+
 * Thu Oct 22 2009 Matthias Clasen <mclasen at redhat.com> 2.28.0-3
 - Fix an oversight in the previous patch
 




More information about the scm-commits mailing list