diff --git a/gnome-screensaver-2.18.0-handle-overlapping-heads.patch b/gnome-screensaver-2.18.0-handle-overlapping-heads.patch new file mode 100644 index 0000000..b217cd8 --- /dev/null +++ b/gnome-screensaver-2.18.0-handle-overlapping-heads.patch @@ -0,0 +1,44 @@ +--- gnome-screensaver-2.18.0/src/gs-manager.c.handle-overlapping-heads 2007-05-16 18:47:52.000000000 -0400 ++++ gnome-screensaver-2.18.0/src/gs-manager.c 2007-05-16 19:23:45.000000000 -0400 +@@ -1065,6 +1065,32 @@ + g_signal_emit (manager, signals [AUTH_REQUEST_END], 0); + } + ++int ++find_monitor_with_top_window_at_point (GdkScreen *screen, ++ gint x, ++ gint y) ++{ ++ gint num_monitors, i; ++ ++ g_return_val_if_fail (GDK_IS_SCREEN (screen), -1); ++ ++ num_monitors = gdk_screen_get_n_monitors (screen); ++ ++ for (i = num_monitors - 1; i <= 0; i--) { ++ GdkRectangle monitor; ++ ++ gdk_screen_get_monitor_geometry (screen, i, &monitor); ++ ++ if (x >= monitor.x && ++ x < monitor.x + monitor.width && ++ y >= monitor.y && ++ y < (monitor.y + monitor.height)) ++ return i; ++ } ++ ++ return gdk_screen_get_monitor_at_point (screen, x, y); ++} ++ + static GSWindow * + find_window_at_pointer (GSManager *manager) + { +@@ -1078,7 +1104,7 @@ + + display = gdk_display_get_default (); + gdk_display_get_pointer (display, &screen, &x, &y, NULL); +- monitor = gdk_screen_get_monitor_at_point (screen, x, y); ++ monitor = find_monitor_with_top_window_at_point (screen, x, y); + screen_num = gdk_screen_get_number (screen); + + /* Find the gs-window that is on that screen */ diff --git a/gnome-screensaver.spec b/gnome-screensaver.spec index b7835b5..76cbe45 100644 --- a/gnome-screensaver.spec +++ b/gnome-screensaver.spec @@ -13,7 +13,7 @@ Summary: GNOME Screensaver Name: gnome-screensaver Version: 2.18.0 -Release: 8%{?dist} +Release: 9%{?dist} License: GPL Group: Amusements/Graphics Source0: http://ftp.gnome.org/pub/gnome/sources/gnome-screensaver/2.18/%{name}-%{version}.tar.bz2 @@ -29,6 +29,8 @@ Patch5: gnome-screensaver-2.18.0-power-preferences.patch # http://bugzilla.gnome.org/show_bug.cgi?id=428199 Patch6: gnome-screensaver-2.18.0-standard-flexi-server.patch +Patch7: gnome-screensaver-2.18.0-handle-overlapping-heads.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) URL: http://www.gnome.org BuildRequires: gtk2-devel => %{gtk2_version} @@ -74,6 +76,7 @@ simple, sane, secure defaults and be well integrated with the desktop. %patch4 -p1 -b .require-mouse-grab %patch5 -p1 -b .power-preferences %patch6 -p1 -b .standard-flexi-server +%patch7 -p1 -b .handle-overlapping-screens %build autoreconf @@ -130,6 +133,9 @@ fi %{_sysconfdir}/pam.d/* %changelog +* Wed May 16 2007 Ray Strode - 2.18.0-9 +- Try to workaround xrandr bug (bug 238961) + * Thu May 10 2007 Matthias Clasen - 2.18.0-8 - Drop the explicit file requires on the themed lock dialog, as it is provided by system-logos anyway