diff --git a/cinnamon-screensaver.spec b/cinnamon-screensaver.spec index 93fb0c3..64b3d38 100644 --- a/cinnamon-screensaver.spec +++ b/cinnamon-screensaver.spec @@ -7,7 +7,7 @@ Summary: Cinnamon Screensaver Name: cinnamon-screensaver Version: 2.2.0 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ URL: http://cinnamon.linuxmint.com @@ -18,7 +18,7 @@ URL: http://cinnamon.linuxmint.com Source0: http://leigh123linux.fedorapeople.org/pub/cinnamon-screensaver/source/%{name}-%{version}.tar.gz Patch0: cinnamon-screensaver-2.20.0-selinux-permit.patch - +Patch1: dont_clear_window.patch BuildRequires: pkgconfig(dbus-glib-1) >= %{dbus_glib_version} BuildRequires: pkgconfig(cinnamon-desktop) @@ -50,6 +50,7 @@ cinnamon-screensaver is a screen saver and locker. %prep %setup -q %patch0 -p1 +%patch1 -p1 echo "ACLOCAL_AMFLAGS = -I m4" >> Makefile.am echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.ac @@ -79,6 +80,9 @@ desktop-file-install \ %{_mandir}/man1/cinnamon-screensaver*.1.* %changelog +* Thu Apr 24 2014 Leigh Scott - 2.2.0-2 +- don't clear the window on every draw, just do it on realized + * Sat Apr 12 2014 Leigh Scott - 2.2.0-1 - update to 2.2.0 diff --git a/dont_clear_window.patch b/dont_clear_window.patch new file mode 100644 index 0000000..3a660ab --- /dev/null +++ b/dont_clear_window.patch @@ -0,0 +1,46 @@ +--- a/src/gs-window-x11.c ++++ b/src/gs-window-x11.c +@@ -2132,7 +2132,6 @@ on_clock_changed (GnomeWallClock *clock, + update_clock (GS_WINDOW (user_data)); + } + +- + static gboolean + shade_background (GtkWidget *widget, + cairo_t *cr, +@@ -2140,11 +2139,16 @@ shade_background (GtkWidget *widget, + { + cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.7); + cairo_paint (cr); +- gs_window_clear_to_background_surface (window); +- + return FALSE; + } + ++static void ++on_realized (GtkWidget *widget, GSWindow *window) ++{ ++ gs_window_clear_to_background_surface (window); ++ gtk_widget_queue_draw (widget); ++} ++ + void + gs_window_set_away_message (GSWindow *window, + const char *message) +@@ -2241,9 +2245,14 @@ gs_window_init (GSWindow *window) + gtk_widget_set_halign (grid, GTK_ALIGN_CENTER); + gtk_widget_set_hexpand (grid, TRUE); + gtk_widget_set_vexpand (grid, TRUE); +- ++ ++ g_signal_connect (main_box, ++ "realize", ++ G_CALLBACK (on_realized), ++ window); ++ + g_signal_connect (main_box, "draw", G_CALLBACK (shade_background), window); +- ++ + create_info_bar (window); + } +