diff --git a/0001-Add-an-API-to-show-a-message-on-the-locked-screen.patch b/0001-Add-an-API-to-show-a-message-on-the-locked-screen.patch deleted file mode 100644 index 70975c5..0000000 --- a/0001-Add-an-API-to-show-a-message-on-the-locked-screen.patch +++ /dev/null @@ -1,410 +0,0 @@ -From 370ae655619c8e0fbd8a092d7dc8dc6ad4ab1445 Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Mon, 2 Nov 2009 17:15:45 -0500 -Subject: [PATCH 1/3] Add an API to show a message on the locked screen - -Fixes https://bugzilla.gnome.org/show_bug.cgi?id=599258 ---- - src/gs-listener-dbus.c | 68 ++++++++++++++++++++++++++++++ - src/gs-listener-dbus.h | 4 ++ - src/gs-manager.c | 17 ++++++++ - src/gs-manager.h | 4 ++ - src/gs-marshal.list | 1 + - src/gs-monitor.c | 16 +++++++ - src/gs-window-x11.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++++ - src/gs-window.h | 4 ++ - 8 files changed, 221 insertions(+), 0 deletions(-) - -diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c -index 85a0328..e7690a5 100644 ---- a/src/gs-listener-dbus.c -+++ b/src/gs-listener-dbus.c -@@ -108,6 +108,7 @@ enum { - SIMULATE_USER_ACTIVITY, - ACTIVE_CHANGED, - THROTTLE_CHANGED, -+ SHOW_MESSAGE, - LAST_SIGNAL - }; - -@@ -1223,6 +1224,52 @@ listener_get_active_time (GSListener *listener, - } - - static DBusHandlerResult -+listener_show_message (GSListener *listener, -+ DBusConnection *connection, -+ DBusMessage *message) -+{ -+ DBusMessageIter iter; -+ DBusMessage *reply; -+ DBusError error; -+ -+ reply = dbus_message_new_method_return (message); -+ -+ dbus_message_iter_init_append (reply, &iter); -+ -+ if (reply == NULL) { -+ g_error ("No memory"); -+ } -+ -+ if (listener->priv->active) { -+ char *summary; -+ char *body; -+ char *icon; -+ -+ /* if we're not active we ignore the request */ -+ -+ dbus_error_init (&error); -+ if (! dbus_message_get_args (message, &error, -+ DBUS_TYPE_STRING, &summary, -+ DBUS_TYPE_STRING, &body, -+ DBUS_TYPE_STRING, &icon, -+ DBUS_TYPE_INVALID)) { -+ raise_syntax (connection, message, "ShowMessage"); -+ return DBUS_HANDLER_RESULT_HANDLED; -+ } -+ -+ g_signal_emit (listener, signals [SHOW_MESSAGE], 0, summary, body, icon); -+ } -+ -+ if (! dbus_connection_send (connection, reply, NULL)) { -+ g_error ("No memory"); -+ } -+ -+ dbus_message_unref (reply); -+ -+ return DBUS_HANDLER_RESULT_HANDLED; -+} -+ -+static DBusHandlerResult - do_introspect (DBusConnection *connection, - DBusMessage *message, - dbus_bool_t local_interface) -@@ -1278,6 +1325,11 @@ do_introspect (DBusConnection *connection, - " \n" - " \n" - " \n" -+ " \n" -+ " \n" -+ " \n" -+ " \n" -+ " \n" - " \n" - " \n" - " \n" -@@ -1362,6 +1414,9 @@ listener_dbus_handle_session_message (DBusConnection *connection, - if (dbus_message_is_method_call (message, GS_LISTENER_SERVICE, "GetActiveTime")) { - return listener_get_active_time (listener, connection, message); - } -+ if (dbus_message_is_method_call (message, GS_LISTENER_SERVICE, "ShowMessage")) { -+ return listener_show_message (listener, connection, message); -+ } - if (dbus_message_is_method_call (message, GS_LISTENER_SERVICE, "SimulateUserActivity")) { - g_signal_emit (listener, signals [SIMULATE_USER_ACTIVITY], 0); - return DBUS_HANDLER_RESULT_HANDLED; -@@ -1796,6 +1851,19 @@ gs_listener_class_init (GSListenerClass *klass) - G_TYPE_NONE, - 1, - G_TYPE_BOOLEAN); -+ signals [SHOW_MESSAGE] = -+ g_signal_new ("show-message", -+ G_TYPE_FROM_CLASS (object_class), -+ G_SIGNAL_RUN_LAST, -+ G_STRUCT_OFFSET (GSListenerClass, show_message), -+ NULL, -+ NULL, -+ gs_marshal_VOID__STRING_STRING_STRING, -+ G_TYPE_NONE, -+ 3, -+ G_TYPE_STRING, -+ G_TYPE_STRING, -+ G_TYPE_STRING); - - g_object_class_install_property (object_class, - PROP_ACTIVE, -diff --git a/src/gs-listener-dbus.h b/src/gs-listener-dbus.h -index a788e40..c57f367 100644 ---- a/src/gs-listener-dbus.h -+++ b/src/gs-listener-dbus.h -@@ -52,6 +52,10 @@ typedef struct - gboolean active); - void (* throttle_changed) (GSListener *listener, - gboolean throttled); -+ void (* show_message) (GSListener *listener, -+ const char *summary, -+ const char *body, -+ const char *icon); - - } GSListenerClass; - -diff --git a/src/gs-manager.c b/src/gs-manager.c -index bb0ddf6..1609f83 100644 ---- a/src/gs-manager.c -+++ b/src/gs-manager.c -@@ -1174,6 +1174,23 @@ find_window_at_pointer (GSManager *manager) - return window; - } - -+void -+gs_manager_show_message (GSManager *manager, -+ const char *summary, -+ const char *body, -+ const char *icon) -+{ -+ GSWindow *window; -+ -+ g_return_if_fail (GS_IS_MANAGER (manager)); -+ -+ /* Find the GSWindow that contains the pointer */ -+ window = find_window_at_pointer (manager); -+ gs_window_show_message (window, summary, body, icon); -+ -+ gs_manager_request_unlock (manager); -+} -+ - static gboolean - manager_maybe_grab_window (GSManager *manager, - GSWindow *window) -diff --git a/src/gs-manager.h b/src/gs-manager.h -index b0493ab..3a3e349 100644 ---- a/src/gs-manager.h -+++ b/src/gs-manager.h -@@ -95,6 +95,10 @@ void gs_manager_set_themes (GSManager *manager, - GSList *themes); - void gs_manager_set_mode (GSManager *manager, - GSSaverMode mode); -+void gs_manager_show_message (GSManager *manager, -+ const char *summary, -+ const char *body, -+ const char *icon); - gboolean gs_manager_request_unlock (GSManager *manager); - void gs_manager_cancel_unlock_request (GSManager *manager); - -diff --git a/src/gs-marshal.list b/src/gs-marshal.list -index 228ba92..9a4d620 100644 ---- a/src/gs-marshal.list -+++ b/src/gs-marshal.list -@@ -1,3 +1,4 @@ - BOOLEAN:VOID - BOOLEAN:INT - BOOLEAN:BOOLEAN -+VOID:STRING,STRING,STRING -diff --git a/src/gs-monitor.c b/src/gs-monitor.c -index 0fd4402..640ee74 100644 ---- a/src/gs-monitor.c -+++ b/src/gs-monitor.c -@@ -220,6 +220,19 @@ listener_cycle_cb (GSListener *listener, - gs_manager_cycle (monitor->priv->manager); - } - -+static void -+listener_show_message_cb (GSListener *listener, -+ const char *summary, -+ const char *body, -+ const char *icon, -+ GSMonitor *monitor) -+{ -+ gs_manager_show_message (monitor->priv->manager, -+ summary, -+ body, -+ icon); -+} -+ - static gboolean - listener_active_changed_cb (GSListener *listener, - gboolean active, -@@ -334,6 +347,7 @@ disconnect_listener_signals (GSMonitor *monitor) - g_signal_handlers_disconnect_by_func (monitor->priv->listener, listener_active_changed_cb, monitor); - g_signal_handlers_disconnect_by_func (monitor->priv->listener, listener_throttle_changed_cb, monitor); - g_signal_handlers_disconnect_by_func (monitor->priv->listener, listener_simulate_user_activity_cb, monitor); -+ g_signal_handlers_disconnect_by_func (monitor->priv->listener, listener_show_message_cb, monitor); - } - - static void -@@ -351,6 +365,8 @@ connect_listener_signals (GSMonitor *monitor) - G_CALLBACK (listener_throttle_changed_cb), monitor); - g_signal_connect (monitor->priv->listener, "simulate-user-activity", - G_CALLBACK (listener_simulate_user_activity_cb), monitor); -+ g_signal_connect (monitor->priv->listener, "show-message", -+ G_CALLBACK (listener_show_message_cb), monitor); - } - - static void -diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c -index 2a74e10..5e0ebe5 100644 ---- a/src/gs-window-x11.c -+++ b/src/gs-window-x11.c -@@ -52,6 +52,7 @@ enum { - }; - - #define MAX_QUEUED_EVENTS 16 -+#define INFO_BAR_SECONDS 30 - - #define GS_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GS_TYPE_WINDOW, GSWindowPrivate)) - -@@ -77,6 +78,8 @@ struct GSWindowPrivate - GtkWidget *lock_box; - GtkWidget *lock_socket; - GtkWidget *keyboard_socket; -+ GtkWidget *info_bar; -+ GtkWidget *info_content; - - GdkPixmap *background_pixmap; - -@@ -87,6 +90,7 @@ struct GSWindowPrivate - guint dialog_response_signal_id; - - guint watchdog_timer_id; -+ guint info_bar_timer_id; - - gint lock_pid; - gint lock_watch_id; -@@ -896,6 +900,96 @@ gs_window_real_show (GtkWidget *widget) - gdk_window_add_filter (NULL, (GdkFilterFunc)xevent_filter, window); - } - -+static void -+set_info_text_and_icon (GSWindow *window, -+ const char *icon_stock_id, -+ const char *primary_text, -+ const char *secondary_text) -+{ -+ GtkWidget *content_area; -+ GtkWidget *hbox_content; -+ GtkWidget *image; -+ GtkWidget *vbox; -+ gchar *primary_markup; -+ gchar *secondary_markup; -+ GtkWidget *primary_label; -+ GtkWidget *secondary_label; -+ -+ hbox_content = gtk_hbox_new (FALSE, 8); -+ gtk_widget_show (hbox_content); -+ -+ image = gtk_image_new_from_stock (icon_stock_id, GTK_ICON_SIZE_DIALOG); -+ gtk_widget_show (image); -+ gtk_box_pack_start (GTK_BOX (hbox_content), image, FALSE, FALSE, 0); -+ gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0); -+ -+ vbox = gtk_vbox_new (FALSE, 6); -+ gtk_widget_show (vbox); -+ gtk_box_pack_start (GTK_BOX (hbox_content), vbox, FALSE, FALSE, 0); -+ -+ primary_markup = g_strdup_printf ("%s", primary_text); -+ primary_label = gtk_label_new (primary_markup); -+ g_free (primary_markup); -+ gtk_widget_show (primary_label); -+ gtk_box_pack_start (GTK_BOX (vbox), primary_label, TRUE, TRUE, 0); -+ gtk_label_set_use_markup (GTK_LABEL (primary_label), TRUE); -+ gtk_label_set_line_wrap (GTK_LABEL (primary_label), TRUE); -+ gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5); -+ -+ if (secondary_text != NULL) { -+ secondary_markup = g_strdup_printf ("%s", -+ secondary_text); -+ secondary_label = gtk_label_new (secondary_markup); -+ g_free (secondary_markup); -+ gtk_widget_show (secondary_label); -+ gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0); -+ gtk_label_set_use_markup (GTK_LABEL (secondary_label), TRUE); -+ gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE); -+ gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5); -+ } -+ -+ /* remove old content */ -+ content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (window->priv->info_bar)); -+ if (window->priv->info_content != NULL) { -+ gtk_container_remove (GTK_CONTAINER (content_area), window->priv->info_content); -+ } -+ gtk_box_pack_start (GTK_BOX (content_area), -+ hbox_content, -+ TRUE, FALSE, 0); -+ window->priv->info_content = hbox_content; -+} -+ -+static gboolean -+info_bar_timeout (GSWindow *window) -+{ -+ window->priv->info_bar_timer_id = 0; -+ gtk_widget_hide (window->priv->info_bar); -+ return FALSE; -+} -+ -+void -+gs_window_show_message (GSWindow *window, -+ const char *summary, -+ const char *body, -+ const char *icon) -+{ -+ g_return_if_fail (GS_IS_WINDOW (window)); -+ -+ set_info_text_and_icon (window, -+ icon, -+ summary, -+ body); -+ gtk_widget_show (window->priv->info_bar); -+ -+ if (window->priv->info_bar_timer_id > 0) { -+ g_source_remove (window->priv->info_bar_timer_id); -+ } -+ -+ window->priv->info_bar_timer_id = g_timeout_add_seconds (INFO_BAR_SECONDS, -+ (GSourceFunc)info_bar_timeout, -+ window); -+} -+ - void - gs_window_show (GSWindow *window) - { -@@ -2218,6 +2312,14 @@ gs_window_class_init (GSWindowClass *klass) - } - - static void -+create_info_bar (GSWindow *window) -+{ -+ window->priv->info_bar = gtk_info_bar_new (); -+ gtk_widget_set_no_show_all (window->priv->info_bar, TRUE); -+ gtk_box_pack_end (GTK_BOX (window->priv->vbox), window->priv->info_bar, FALSE, FALSE, 0); -+} -+ -+static void - gs_window_init (GSWindow *window) - { - window->priv = GS_WINDOW_GET_PRIVATE (window); -@@ -2258,6 +2360,7 @@ gs_window_init (GSWindow *window) - window->priv->drawing_area = gtk_drawing_area_new (); - gtk_widget_show (window->priv->drawing_area); - gtk_box_pack_start (GTK_BOX (window->priv->vbox), window->priv->drawing_area, TRUE, TRUE, 0); -+ create_info_bar (window); - - force_no_pixmap_background (window->priv->drawing_area); - } -@@ -2290,6 +2393,10 @@ gs_window_finalize (GObject *object) - g_free (window->priv->logout_command); - g_free (window->priv->keyboard_command); - -+ if (window->priv->info_bar_timer_id > 0) { -+ g_source_remove (window->priv->info_bar_timer_id); -+ } -+ - remove_watchdog_timer (window); - remove_popup_dialog_idle (window); - -diff --git a/src/gs-window.h b/src/gs-window.h -index 6440a6d..fc2287e 100644 ---- a/src/gs-window.h -+++ b/src/gs-window.h -@@ -83,6 +83,10 @@ void gs_window_set_logout_command (GSWindow *window, - const char *command); - void gs_window_set_status_message (GSWindow *window, - const char *status_message); -+void gs_window_show_message (GSWindow *window, -+ const char *summary, -+ const char *body, -+ const char *icon); - - void gs_window_request_unlock (GSWindow *window); - void gs_window_cancel_unlock_request (GSWindow *window); --- -1.6.5.2 - diff --git a/0001-Disable-the-password-entry-when-using-non-password-a.patch b/0001-Disable-the-password-entry-when-using-non-password-a.patch deleted file mode 100644 index 8379ff3..0000000 --- a/0001-Disable-the-password-entry-when-using-non-password-a.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ce391d2167ab1f5a11ca457630cc3221ab1abc53 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Fri, 26 Jun 2009 14:44:26 +0100 -Subject: [PATCH] Disable the password entry when using non-password auth - -The code to hide the text entry when using a non-password authentication -was disabled, but no code replaced it, so the entry is still accessible -when using a fingerprint reader as auth. - -With help from Ray Strode ---- - src/gs-lock-plug.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/src/gs-lock-plug.c b/src/gs-lock-plug.c -index d31365a..0b36a7c 100644 ---- a/src/gs-lock-plug.c -+++ b/src/gs-lock-plug.c -@@ -1194,6 +1194,7 @@ gs_lock_plug_enable_prompt (GSLockPlug *plug, - gtk_label_set_text (GTK_LABEL (plug->priv->auth_prompt_label), message); - gtk_widget_show (plug->priv->auth_prompt_label); - gtk_entry_set_visibility (GTK_ENTRY (plug->priv->auth_prompt_entry), visible); -+ gtk_widget_set_sensitive (plug->priv->auth_prompt_entry, TRUE); - gtk_widget_show (plug->priv->auth_prompt_entry); - - if (! GTK_WIDGET_HAS_FOCUS (plug->priv->auth_prompt_entry)) { -@@ -1216,6 +1217,7 @@ gs_lock_plug_disable_prompt (GSLockPlug *plug) - /* gtk_widget_hide (plug->priv->auth_prompt_entry); */ - /* gtk_widget_hide (plug->priv->auth_prompt_label); */ - gtk_widget_set_sensitive (plug->priv->auth_unlock_button, FALSE); -+ gtk_widget_set_sensitive (plug->priv->auth_prompt_entry, FALSE); - /* gtk_widget_hide (plug->priv->auth_unlock_button); */ - - gtk_widget_grab_default (plug->priv->auth_cancel_button); --- -1.6.2.5 - diff --git a/ask-to-die.patch b/ask-to-die.patch deleted file mode 100644 index b7346f8..0000000 --- a/ask-to-die.patch +++ /dev/null @@ -1,115 +0,0 @@ -diff -Nur -x '*.orig' -x '*~' gnome-screensaver-2.28.0/src/gnome-screensaver-dialog.c gnome-screensaver-2.28.0.new/src/gnome-screensaver-dialog.c ---- gnome-screensaver-2.28.0/src/gnome-screensaver-dialog.c 2009-08-26 17:06:12.000000000 +0100 -+++ gnome-screensaver-2.28.0.new/src/gnome-screensaver-dialog.c 2009-10-18 22:00:14.563679981 +0100 -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -326,6 +327,21 @@ - } - - static gboolean -+response_request_quit (void) -+{ -+ printf ("REQUEST QUIT\n"); -+ fflush (stdout); -+ return FALSE; -+} -+ -+static gboolean -+quit_timeout_cb (gpointer data) -+{ -+ gtk_main_quit (); -+ return FALSE; -+} -+ -+static gboolean - auth_check_idle (GSLockPlug *plug) - { - gboolean res; -@@ -347,7 +363,11 @@ - } else { - gs_debug ("Authentication failed, quitting (max failures)"); - again = FALSE; -- gtk_main_quit (); -+ /* Don't quit immediately, but rather request that gnome-screensaver -+ * terminates us after it has finished the dialog shake. Time out -+ * after 5 seconds and quit anyway if this doesn't happen though */ -+ g_idle_add ((GSourceFunc)response_request_quit, NULL); -+ g_timeout_add (5000, (GSourceFunc)quit_timeout_cb, NULL); - } - } - -diff -Nur -x '*.orig' -x '*~' gnome-screensaver-2.28.0/src/gs-window-x11.c gnome-screensaver-2.28.0.new/src/gs-window-x11.c ---- gnome-screensaver-2.28.0/src/gs-window-x11.c 2009-10-18 21:53:27.913386916 +0100 -+++ gnome-screensaver-2.28.0.new/src/gs-window-x11.c 2009-10-18 21:53:28.835892015 +0100 -@@ -91,6 +91,8 @@ - gint lock_pid; - gint lock_watch_id; - gint dialog_response; -+ gboolean dialog_quit_requested; -+ gboolean dialog_shake_in_progress; - - gint keyboard_pid; - gint keyboard_watch_id; -@@ -1390,6 +1392,16 @@ - remove_key_events (window); - } - -+static void -+maybe_kill_dialog (GSWindow *window) -+{ -+ if (!window->priv->dialog_shake_in_progress -+ && window->priv->dialog_quit_requested -+ && window->priv->lock_pid > 0) { -+ kill (window->priv->lock_pid, SIGTERM); -+ } -+} -+ - /* very rudimentary animation for indicating an auth failure */ - static void - shake_dialog (GSWindow *window) -@@ -1398,6 +1410,8 @@ - guint left; - guint right; - -+ window->priv->dialog_shake_in_progress = TRUE; -+ - for (i = 0; i < 9; i++) { - if (i % 2 == 0) { - left = 30; -@@ -1422,6 +1436,9 @@ - - g_usleep (10000); - } -+ -+ window->priv->dialog_shake_in_progress = FALSE; -+ maybe_kill_dialog (window); - } - - static gboolean -@@ -1464,6 +1481,10 @@ - window->priv->dialog_response = DIALOG_RESPONSE_CANCEL; - } - finished = TRUE; -+ } else if (strstr (line, "REQUEST QUIT") != NULL) { -+ gs_debug ("Got request for quit"); -+ window->priv->dialog_quit_requested = TRUE; -+ maybe_kill_dialog (window); - } - break; - case G_IO_STATUS_EOF: -@@ -1577,6 +1598,9 @@ - - set_invisible_cursor (GTK_WIDGET (window)->window, FALSE); - -+ window->priv->dialog_quit_requested = FALSE; -+ window->priv->dialog_shake_in_progress = FALSE; -+ - result = spawn_on_window (window, - command->str, - &window->priv->lock_pid, diff --git a/button-images.patch b/button-images.patch deleted file mode 100644 index d38ee83..0000000 --- a/button-images.patch +++ /dev/null @@ -1,158 +0,0 @@ -diff -up gnome-screensaver-2.27.0/data/gnome-screensaver-preferences.ui.button-images gnome-screensaver-2.27.0/data/gnome-screensaver-preferences.ui ---- gnome-screensaver-2.27.0/data/gnome-screensaver-preferences.ui.button-images 2009-07-16 15:30:41.194368588 -0400 -+++ gnome-screensaver-2.27.0/data/gnome-screensaver-preferences.ui 2009-07-16 15:29:57.822583091 -0400 -@@ -1,6 +1,14 @@ - - - -+ -+ gtk-fullscreen -+ 4 -+ -+ -+ gtk-jump-to -+ 4 -+ - - 120 - 1 -@@ -55,66 +63,9 @@ - True - GTK_RELIEF_NORMAL - True -- -- -- True -- 0.5 -- 0.5 -- 0 -- 0 -- 0 -- 0 -- 0 -- 0 -- -- -- True -- False -- 2 -- -- -- True -- gtk-jump-to -- 4 -- 0.5 -- 0.5 -- 0 -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- True -- Power _Management -- True -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- -+ power_image -+ Power _Management -+ True - - - -@@ -244,66 +195,9 @@ - True - GTK_RELIEF_NORMAL - True -- -- -- True -- 0.5 -- 0.5 -- 0 -- 0 -- 0 -- 0 -- 0 -- 0 -- -- -- True -- False -- 2 -- -- -- True -- gtk-fullscreen -- 4 -- 0.5 -- 0.5 -- 0 -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- True -- _Preview -- True -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- -+ preview_image -+ _Preview -+ True - - - diff --git a/fix-gtkbuilder-conversion.patch b/fix-gtkbuilder-conversion.patch deleted file mode 100644 index b42f580..0000000 --- a/fix-gtkbuilder-conversion.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- gnome-screensaver-2.27.0/data/lock-dialog-default.ui 2009-08-24 00:27:51.169693536 -0400 -+++ hacked/data/lock-dialog-default.ui 2009-08-24 00:26:35.149714591 -0400 -@@ -1,22 +1,6 @@ - - - -- -- True -- window1 -- GTK_WINDOW_TOPLEVEL -- GTK_WIN_POS_NONE -- False -- True -- False -- True -- False -- False -- GDK_WINDOW_TYPE_HINT_NORMAL -- GDK_GRAVITY_NORTH_WEST -- True -- False -- - - True - 0 -@@ -518,6 +502,4 @@ - - - -- -- - ---- gnome-screensaver-2.27.0/src/gs-lock-plug.c 2009-08-24 00:27:51.178703972 -0400 -+++ hacked/src/gs-lock-plug.c 2009-08-24 00:15:20.646571022 -0400 -@@ -1658,8 +1658,8 @@ - - builder = gtk_builder_new(); - -- if (!gtk_builder_add_from_file (builder,filename ,&error)) { -- g_warning ("Couldn't load builder file: %s", error->message); -+ if (!gtk_builder_add_from_file (builder,gtkbuilder,&error)) { -+ g_warning ("Couldn't load builder file '%s': %s", gtkbuilder, error->message); - g_error_free(error); - g_free (gtkbuilder); - return FALSE; diff --git a/gnome-screensaver-2.25.2-xf86misc.patch b/gnome-screensaver-2.25.2-xf86misc.patch deleted file mode 100644 index 161f926..0000000 --- a/gnome-screensaver-2.25.2-xf86misc.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up gnome-screensaver-2.25.2/src/gs-grab-x11.c.jx gnome-screensaver-2.25.2/src/gs-grab-x11.c ---- gnome-screensaver-2.25.2/src/gs-grab-x11.c.jx 2008-11-13 15:06:55.000000000 -0500 -+++ gnome-screensaver-2.25.2/src/gs-grab-x11.c 2009-02-26 10:07:05.000000000 -0500 -@@ -118,7 +118,12 @@ static void - xorg_lock_smasher_set_active (GSGrab *grab, - gboolean active) - { -- int status; -+ int status, event, error; -+ -+ if (!XF86MiscQueryExtension (GDK_DISPLAY (), &event, &error)) { -+ gs_debug ("No XFree86-Misc extension present"); -+ return; -+ } - - if (active) { - gs_debug ("Enabling the x.org grab smasher"); diff --git a/gnome-screensaver-2.27.0-gamma.patch b/gnome-screensaver-2.27.0-gamma.patch deleted file mode 100644 index cb2080f..0000000 --- a/gnome-screensaver-2.27.0-gamma.patch +++ /dev/null @@ -1,94 +0,0 @@ -commit 1edd5817ac177e4f73ff8578746510abd3541390 -Author: Michel Dänzer -Date: Wed Aug 12 17:52:07 2009 -0400 - - Fix gamma fadeout when X reports 0-size gamma ramp (#581995) - -diff --git a/src/gs-fade.c b/src/gs-fade.c -index f591ab8..75595a7 100644 ---- a/src/gs-fade.c -+++ b/src/gs-fade.c -@@ -308,32 +308,15 @@ gamma_info_init (GSFade *fade) - */ - for (screen = 0; screen < fade->priv->num_screens; screen++) { - -- if (FADE_TYPE_GAMMA_NUMBER == fade->priv->fade_type) { -- /* only have gamma parameter, not ramps. */ -- -- res = XF86VidModeGetGamma (GDK_DISPLAY (), screen, &info [screen].vmg); -- if (! res) { -- goto FAIL; -- } -- gs_debug ("Initialized gamma fade for screen %d: %f %f %f", -- screen, -- info [screen].vmg.red, -- info [screen].vmg.green, -- info [screen].vmg.blue); -- } -- - # ifdef HAVE_XF86VMODE_GAMMA_RAMP - -- else if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) { -+ if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) { - /* have ramps */ - - res = XF86VidModeGetGammaRampSize (GDK_DISPLAY (), screen, &info [screen].size); -- if (! res) { -- goto FAIL; -- } -- -- if (info [screen].size <= 0) { -- goto FAIL; -+ if (! res || info [screen].size <= 0) { -+ fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ goto test_number; - } - - info [screen].r = g_new0 (unsigned short, info[screen].size); -@@ -341,7 +324,8 @@ gamma_info_init (GSFade *fade) - info [screen].b = g_new0 (unsigned short, info[screen].size); - - if (! (info [screen].r && info [screen].g && info [screen].b)) { -- goto FAIL; -+ fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ goto test_number; - } - - res = XF86VidModeGetGammaRamp (GDK_DISPLAY (), -@@ -351,15 +335,32 @@ gamma_info_init (GSFade *fade) - info [screen].g, - info [screen].b); - if (! res) { -- goto FAIL; -+ fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ goto test_number; - } - gs_debug ("Initialized gamma ramp fade"); - } - # endif /* HAVE_XF86VMODE_GAMMA_RAMP */ -- else if (FADE_TYPE_NONE == fade->priv->fade_type) { -+ -+ test_number: -+ if (FADE_TYPE_GAMMA_NUMBER == fade->priv->fade_type) { -+ /* only have gamma parameter, not ramps. */ -+ -+ res = XF86VidModeGetGamma (GDK_DISPLAY (), screen, &info [screen].vmg); -+ if (! res) { -+ fade->priv->fade_type = FADE_TYPE_NONE; -+ goto test_none; -+ } -+ gs_debug ("Initialized gamma fade for screen %d: %f %f %f", -+ screen, -+ info [screen].vmg.red, -+ info [screen].vmg.green, -+ info [screen].vmg.blue); -+ } -+ -+ test_none: -+ if (FADE_TYPE_NONE == fade->priv->fade_type) { - goto FAIL; -- } else { -- g_assert_not_reached (); - } - } - diff --git a/gnome-screensaver-idle-delay.patch b/gnome-screensaver-idle-delay.patch deleted file mode 100644 index 1fa5584..0000000 --- a/gnome-screensaver-idle-delay.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -up gnome-screensaver-2.26.0/src/gnome-screensaver-preferences.c.idle-delay gnome-screensaver-2.26.0/src/gnome-screensaver-preferences.c ---- gnome-screensaver-2.26.0/src/gnome-screensaver-preferences.c.idle-delay 2009-04-07 14:14:40.559089180 -0400 -+++ gnome-screensaver-2.26.0/src/gnome-screensaver-preferences.c 2009-04-07 14:15:09.653053621 -0400 -@@ -50,10 +50,11 @@ - #define KEY_LOCK_DISABLE GNOME_LOCKDOWN_DIR "/disable_lock_screen" - - #define KEY_DIR "/apps/gnome-screensaver" -+#define GNOME_SESSION_DIR "/desktop/gnome/session" - #define KEY_LOCK KEY_DIR "/lock_enabled" - #define KEY_IDLE_ACTIVATION_ENABLED KEY_DIR "/idle_activation_enabled" - #define KEY_MODE KEY_DIR "/mode" --#define KEY_ACTIVATE_DELAY KEY_DIR "/idle_delay" -+#define KEY_ACTIVATE_DELAY GNOME_SESSION_DIR "/idle_delay" - #define KEY_LOCK_DELAY KEY_DIR "/lock_delay" - #define KEY_CYCLE_DELAY KEY_DIR "/cycle_delay" - #define KEY_THEMES KEY_DIR "/themes" -diff -up gnome-screensaver-2.26.0/src/gs-prefs.c.idle-delay gnome-screensaver-2.26.0/src/gs-prefs.c ---- gnome-screensaver-2.26.0/src/gs-prefs.c.idle-delay 2009-04-07 14:13:23.189342814 -0400 -+++ gnome-screensaver-2.26.0/src/gs-prefs.c 2009-04-07 14:14:07.529055689 -0400 -@@ -39,10 +39,11 @@ static void gs_prefs_finalize (GObject - #define KEY_USER_SWITCH_DISABLE GNOME_LOCKDOWN_DIR "/disable_user_switching" - - #define KEY_DIR "/apps/gnome-screensaver" -+#define GNOME_SESSION_DIR "/desktop/gnome/session" - #define KEY_IDLE_ACTIVATION_ENABLED KEY_DIR "/idle_activation_enabled" - #define KEY_LOCK_ENABLED KEY_DIR "/lock_enabled" - #define KEY_MODE KEY_DIR "/mode" --#define KEY_ACTIVATE_DELAY KEY_DIR "/idle_delay" -+#define KEY_ACTIVATE_DELAY GNOME_SESSION_DIR "/idle_delay" - #define KEY_POWER_DELAY KEY_DIR "/power_management_delay" - #define KEY_LOCK_DELAY KEY_DIR "/lock_delay" - #define KEY_CYCLE_DELAY KEY_DIR "/cycle_delay" diff --git a/gnome-screensaver.spec b/gnome-screensaver.spec index 4738590..1900664 100644 --- a/gnome-screensaver.spec +++ b/gnome-screensaver.spec @@ -13,31 +13,17 @@ Summary: GNOME Screensaver Name: gnome-screensaver -Version: 2.28.0 -Release: 10%{?dist} +Version: 2.29.1 +Release: 1%{?dist} License: GPLv2+ Group: Amusements/Graphics -Source0: http://download.gnome.org/sources/gnome-screensaver/2.28/%{name}-%{version}.tar.bz2 +Source0: http://download.gnome.org/sources/gnome-screensaver/2.29/%{name}-%{version}.tar.bz2 Source1: gnome-screensaver-hide-xscreensaver.menu -Source3: cosmos-wallpaper.xml Patch1: gnome-screensaver-2.20.0-default-theme.patch Patch2: gnome-screensaver-2.26.0-securitytoken.patch Patch7: gnome-screensaver-2.20.0-blank-by-default.patch Patch8: gnome-screensaver-2.20.0-selinux-permit.patch -# from upstream -Patch9: xrandr-gamma.patch -# from upstream -Patch10: multihead-issues.patch -# https://bugzilla.gnome.org/show_bug.cgi?id=598476 -Patch11: ask-to-die.patch -# from upstream -Patch12: remove-session-inhibits.patch -# from upstream -Patch13: 0001-Add-an-API-to-show-a-message-on-the-locked-screen.patch - -# fixed upstream -Patch14: popsquares-error-handling.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) URL: http://www.gnome.org @@ -89,12 +75,6 @@ simple, sane, secure defaults and be well integrated with the desktop. #%patch2 -p1 -b .securitytoken %patch7 -p1 -b .blank-by-default %patch8 -p1 -b .selinux-permit -%patch9 -p1 -b .xrandr-gamma -%patch10 -p1 -b .multihead-issues -%patch11 -p1 -b .ask-to-die -%patch12 -p1 -b .remove-session-inhibits -%patch13 -p1 -b .message-api -%patch14 -p1 -b .error-handling autoreconf -f -i @@ -122,8 +102,6 @@ desktop-file-install --vendor gnome --delete-original \ # hide xscreensaver from the menus install -D -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/xdg/menus/preferences-post-merged/gnome-screensaver-hide-xscreensaver.menu -install -D -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/gnome-background-properties/cosmos.xml - %clean rm -rf $RPM_BUILD_ROOT @@ -165,6 +143,9 @@ fi %doc %{_mandir}/man1/*.1.gz %changelog +* Fri Jan 29 2010 Jon McCann 2.29.1-1 +- Update to 2.29.1 + * Sun Jan 17 2010 Matthias Clasen 2.28.0-10 - Rebuild diff --git a/multihead-issues.patch b/multihead-issues.patch deleted file mode 100644 index 5118068..0000000 --- a/multihead-issues.patch +++ /dev/null @@ -1,41 +0,0 @@ -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; - } - } - } diff --git a/picky-ld.patch b/picky-ld.patch deleted file mode 100644 index 35ce836..0000000 --- a/picky-ld.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up gnome-screensaver-2.28.0/src/Makefile.am.picky-ld gnome-screensaver-2.28.0/src/Makefile.am ---- gnome-screensaver-2.28.0/src/Makefile.am.picky-ld 2009-11-06 18:13:33.256494763 -0500 -+++ gnome-screensaver-2.28.0/src/Makefile.am 2009-11-06 18:15:24.527465877 -0500 -@@ -201,6 +201,7 @@ gnome_screensaver_SOURCES = \ - - gnome_screensaver_gl_helper_LDADD = \ - $(GNOME_SCREENSAVER_LIBS) \ -+ -lX11 \ - $(GL_LIBS) \ - $(NULL) - diff --git a/popsquares-error-handling.patch b/popsquares-error-handling.patch deleted file mode 100644 index 26456bb..0000000 --- a/popsquares-error-handling.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up gnome-screensaver-2.28.0/savers/popsquares.c.error-handling gnome-screensaver-2.28.0/savers/popsquares.c ---- gnome-screensaver-2.28.0/savers/popsquares.c.error-handling 2009-12-11 13:23:31.587245522 -0500 -+++ gnome-screensaver-2.28.0/savers/popsquares.c 2009-12-11 13:33:07.221003198 -0500 -@@ -45,7 +45,12 @@ main (int argc, char **argv) - - error = NULL; - -- gtk_init_with_args (&argc, &argv, NULL, NULL, NULL, &error); -+ if (!gtk_init_with_args (&argc, &argv, NULL, NULL, NULL, &error)) { -+ g_printerr (_("%s. See --help for usage information.\n"), -+ error->message); -+ g_error_free (error); -+ exit (1); -+ } - - window = gs_theme_window_new (); - g_signal_connect (G_OBJECT (window), "delete-event", diff --git a/remove-session-inhibits.patch b/remove-session-inhibits.patch deleted file mode 100644 index 4733c2b..0000000 --- a/remove-session-inhibits.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff -up gnome-screensaver-2.28.0/src/gs-listener-dbus.c.remove-session-inhibits gnome-screensaver-2.28.0/src/gs-listener-dbus.c ---- gnome-screensaver-2.28.0/src/gs-listener-dbus.c.remove-session-inhibits 2009-08-19 19:19:14.000000000 -0400 -+++ gnome-screensaver-2.28.0/src/gs-listener-dbus.c 2009-11-02 18:07:57.129864647 -0500 -@@ -985,47 +985,40 @@ listener_dbus_remove_ref_entry (GSListen - } - - static gboolean --listener_ref_entry_has_connection (gpointer key, -- gpointer value, -- gpointer user_data) --{ -- GSListenerRefEntry *entry; -- const char *connection; -- gboolean matches; -- -- entry = (GSListenerRefEntry *)value; -- connection = (const char *) user_data; -- -- matches = FALSE; -- if (connection != NULL && entry->connection != NULL) { -- matches = (strcmp (connection, entry->connection) == 0); -- if (matches) { -- gs_debug ("removing %s from %s for reason '%s' on connection %s", -- get_name_for_entry_type (entry->entry_type), -- entry->application, -- entry->reason, -- entry->connection); -- } -- } -- -- return matches; --} -- --static gboolean - listener_ref_entry_remove_for_connection (GSListener *listener, - int entry_type, - const char *connection) - { - gboolean removed; -- guint n_removed; - GHashTable *hash; -+ GHashTableIter iter; -+ GSListenerRefEntry *entry; -+ -+ if (connection == NULL) -+ return FALSE; - - hash = get_hash_for_entry_type (listener, entry_type); - - removed = FALSE; -- n_removed = g_hash_table_foreach_remove (hash, listener_ref_entry_has_connection, (gpointer)connection); -+ g_hash_table_iter_init (&iter, hash); -+ while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&entry)) { -+ if (entry->connection != NULL && -+ strcmp (connection, entry->connection) == 0) { -+ gs_debug ("removing %s from %s for reason '%s' on connection %s", -+ get_name_for_entry_type (entry->entry_type), -+ entry->application, -+ entry->reason, -+ entry->connection); -+ -+ if (entry->entry_type == REF_ENTRY_TYPE_INHIBIT) { -+ /* remove inhibit from gnome session */ -+ remove_session_inhibit (listener, entry); -+ } - -- removed = (n_removed > 0); -+ g_hash_table_iter_remove (&iter); -+ removed = TRUE; -+ } -+ } - - return removed; - } diff --git a/use-gtkbuilder.patch b/use-gtkbuilder.patch deleted file mode 100644 index 5c2a84f..0000000 --- a/use-gtkbuilder.patch +++ /dev/null @@ -1,3069 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 1eb840a..30d0a8f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -43,7 +43,6 @@ GTK_REQUIRED_VERSION=2.11.5 - LIBGNOME_MENU_REQUIRED_VERSION=2.11.1 - GNOME_DESKTOP_REQUIRED_VERSION=2.23.2 - --GLADE_REQUIRED_VERSION=2.5.0 - LIBGNOMEKBDUI_REQUIRED_VERSION=0.1 - - AC_CHECK_HEADERS(unistd.h) -@@ -64,7 +63,6 @@ AC_SUBST(GNOME_SCREENSAVER_CFLAGS) - AC_SUBST(GNOME_SCREENSAVER_LIBS) - - PKG_CHECK_MODULES(GNOME_SCREENSAVER_DIALOG, -- libglade-2.0 >= $GLADE_REQUIRED_VERSION - gconf-2.0 >= $GCONF_REQUIRED_VERSION - gthread-2.0 - gtk+-2.0 >= $GTK_REQUIRED_VERSION) -@@ -74,7 +72,6 @@ AC_SUBST(GNOME_SCREENSAVER_DIALOG_LIBS) - PKG_CHECK_MODULES(GNOME_SCREENSAVER_CAPPLET, - gio-2.0 >= $GLIB_REQUIRED_VERSION - gconf-2.0 >= $GCONF_REQUIRED_VERSION -- libglade-2.0 >= $GLADE_REQUIRED_VERSION - gtk+-2.0 >= $GTK_REQUIRED_VERSION - libgnome-menu >= $LIBGNOME_MENU_REQUIRED_VERSION) - AC_SUBST(GNOME_SCREENSAVER_CAPPLET_CFLAGS) -diff --git a/data/Makefile.am b/data/Makefile.am -index 87d46d6..9833cae 100644 ---- a/data/Makefile.am -+++ b/data/Makefile.am -@@ -34,10 +34,10 @@ menu_DATA = \ - gnome-screensavers.menu \ - $(NULL) - --gladedir = $(pkgdatadir) --glade_DATA = \ -- gnome-screensaver-preferences.glade \ -- lock-dialog-default.glade \ -+gtkbuilderdir = $(pkgdatadir) -+gtkbuilder_DATA = \ -+ gnome-screensaver-preferences.ui \ -+ lock-dialog-default.ui \ - $(NULL) - - pkgconfigdir = $(libdir)/pkgconfig -diff --git a/data/gnome-screensaver-preferences.glade b/data/gnome-screensaver-preferences.glade -deleted file mode 100644 -index 574e142..0000000 ---- a/data/gnome-screensaver-preferences.glade -+++ /dev/null -@@ -1,760 +0,0 @@ -- -- -- -- -- -- -- 5 -- True -- Screensaver Preferences -- GTK_WINDOW_TOPLEVEL -- GTK_WIN_POS_NONE -- False -- 600 -- 400 -- True -- False -- True -- False -- False -- GDK_WINDOW_TYPE_HINT_DIALOG -- GDK_GRAVITY_NORTH_WEST -- True -- False -- False -- -- -- -- True -- False -- 2 -- -- -- -- True -- GTK_BUTTONBOX_END -- -- -- -- True -- True -- True -- gtk-help -- True -- GTK_RELIEF_NORMAL -- True -- -11 -- -- -- -- -- -- True -- True -- True -- GTK_RELIEF_NORMAL -- True -- -2 -- -- -- -- True -- 0.5 -- 0.5 -- 0 -- 0 -- 0 -- 0 -- 0 -- 0 -- -- -- -- True -- False -- 2 -- -- -- -- True -- gtk-jump-to -- 4 -- 0.5 -- 0.5 -- 0 -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- Power _Management -- True -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- -- -- -- -- -- -- True -- True -- True -- gtk-close -- True -- GTK_RELIEF_NORMAL -- True -- -7 -- -- -- -- -- 0 -- False -- True -- GTK_PACK_END -- -- -- -- -- -- 5 -- True -- False -- 12 -- -- -- -- True -- False -- 12 -- -- -- -- True -- False -- 6 -- -- -- -- True -- _Screensaver theme: -- True -- True -- GTK_JUSTIFY_LEFT -- False -- False -- 0 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- False -- 0 -- -- -- -- True -- 2 -- 2 -- False -- 6 -- 6 -- -- -- -- True -- True -- GTK_POLICY_NEVER -- GTK_POLICY_AUTOMATIC -- GTK_SHADOW_IN -- GTK_CORNER_TOP_LEFT -- -- -- -- True -- True -- False -- False -- False -- True -- False -- False -- False -- -- -- -- -- -- -- -- 0 -- 1 -- 0 -- 1 -- fill -- -- -- -- -- -- -- -- 1 -- 2 -- 0 -- 2 -- -- -- -- -- -- True -- GTK_BUTTONBOX_START -- 0 -- -- -- -- True -- True -- True -- GTK_RELIEF_NORMAL -- True -- -- -- -- True -- 0.5 -- 0.5 -- 0 -- 0 -- 0 -- 0 -- 0 -- 0 -- -- -- -- True -- False -- 2 -- -- -- -- True -- gtk-fullscreen -- 4 -- 0.5 -- 0.5 -- 0 -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- _Preview -- True -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- -- -- -- -- -- 0 -- 1 -- 1 -- 2 -- fill -- fill -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- False -- 0 -- -- -- -- True -- False -- 0 -- -- -- -- True -- False -- 0 -- -- -- -- True -- False -- 0 -- -- -- -- True -- False -- 6 -- -- -- -- True -- False -- 12 -- -- -- -- True -- Regard the computer as _idle after: -- True -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- False -- 6 -- -- -- -- True -- True -- True -- GTK_POS_TOP -- 0 -- GTK_UPDATE_CONTINUOUS -- False -- 10 1 120 1 10 0 -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- False -- True -- -- -- -- -- -- True -- True -- _Activate screensaver when computer is idle -- True -- GTK_RELIEF_NORMAL -- True -- False -- False -- True -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- True -- _Lock screen when screensaver is active -- True -- GTK_RELIEF_NORMAL -- True -- False -- False -- True -- -- -- 0 -- False -- False -- -- -- -- -- -- <b>Warning: the screen will not be locked for the root user.</b> -- False -- True -- GTK_JUSTIFY_LEFT -- True -- False -- 0 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- 0 -- False -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- -- -- True -- True -- Screensaver Preview -- GTK_WINDOW_TOPLEVEL -- GTK_WIN_POS_CENTER -- True -- True -- True -- False -- True -- True -- GDK_WINDOW_TYPE_HINT_NORMAL -- GDK_GRAVITY_NORTH_WEST -- True -- False -- -- -- -- True -- False -- 0 -- -- -- -- True -- False -- 0 -- -- -- -- True -- gtk-dialog-warning -- 4 -- 0.5 -- 0.5 -- 10 -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- <b>Screensaver preview</b> -- False -- True -- GTK_JUSTIFY_FILL -- True -- False -- 0 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- True -- -- -- -- -- -- True -- -- False -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- True -- GTK_RELIEF_NORMAL -- True -- -- -- -- True -- gtk-go-back -- 4 -- 0.5 -- 0.5 -- 0 -- 0 -- -- -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- True -- GTK_RELIEF_NORMAL -- True -- -- -- -- True -- gtk-go-forward -- 4 -- 0.5 -- 0.5 -- 0 -- 0 -- -- -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- True -- gtk-leave-fullscreen -- True -- GTK_RELIEF_NORMAL -- True -- -- -- 0 -- False -- False -- -- -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- -- -- 0 -- True -- True -- -- -- -- -- -- -- -diff --git a/data/gnome-screensaver-preferences.ui b/data/gnome-screensaver-preferences.ui -new file mode 100644 -index 0000000..6b88f37 ---- /dev/null -+++ b/data/gnome-screensaver-preferences.ui -@@ -0,0 +1,719 @@ -+ -+ -+ -+ -+ 120 -+ 1 -+ 10 -+ 1 -+ 0 -+ 10 -+ -+ -+ 5 -+ True -+ Screensaver Preferences -+ GTK_WINDOW_TOPLEVEL -+ GTK_WIN_POS_NONE -+ False -+ 600 -+ 400 -+ True -+ False -+ True -+ False -+ False -+ GDK_WINDOW_TYPE_HINT_DIALOG -+ GDK_GRAVITY_NORTH_WEST -+ True -+ False -+ False -+ -+ -+ True -+ False -+ 2 -+ -+ -+ True -+ GTK_BUTTONBOX_END -+ -+ -+ True -+ True -+ True -+ gtk-help -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ -+ -+ True -+ True -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ True -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ 0 -+ 0 -+ 0 -+ 0 -+ -+ -+ True -+ False -+ 2 -+ -+ -+ True -+ gtk-jump-to -+ 4 -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ Power _Management -+ True -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ True -+ True -+ True -+ gtk-close -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ -+ -+ 0 -+ False -+ True -+ GTK_PACK_END -+ -+ -+ -+ -+ 5 -+ True -+ False -+ 12 -+ -+ -+ True -+ False -+ 12 -+ -+ -+ True -+ False -+ 6 -+ -+ -+ True -+ _Screensaver theme: -+ True -+ True -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ 2 -+ 2 -+ False -+ 6 -+ 6 -+ -+ -+ True -+ True -+ GTK_POLICY_NEVER -+ GTK_POLICY_AUTOMATIC -+ GTK_SHADOW_IN -+ GTK_CORNER_TOP_LEFT -+ -+ -+ True -+ True -+ False -+ False -+ False -+ True -+ False -+ False -+ False -+ -+ -+ -+ -+ -+ -+ -+ 0 -+ 1 -+ 0 -+ 1 -+ fill -+ -+ -+ -+ -+ -+ -+ 1 -+ 2 -+ 0 -+ 2 -+ -+ -+ -+ -+ True -+ GTK_BUTTONBOX_START -+ 0 -+ -+ -+ True -+ True -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ True -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ 0 -+ 0 -+ 0 -+ 0 -+ -+ -+ True -+ False -+ 2 -+ -+ -+ True -+ gtk-fullscreen -+ 4 -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ _Preview -+ True -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ 0 -+ 1 -+ 1 -+ 2 -+ fill -+ fill -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ False -+ 6 -+ -+ -+ True -+ False -+ 12 -+ -+ -+ True -+ Regard the computer as _idle after: -+ True -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ False -+ 6 -+ -+ -+ True -+ True -+ True -+ GTK_POS_TOP -+ 0 -+ GTK_UPDATE_CONTINUOUS -+ False -+ adjustment1 -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ False -+ True -+ -+ -+ -+ -+ True -+ True -+ _Activate screensaver when computer is idle -+ True -+ GTK_RELIEF_NORMAL -+ True -+ False -+ False -+ True -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ True -+ _Lock screen when screensaver is active -+ True -+ GTK_RELIEF_NORMAL -+ True -+ False -+ False -+ True -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ <b>Warning: the screen will not be locked for the root user.</b> -+ False -+ True -+ GTK_JUSTIFY_LEFT -+ True -+ False -+ 0 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ 0 -+ False -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ -+ helpbutton1 -+ gpm_button -+ button1 -+ -+ -+ -+ True -+ True -+ Screensaver Preview -+ GTK_WINDOW_TOPLEVEL -+ GTK_WIN_POS_CENTER -+ True -+ True -+ True -+ False -+ True -+ True -+ GDK_WINDOW_TYPE_HINT_NORMAL -+ GDK_GRAVITY_NORTH_WEST -+ True -+ False -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ gtk-dialog-warning -+ 4 -+ 0.5 -+ 0.5 -+ 10 -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ <b>Screensaver preview</b> -+ False -+ True -+ GTK_JUSTIFY_FILL -+ True -+ False -+ 0 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ True -+ -+ -+ -+ -+ True -+ -+ False -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ True -+ gtk-go-back -+ 4 -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ -+ -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ True -+ gtk-go-forward -+ 4 -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ -+ -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ True -+ gtk-leave-fullscreen -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ -+ -diff --git a/data/lock-dialog-default.glade b/data/lock-dialog-default.glade -deleted file mode 100644 -index 17f4e21..0000000 ---- a/data/lock-dialog-default.glade -+++ /dev/null -@@ -1,568 +0,0 @@ -- -- -- -- -- -- -- True -- window1 -- GTK_WINDOW_TOPLEVEL -- GTK_WIN_POS_NONE -- False -- True -- False -- True -- False -- False -- GDK_WINDOW_TYPE_HINT_NORMAL -- GDK_GRAVITY_NORTH_WEST -- True -- False -- -- -- -- True -- 0 -- 0.5 -- GTK_SHADOW_OUT -- -- -- -- 12 -- True -- 0.5 -- 0.5 -- 1 -- 1 -- 0 -- 0 -- 0 -- 0 -- -- -- -- 18 -- True -- False -- 0 -- -- -- -- True -- False -- False -- GTK_POS_TOP -- False -- False -- -- -- -- True -- 0.5 -- 0.5 -- 1 -- 1 -- 0 -- 0 -- 0 -- 0 -- -- -- -- True -- False -- 12 -- -- -- -- True -- 0.5 -- 1 -- 0 -- 0 -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- False -- 0 -- -- -- -- True -- <span size="x-large">%R</span> -- False -- True -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- <span size="small">%U on %h</span> -- False -- True -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- -- False -- False -- GTK_JUSTIFY_LEFT -- True -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- False -- 0 -- -- -- -- True -- False -- 6 -- -- -- -- -- False -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- True -- False -- 0 -- -- True -- True -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- False -- 0 -- -- -- -- -- -- -- 0 -- False -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- -- False -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- -- False -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- GTK_BUTTONBOX_END -- 6 -- -- -- -- True -- True -- True -- _Leave Message -- True -- GTK_RELIEF_NORMAL -- False -- -- -- -- -- -- True -- True -- True -- _Switch User -- True -- GTK_RELIEF_NORMAL -- False -- -- -- -- -- -- True -- True -- True -- _Log Out -- True -- GTK_RELIEF_NORMAL -- False -- -- -- -- -- -- True -- True -- True -- _Cancel -- True -- GTK_RELIEF_NORMAL -- False -- -- -- -- -- -- True -- True -- True -- _Unlock -- True -- GTK_RELIEF_NORMAL -- True -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- -- False -- True -- -- -- -- -- -- True -- -- False -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- tab -- -- -- -- -- -- True -- False -- 10 -- -- -- -- True -- <b>Leave a message for %R:</b> -- False -- True -- GTK_JUSTIFY_LEFT -- False -- False -- 0 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- 0 -- False -- False -- -- -- -- -- -- True -- True -- GTK_POLICY_AUTOMATIC -- GTK_POLICY_AUTOMATIC -- GTK_SHADOW_IN -- GTK_CORNER_TOP_LEFT -- -- -- -- True -- True -- True -- False -- True -- GTK_JUSTIFY_LEFT -- GTK_WRAP_WORD -- True -- 0 -- 0 -- 0 -- 0 -- 0 -- 0 -- -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- True -- GTK_BUTTONBOX_END -- 6 -- -- -- -- True -- True -- True -- gtk-cancel -- True -- GTK_RELIEF_NORMAL -- True -- -- -- -- -- -- True -- True -- True -- gtk-save -- True -- GTK_RELIEF_NORMAL -- True -- -- -- -- -- 0 -- False -- False -- -- -- -- -- False -- True -- -- -- -- -- -- True -- -- False -- False -- GTK_JUSTIFY_LEFT -- False -- False -- 0.5 -- 0.5 -- 0 -- 0 -- PANGO_ELLIPSIZE_NONE -- -1 -- False -- 0 -- -- -- tab -- -- -- -- -- 0 -- True -- True -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -diff --git a/data/lock-dialog-default.ui b/data/lock-dialog-default.ui -new file mode 100644 -index 0000000..6b90c29 ---- /dev/null -+++ b/data/lock-dialog-default.ui -@@ -0,0 +1,523 @@ -+ -+ -+ -+ -+ True -+ window1 -+ GTK_WINDOW_TOPLEVEL -+ GTK_WIN_POS_NONE -+ False -+ True -+ False -+ True -+ False -+ False -+ GDK_WINDOW_TYPE_HINT_NORMAL -+ GDK_GRAVITY_NORTH_WEST -+ True -+ False -+ -+ -+ True -+ 0 -+ 0.5 -+ GTK_SHADOW_OUT -+ -+ -+ 12 -+ True -+ 0.5 -+ 0.5 -+ 1 -+ 1 -+ 0 -+ 0 -+ 0 -+ 0 -+ -+ -+ 18 -+ True -+ False -+ 0 -+ -+ -+ True -+ False -+ False -+ GTK_POS_TOP -+ False -+ False -+ -+ -+ True -+ 0.5 -+ 0.5 -+ 1 -+ 1 -+ 0 -+ 0 -+ 0 -+ 0 -+ -+ -+ True -+ False -+ 12 -+ -+ -+ True -+ 0.5 -+ 1 -+ 0 -+ 0 -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ <span size="x-large">%R</span> -+ False -+ True -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ <span size="small">%U on %h</span> -+ False -+ True -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ -+ False -+ False -+ GTK_JUSTIFY_LEFT -+ True -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ False -+ 0 -+ -+ -+ True -+ False -+ 6 -+ -+ -+ -+ False -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ True -+ False -+ 0 -+ -+ True -+ True -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ False -+ 0 -+ -+ -+ -+ -+ -+ 0 -+ False -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ -+ False -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ -+ False -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ GTK_BUTTONBOX_END -+ 6 -+ -+ -+ True -+ True -+ True -+ _Leave Message -+ True -+ GTK_RELIEF_NORMAL -+ False -+ -+ -+ -+ -+ True -+ True -+ True -+ _Switch User -+ True -+ GTK_RELIEF_NORMAL -+ False -+ -+ -+ -+ -+ True -+ True -+ True -+ _Log Out -+ True -+ GTK_RELIEF_NORMAL -+ False -+ -+ -+ -+ -+ True -+ True -+ True -+ _Cancel -+ True -+ GTK_RELIEF_NORMAL -+ False -+ -+ -+ -+ -+ True -+ True -+ True -+ _Unlock -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ -+ False -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ -+ -+ True -+ False -+ 10 -+ -+ -+ True -+ <b>Leave a message for %R:</b> -+ False -+ True -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ True -+ True -+ GTK_POLICY_AUTOMATIC -+ GTK_POLICY_AUTOMATIC -+ GTK_SHADOW_IN -+ GTK_CORNER_TOP_LEFT -+ -+ -+ True -+ True -+ True -+ False -+ True -+ GTK_JUSTIFY_LEFT -+ GTK_WRAP_WORD -+ True -+ 0 -+ 0 -+ 0 -+ 0 -+ 0 -+ 0 -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ True -+ GTK_BUTTONBOX_END -+ 6 -+ -+ -+ True -+ True -+ True -+ gtk-cancel -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ -+ -+ True -+ True -+ True -+ gtk-save -+ True -+ GTK_RELIEF_NORMAL -+ True -+ -+ -+ -+ -+ 0 -+ False -+ False -+ -+ -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ -+ False -+ False -+ GTK_JUSTIFY_LEFT -+ False -+ False -+ 0.5 -+ 0.5 -+ 0 -+ 0 -+ PANGO_ELLIPSIZE_NONE -+ -1 -+ False -+ 0 -+ -+ -+ -+ -+ 0 -+ True -+ True -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/po/POTFILES.in b/po/POTFILES.in -index cf5c1ad..c965e8a 100644 ---- a/po/POTFILES.in -+++ b/po/POTFILES.in -@@ -1,10 +1,10 @@ - # List of source files containing translatable strings. - # Please keep this file sorted alphabetically. - data/gnome-screensaver-preferences.desktop.in --data/gnome-screensaver-preferences.glade -+[type: gettext/glade]data/gnome-screensaver-preferences.ui - data/gnome-screensaver.directory.in - data/gnome-screensaver.schemas.in --data/lock-dialog-default.glade -+[type: gettext/glade]data/lock-dialog-default.ui - savers/cosmos-slideshow.desktop.in.in - savers/footlogo-floaters.desktop.in.in - savers/personal-slideshow.desktop.in.in -diff --git a/src/Makefile.am b/src/Makefile.am -index aac7b65..290aac1 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -23,7 +23,7 @@ INCLUDES = \ - -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ - -DSAVERDIR=\""$(saverdir)"\" \ - -DTHEMESDIR=\""$(themesdir)"\" \ -- -DGLADEDIR=\"$(pkgdatadir)\" \ -+ -DGTKBUILDERDIR=\"$(pkgdatadir)\" \ - -DPAM_SERVICE_NAME=\""gnome-screensaver"\" \ - $(WARN_CFLAGS) \ - $(AUTH_CFLAGS) \ -diff --git a/src/gnome-screensaver-preferences.c b/src/gnome-screensaver-preferences.c -index 4e600d4..d8376fb 100644 ---- a/src/gnome-screensaver-preferences.c -+++ b/src/gnome-screensaver-preferences.c -@@ -33,7 +33,6 @@ - #include - #include - #include --#include - #include - - #include -@@ -44,7 +43,7 @@ - #include "gs-job.h" - #include "gs-prefs.h" /* for GS_MODE enum */ - --#define GLADE_XML_FILE "gnome-screensaver-preferences.glade" -+#define GTK_BUILDER_FILE "gnome-screensaver-preferences.ui" - - #define GNOME_LOCKDOWN_DIR "/desktop/gnome/lockdown" - #define KEY_LOCK_DISABLE GNOME_LOCKDOWN_DIR "/disable_lock_screen" -@@ -86,7 +85,7 @@ static GtkTargetEntry drop_types [] = - { "_NETSCAPE_URL", 0, TARGET_NS_URL } - }; - --static GladeXML *xml = NULL; -+static GtkBuilder *builder = NULL; - static GSThemeManager *theme_manager = NULL; - static GSJob *job = NULL; - -@@ -399,7 +398,7 @@ preview_set_theme (GtkWidget *widget, - - preview_clear (widget); - -- label = glade_xml_get_widget (xml, "fullscreen_preview_theme_label"); -+ label = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_theme_label")); - markup = g_markup_printf_escaped ("%s", name); - gtk_label_set_markup (GTK_LABEL (label), markup); - g_free (markup); -@@ -825,7 +824,7 @@ reload_themes (void) - GtkWidget *treeview; - GtkTreeModel *model; - -- treeview = glade_xml_get_widget (xml, "savers_treeview"); -+ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview")); - model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)); - gtk_tree_store_clear (GTK_TREE_STORE (model)); - populate_model (GTK_TREE_STORE (model)); -@@ -960,7 +959,7 @@ drag_data_received_cb (GtkWidget *widget, - if (files != NULL) { - GtkWidget *prefs_dialog; - -- prefs_dialog = glade_xml_get_widget (xml, "prefs_dialog"); -+ prefs_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "prefs_dialog")); - theme_installer_run (prefs_dialog, files); - } - } -@@ -1052,7 +1051,7 @@ ui_disable_lock (gboolean disable) - { - GtkWidget *widget; - -- widget = glade_xml_get_widget (xml, "lock_checkbox"); -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "lock_checkbox")); - gtk_widget_set_sensitive (widget, !disable); - if (disable) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); -@@ -1066,7 +1065,7 @@ ui_set_lock (gboolean enabled) - gboolean active; - gboolean lock_disabled; - -- widget = glade_xml_get_widget (xml, "lock_checkbox"); -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "lock_checkbox")); - - active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - if (active != enabled) { -@@ -1084,13 +1083,13 @@ ui_set_enabled (gboolean enabled) - gboolean is_writable; - gboolean lock_disabled; - -- widget = glade_xml_get_widget (xml, "enable_checkbox"); -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "enable_checkbox")); - active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - if (active != enabled) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), enabled); - } - -- widget = glade_xml_get_widget (xml, "lock_checkbox"); -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "lock_checkbox")); - config_get_lock (&is_writable); - if (is_writable) { - gtk_widget_set_sensitive (widget, enabled); -@@ -1104,7 +1103,7 @@ ui_set_delay (int delay) - { - GtkWidget *widget; - -- widget = glade_xml_get_widget (xml, "activate_delay_hscale"); -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "activate_delay_hscale")); - gtk_range_set_value (GTK_RANGE (widget), delay); - } - -@@ -1159,7 +1158,7 @@ key_changed_cb (GConfClient *client, - if (value->type == GCONF_VALUE_LIST) { - GtkWidget *treeview; - -- treeview = glade_xml_get_widget (xml, "savers_treeview"); -+ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview")); - setup_treeview_selection (treeview); - } else { - invalid_type_warning (key); -@@ -1187,7 +1186,7 @@ fullscreen_preview_previous_cb (GtkWidget *fullscreen_preview_window, - GtkWidget *treeview; - GtkTreeSelection *selection; - -- treeview = glade_xml_get_widget (xml, "savers_treeview"); -+ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview")); - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); - tree_selection_previous (selection); - } -@@ -1199,7 +1198,7 @@ fullscreen_preview_next_cb (GtkWidget *fullscreen_preview_window, - GtkWidget *treeview; - GtkTreeSelection *selection; - -- treeview = glade_xml_get_widget (xml, "savers_treeview"); -+ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview")); - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); - tree_selection_next (selection); - } -@@ -1214,16 +1213,16 @@ fullscreen_preview_cancelled_cb (GtkWidget *button, - GtkWidget *preview_area; - GtkWidget *dialog; - -- preview_area = glade_xml_get_widget (xml, "preview_area"); -+ preview_area = GTK_WIDGET (gtk_builder_get_object (builder, "preview_area")); - gs_job_set_widget (job, preview_area); - -- fullscreen_preview_area = glade_xml_get_widget (xml, "fullscreen_preview_area"); -+ fullscreen_preview_area = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_area")); - preview_clear (fullscreen_preview_area); - -- fullscreen_preview_window = glade_xml_get_widget (xml, "fullscreen_preview_window"); -+ fullscreen_preview_window = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_window")); - gtk_widget_hide (fullscreen_preview_window); - -- dialog = glade_xml_get_widget (xml, "prefs_dialog"); -+ dialog = GTK_WIDGET (gtk_builder_get_object (builder, "prefs_dialog")); - gtk_widget_show (dialog); - gtk_window_present (GTK_WINDOW (dialog)); - } -@@ -1236,10 +1235,10 @@ fullscreen_preview_start_cb (GtkWidget *widget, - GtkWidget *fullscreen_preview_window; - GtkWidget *dialog; - -- dialog = glade_xml_get_widget (xml, "prefs_dialog"); -+ dialog = GTK_WIDGET (gtk_builder_get_object (builder, "prefs_dialog")); - gtk_widget_hide (dialog); - -- fullscreen_preview_window = glade_xml_get_widget (xml, "fullscreen_preview_window"); -+ fullscreen_preview_window = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_window")); - - gtk_window_fullscreen (GTK_WINDOW (fullscreen_preview_window)); - gtk_window_set_keep_above (GTK_WINDOW (fullscreen_preview_window), TRUE); -@@ -1247,7 +1246,7 @@ fullscreen_preview_start_cb (GtkWidget *widget, - gtk_widget_show (fullscreen_preview_window); - gtk_widget_grab_focus (fullscreen_preview_window); - -- fullscreen_preview_area = glade_xml_get_widget (xml, "fullscreen_preview_area"); -+ fullscreen_preview_area = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_area")); - preview_clear (fullscreen_preview_area); - gs_job_set_widget (job, fullscreen_preview_area); - } -@@ -1308,8 +1307,8 @@ setup_for_root_user (void) - GtkWidget *lock_checkbox; - GtkWidget *label; - -- lock_checkbox = glade_xml_get_widget (xml, "lock_checkbox"); -- label = glade_xml_get_widget (xml, "root_warning_label"); -+ lock_checkbox = GTK_WIDGET (gtk_builder_get_object (builder, "lock_checkbox")); -+ label = GTK_WIDGET (gtk_builder_get_object (builder, "root_warning_label")); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lock_checkbox), FALSE); - gtk_widget_set_sensitive (lock_checkbox, FALSE); -@@ -1403,8 +1402,8 @@ setup_treeview_idle (gpointer data) - GtkWidget *preview; - GtkWidget *treeview; - -- preview = glade_xml_get_widget (xml, "preview_area"); -- treeview = glade_xml_get_widget (xml, "savers_treeview"); -+ preview = GTK_WIDGET (gtk_builder_get_object (builder, "preview_area")); -+ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview")); - - setup_treeview (treeview, preview); - setup_treeview_selection (treeview); -@@ -1444,18 +1443,23 @@ init_capplet (void) - GtkWidget *fullscreen_preview_next; - GtkWidget *fullscreen_preview_area; - GtkWidget *fullscreen_preview_close; -- char *glade_file; -+ char *gtk_builder_file; - char *string; - gdouble activate_delay; - gboolean enabled; - gboolean is_writable; - GConfClient *client; -+ GError *error=NULL; - -- glade_file = g_build_filename (GLADEDIR, GLADE_XML_FILE, NULL); -- xml = glade_xml_new (glade_file, NULL, PACKAGE); -- g_free (glade_file); -+ gtk_builder_file = g_build_filename (GTKBUILDERDIR, GTK_BUILDER_FILE, NULL); -+ builder = gtk_builder_new(); -+ if (!gtk_builder_add_from_file(builder, gtk_builder_file, &error)) { -+ g_warning("Couldn't load builder file: %s", error->message); -+ g_error_free(error); -+ } -+ g_free (gtk_builder_file); - -- if (xml == NULL) { -+ if (builder == NULL) { - - dialog = gtk_message_dialog_new (NULL, - 0, GTK_MESSAGE_ERROR, -@@ -1471,26 +1475,26 @@ init_capplet (void) - exit (1); - } - -- preview = glade_xml_get_widget (xml, "preview_area"); -- dialog = glade_xml_get_widget (xml, "prefs_dialog"); -- treeview = glade_xml_get_widget (xml, "savers_treeview"); -- list_scroller = glade_xml_get_widget (xml, "themes_scrolled_window"); -- activate_delay_hscale = glade_xml_get_widget (xml, "activate_delay_hscale"); -- activate_delay_hbox = glade_xml_get_widget (xml, "activate_delay_hbox"); -- enabled_checkbox = glade_xml_get_widget (xml, "enable_checkbox"); -- lock_checkbox = glade_xml_get_widget (xml, "lock_checkbox"); -- root_warning_label = glade_xml_get_widget (xml, "root_warning_label"); -- preview_button = glade_xml_get_widget (xml, "preview_button"); -- gpm_button = glade_xml_get_widget (xml, "gpm_button"); -- fullscreen_preview_window = glade_xml_get_widget (xml, "fullscreen_preview_window"); -- fullscreen_preview_area = glade_xml_get_widget (xml, "fullscreen_preview_area"); -- fullscreen_preview_close = glade_xml_get_widget (xml, "fullscreen_preview_close"); -- fullscreen_preview_previous = glade_xml_get_widget (xml, "fullscreen_preview_previous_button"); -- fullscreen_preview_next = glade_xml_get_widget (xml, "fullscreen_preview_next_button"); -- -- label = glade_xml_get_widget (xml, "activate_delay_label"); -+ preview = GTK_WIDGET (gtk_builder_get_object (builder, "preview_area")); -+ dialog = GTK_WIDGET (gtk_builder_get_object (builder, "prefs_dialog")); -+ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview")); -+ list_scroller = GTK_WIDGET (gtk_builder_get_object (builder, "themes_scrolled_window")); -+ activate_delay_hscale = GTK_WIDGET (gtk_builder_get_object (builder, "activate_delay_hscale")); -+ activate_delay_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "activate_delay_hbox")); -+ enabled_checkbox = GTK_WIDGET (gtk_builder_get_object (builder, "enable_checkbox")); -+ lock_checkbox = GTK_WIDGET (gtk_builder_get_object (builder, "lock_checkbox")); -+ root_warning_label = GTK_WIDGET (gtk_builder_get_object (builder, "root_warning_label")); -+ preview_button = GTK_WIDGET (gtk_builder_get_object (builder, "preview_button")); -+ gpm_button = GTK_WIDGET (gtk_builder_get_object (builder, "gpm_button")); -+ fullscreen_preview_window = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_window")); -+ fullscreen_preview_area = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_area")); -+ fullscreen_preview_close = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_close")); -+ fullscreen_preview_previous = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_previous_button")); -+ fullscreen_preview_next = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_next_button")); -+ -+ label = GTK_WIDGET (gtk_builder_get_object (builder, "activate_delay_label")); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), activate_delay_hscale); -- label = glade_xml_get_widget (xml, "savers_label"); -+ label = GTK_WIDGET (gtk_builder_get_object (builder, "savers_label")); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), treeview); - - gtk_widget_set_no_show_all (root_warning_label, TRUE); -diff --git a/src/gs-lock-plug.c b/src/gs-lock-plug.c -index 0b36a7c..bdb68ae 100644 ---- a/src/gs-lock-plug.c -+++ b/src/gs-lock-plug.c -@@ -37,7 +37,6 @@ - #include - #include - #include --#include - #include - - #ifdef WITH_KBD_LAYOUT_INDICATOR -@@ -1627,21 +1626,22 @@ load_theme (GSLockPlug *plug) - { - char *theme; - char *filename; -- char *glade; -+ char *gtkbuilder; - char *rc; -- GladeXML *xml; -+ GtkBuilder *builder; - GtkWidget *lock_dialog; -+ GError *error=NULL; - - theme = get_dialog_theme_name (plug); - if (theme == NULL) { - return FALSE; - } - -- filename = g_strdup_printf ("lock-dialog-%s.glade", theme); -- glade = g_build_filename (GLADEDIR, filename, NULL); -+ filename = g_strdup_printf ("lock-dialog-%s.ui", theme); -+ gtkbuilder = g_build_filename (GTKBUILDERDIR, filename, NULL); - g_free (filename); -- if (! g_file_test (glade, G_FILE_TEST_IS_REGULAR)) { -- g_free (glade); -+ if (! g_file_test (gtkbuilder, G_FILE_TEST_IS_REGULAR)) { -+ g_free (gtkbuilder); - g_free (theme); - return FALSE; - } -@@ -1649,50 +1649,51 @@ load_theme (GSLockPlug *plug) - filename = g_strdup_printf ("lock-dialog-%s.gtkrc", theme); - g_free (theme); - -- rc = g_build_filename (GLADEDIR, filename, NULL); -+ rc = g_build_filename (GTKBUILDERDIR, filename, NULL); - g_free (filename); - if (g_file_test (rc, G_FILE_TEST_IS_REGULAR)) { - gtk_rc_parse (rc); - } - g_free (rc); - -- xml = glade_xml_new (glade, "lock-dialog", NULL); -+ builder = gtk_builder_new(); - -- if (xml == NULL) { -- g_warning ("Failed to load '%s'\n", glade); -- g_free (glade); -+ if (!gtk_builder_add_from_file (builder,filename ,&error)) { -+ g_warning ("Couldn't load builder file: %s", error->message); -+ g_error_free(error); -+ g_free (gtkbuilder); - return FALSE; - } -- g_free (glade); -+ g_free (gtkbuilder); - -- lock_dialog = glade_xml_get_widget (xml, "lock-dialog"); -+ lock_dialog = GTK_WIDGET (gtk_builder_get_object(builder, "lock-dialog")); - gtk_container_add (GTK_CONTAINER (plug), lock_dialog); - - plug->priv->vbox = NULL; -- plug->priv->notebook = glade_xml_get_widget (xml, "notebook"); -- -- plug->priv->auth_face_image = glade_xml_get_widget (xml, "auth-face-image"); -- plug->priv->auth_action_area = glade_xml_get_widget (xml, "auth-action-area"); -- plug->priv->auth_realname_label = glade_xml_get_widget (xml, "auth-realname-label"); -- plug->priv->auth_username_label = glade_xml_get_widget (xml, "auth-username-label"); -- plug->priv->auth_prompt_label = glade_xml_get_widget (xml, "auth-prompt-label"); -- plug->priv->auth_prompt_entry = glade_xml_get_widget (xml, "auth-prompt-entry"); -- plug->priv->auth_prompt_box = glade_xml_get_widget (xml, "auth-prompt-box"); -- plug->priv->auth_capslock_label = glade_xml_get_widget (xml, "auth-capslock-label"); -- plug->priv->auth_message_label = glade_xml_get_widget (xml, "auth-status-label"); -- plug->priv->auth_unlock_button = glade_xml_get_widget (xml, "auth-unlock-button"); -- plug->priv->auth_cancel_button = glade_xml_get_widget (xml, "auth-cancel-button"); -- plug->priv->auth_logout_button = glade_xml_get_widget (xml, "auth-logout-button"); -- plug->priv->auth_switch_button = glade_xml_get_widget (xml, "auth-switch-button"); -- plug->priv->auth_note_button = glade_xml_get_widget (xml, "auth-note-button"); -- plug->priv->note_tab = glade_xml_get_widget (xml, "note-tab"); -- plug->priv->note_tab_label = glade_xml_get_widget (xml, "note-tab-label"); -- plug->priv->note_ok_button = glade_xml_get_widget (xml, "note-ok-button"); -- plug->priv->note_text_view = glade_xml_get_widget (xml, "note-text-view"); -- plug->priv->note_cancel_button = glade_xml_get_widget (xml, "note-cancel-button"); -+ plug->priv->notebook = GTK_WIDGET (gtk_builder_get_object(builder, "notebook")); -+ -+ plug->priv->auth_face_image = GTK_WIDGET (gtk_builder_get_object(builder, "auth-face-image")); -+ plug->priv->auth_action_area = GTK_WIDGET (gtk_builder_get_object(builder, "auth-action-area")); -+ plug->priv->auth_realname_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-realname-label")); -+ plug->priv->auth_username_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-username-label")); -+ plug->priv->auth_prompt_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-label")); -+ plug->priv->auth_prompt_entry = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-entry")); -+ plug->priv->auth_prompt_box = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-box")); -+ plug->priv->auth_capslock_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-capslock-label")); -+ plug->priv->auth_message_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-status-label")); -+ plug->priv->auth_unlock_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-unlock-button")); -+ plug->priv->auth_cancel_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-cancel-button")); -+ plug->priv->auth_logout_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-logout-button")); -+ plug->priv->auth_switch_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-switch-button")); -+ plug->priv->auth_note_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-note-button")); -+ plug->priv->note_tab = GTK_WIDGET (gtk_builder_get_object(builder, "note-tab")); -+ plug->priv->note_tab_label = GTK_WIDGET (gtk_builder_get_object(builder, "note-tab-label")); -+ plug->priv->note_ok_button = GTK_WIDGET (gtk_builder_get_object(builder, "note-ok-button")); -+ plug->priv->note_text_view = GTK_WIDGET (gtk_builder_get_object(builder, "note-text-view")); -+ plug->priv->note_cancel_button = GTK_WIDGET (gtk_builder_get_object(builder, "note-cancel-button")); - - /* Placeholder for the keyboard indicator */ -- plug->priv->auth_prompt_kbd_layout_indicator = glade_xml_get_widget (xml, "auth-prompt-kbd-layout-indicator"); -+ plug->priv->auth_prompt_kbd_layout_indicator = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-kbd-layout-indicator")); - if (plug->priv->auth_logout_button != NULL) { - gtk_widget_set_no_show_all (plug->priv->auth_logout_button, TRUE); - } -@@ -1705,7 +1706,7 @@ load_theme (GSLockPlug *plug) - - gtk_widget_show_all (lock_dialog); - -- plug->priv->status_message_label = glade_xml_get_widget (xml, "status-message-label"); -+ plug->priv->status_message_label = GTK_WIDGET (gtk_builder_get_object(builder, "status-message-label")); - - return TRUE; - } diff --git a/xrandr-gamma.patch b/xrandr-gamma.patch deleted file mode 100644 index ede66ff..0000000 --- a/xrandr-gamma.patch +++ /dev/null @@ -1,769 +0,0 @@ -diff -up gnome-screensaver-2.28.0/src/gs-fade.c.xrandr-gamma gnome-screensaver-2.28.0/src/gs-fade.c ---- gnome-screensaver-2.28.0/src/gs-fade.c.xrandr-gamma 2009-08-19 19:19:14.000000000 -0400 -+++ gnome-screensaver-2.28.0/src/gs-fade.c 2009-10-22 14:04:06.740384504 -0400 -@@ -40,22 +40,19 @@ - #include "gs-fade.h" - #include "gs-debug.h" - -+#define GNOME_DESKTOP_USE_UNSTABLE_API -+ -+#include "libgnomeui/gnome-rr.h" -+ - /* XFree86 4.x+ Gamma fading */ - -+ - #ifdef HAVE_XF86VMODE_GAMMA - - #include - - #define XF86_MIN_GAMMA 0.1 - --typedef struct { -- XF86VidModeGamma vmg; -- int size; -- unsigned short *r; -- unsigned short *g; -- unsigned short *b; --} xf86_gamma_info; -- - #endif /* HAVE_XF86VMODE_GAMMA */ - - static void gs_fade_class_init (GSFadeClass *klass); -@@ -64,6 +61,31 @@ static void gs_fade_finalize (GObj - - #define GS_FADE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GS_TYPE_FADE, GSFadePrivate)) - -+struct GSGammaInfo { -+ int size; -+ unsigned short *r; -+ unsigned short *g; -+ unsigned short *b; -+}; -+ -+struct GSFadeScreenPrivate -+{ -+ int fade_type; -+ int num_ramps; -+ /* one per crtc in randr mode */ -+ struct GSGammaInfo *info; -+ /* one per screen in theory */ -+ GnomeRRScreen *rrscreen; -+#ifdef HAVE_XF86VMODE_GAMMA -+ /* one per screen also */ -+ XF86VidModeGamma vmg; -+#endif /* HAVE_XF86VMODE_GAMMA */ -+ gboolean (*fade_setup) (GSFade *fade, int screen); -+ gboolean (*fade_set_alpha_gamma) (GSFade *fade, -+ int screen, gdouble alpha); -+ void (*fade_finish) (GSFade *fade, int screen); -+}; -+ - struct GSFadePrivate - { - guint enabled : 1; -@@ -78,14 +100,9 @@ struct GSFadePrivate - gdouble alpha_per_iter; - gdouble current_alpha; - -- int fade_type; -- - int num_screens; - --#ifdef HAVE_XF86VMODE_GAMMA -- xf86_gamma_info *gamma_info; --#endif /* HAVE_XF86VMODE_GAMMA */ -- -+ struct GSFadeScreenPrivate *screen_priv; - }; - - enum { -@@ -96,7 +113,8 @@ enum { - enum { - FADE_TYPE_NONE, - FADE_TYPE_GAMMA_NUMBER, -- FADE_TYPE_GAMMA_RAMP -+ FADE_TYPE_GAMMA_RAMP, -+ FADE_TYPE_XRANDR, - }; - - static guint signals [LAST_SIGNAL] = { 0, }; -@@ -149,10 +167,16 @@ safe_XF86VidModeQueryVersion (Display *d - - static gboolean - xf86_whack_gamma (int screen, -- xf86_gamma_info *info, -+ struct GSFadeScreenPrivate *screen_priv, - float ratio) - { - Bool status; -+ struct GSGammaInfo *gamma_info; -+ -+ gamma_info = screen_priv->info; -+ -+ if (!gamma_info) -+ return FALSE; - - if (ratio < 0) { - ratio = 0; -@@ -161,14 +185,14 @@ xf86_whack_gamma (int scree - ratio = 1; - } - -- if (info->size == 0) { -+ if (gamma_info->size == 0) { - /* we only have a gamma number, not a ramp. */ - - XF86VidModeGamma g2; - -- g2.red = info->vmg.red * ratio; -- g2.green = info->vmg.green * ratio; -- g2.blue = info->vmg.blue * ratio; -+ g2.red = screen_priv->vmg.red * ratio; -+ g2.green = screen_priv->vmg.green * ratio; -+ g2.blue = screen_priv->vmg.blue * ratio; - - if (g2.red < XF86_MIN_GAMMA) { - g2.red = XF86_MIN_GAMMA; -@@ -187,21 +211,21 @@ xf86_whack_gamma (int scree - unsigned short *r, *g, *b; - int i; - -- r = g_new0 (unsigned short, info->size); -- g = g_new0 (unsigned short, info->size); -- b = g_new0 (unsigned short, info->size); -- -- for (i = 0; i < info->size; i++) { -- r[i] = info->r[i] * ratio; -- g[i] = info->g[i] * ratio; -- b[i] = info->b[i] * ratio; -+ r = g_new0 (unsigned short, gamma_info->size); -+ g = g_new0 (unsigned short, gamma_info->size); -+ b = g_new0 (unsigned short, gamma_info->size); -+ -+ for (i = 0; i < gamma_info->size; i++) { -+ r[i] = gamma_info->r[i] * ratio; -+ g[i] = gamma_info->g[i] * ratio; -+ b[i] = gamma_info->b[i] * ratio; - } - -- status = XF86VidModeSetGammaRamp (GDK_DISPLAY (), screen, info->size, r, g, b); -+ status = XF86VidModeSetGammaRamp (GDK_DISPLAY (), screen, gamma_info->size, r, g, b); - -- free (r); -- free (g); -- free (b); -+ g_free (r); -+ g_free (g); -+ g_free (b); - - # else /* !HAVE_XF86VMODE_GAMMA_RAMP */ - abort (); -@@ -223,44 +247,6 @@ xf86_whack_gamma (int scree - # define XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR 2 - # define XF86_VIDMODE_GAMMA_RAMP_MIN_MINOR 1 - --static int --check_gamma_extension (void) --{ --#ifdef HAVE_XF86VMODE_GAMMA -- int event; -- int error; -- int major; -- int minor; -- gboolean res; -- -- res = XF86VidModeQueryExtension (GDK_DISPLAY (), &event, &error); -- if (! res) { -- return FADE_TYPE_NONE; /* display doesn't have the extension. */ -- } -- -- res = safe_XF86VidModeQueryVersion (GDK_DISPLAY (), &major, &minor); -- if (! res) { -- return FADE_TYPE_NONE; /* unable to get version number? */ -- } -- -- if (major < XF86_VIDMODE_GAMMA_MIN_MAJOR || -- (major == XF86_VIDMODE_GAMMA_MIN_MAJOR && -- minor < XF86_VIDMODE_GAMMA_MIN_MINOR)) { -- return FADE_TYPE_NONE; /* extension is too old for gamma. */ -- } -- -- if (major < XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR || -- (major == XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR && -- minor < XF86_VIDMODE_GAMMA_RAMP_MIN_MINOR)) { -- return FADE_TYPE_GAMMA_NUMBER; /* extension is too old for gamma ramps. */ -- } -- -- /* Copacetic */ -- return FADE_TYPE_GAMMA_RAMP; --#else -- return FADE_TYPE_NONE; --#endif /* HAVE_XF86VMODE_GAMMA */ --} - - gboolean - gs_fade_get_enabled (GSFade *fade) -@@ -282,86 +268,80 @@ gs_fade_set_enabled (GSFade *fade, - } - - static gboolean --gamma_info_init (GSFade *fade) -+gamma_fade_setup (GSFade *fade, int screen_idx) - { - #ifdef HAVE_XF86VMODE_GAMMA -- int screen; -- xf86_gamma_info *info; - gboolean res; -+ struct GSFadeScreenPrivate *screen_priv; -+ -+ screen_priv = &fade->priv->screen_priv[screen_idx]; -+ -+ if (screen_priv->info) -+ return TRUE; - - # ifndef HAVE_XF86VMODE_GAMMA_RAMP -- if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) { -+ if (FADE_TYPE_GAMMA_RAMP == screen_priv->fade_type) { - /* server is newer than client! */ -- fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ screen_priv->fade_type = FADE_TYPE_GAMMA_NUMBER; - } - # endif - -- if (fade->priv->gamma_info != NULL) { -- return TRUE; -- } -- -- info = g_new0 (xf86_gamma_info, fade->priv->num_screens); -- fade->priv->gamma_info = info; -- -- /* Get the current gamma maps for all screens. -- Bug out and return -1 if we can't get them for some screen. -- */ -- for (screen = 0; screen < fade->priv->num_screens; screen++) { -- - # ifdef HAVE_XF86VMODE_GAMMA_RAMP -+ -+ screen_priv->info = g_new0(struct GSGammaInfo, 1); -+ screen_priv->num_ramps = 1; -+ -+ if (FADE_TYPE_GAMMA_RAMP == screen_priv->fade_type) { -+ /* have ramps */ -+ -+ res = XF86VidModeGetGammaRampSize (GDK_DISPLAY (), screen_idx, &screen_priv->info->size); -+ if (!res || screen_priv->info->size <= 0) { -+ screen_priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ goto test_number; -+ } - -- if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) { -- /* have ramps */ -+ screen_priv->info->r = g_new0 (unsigned short, screen_priv->info->size); -+ screen_priv->info->g = g_new0 (unsigned short, screen_priv->info->size); -+ screen_priv->info->b = g_new0 (unsigned short, screen_priv->info->size); -+ -+ if (! (screen_priv->info->r && screen_priv->info->g && screen_priv->info->b)) { -+ screen_priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ goto test_number; -+ } - -- res = XF86VidModeGetGammaRampSize (GDK_DISPLAY (), screen, &info [screen].size); -- if (! res || info [screen].size <= 0) { -- fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -- goto test_number; -- } -- -- info [screen].r = g_new0 (unsigned short, info[screen].size); -- info [screen].g = g_new0 (unsigned short, info[screen].size); -- info [screen].b = g_new0 (unsigned short, info[screen].size); -- -- if (! (info [screen].r && info [screen].g && info [screen].b)) { -- fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -- goto test_number; -- } -- -- res = XF86VidModeGetGammaRamp (GDK_DISPLAY (), -- screen, -- info [screen].size, -- info [screen].r, -- info [screen].g, -- info [screen].b); -- if (! res) { -- fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -- goto test_number; -- } -- gs_debug ("Initialized gamma ramp fade"); -+ res = XF86VidModeGetGammaRamp (GDK_DISPLAY (), -+ screen_idx, -+ screen_priv->info->size, -+ screen_priv->info->r, -+ screen_priv->info->g, -+ screen_priv->info->b); -+ if (! res) { -+ screen_priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ goto test_number; - } -+ gs_debug ("Initialized gamma ramp fade"); -+ } - # endif /* HAVE_XF86VMODE_GAMMA_RAMP */ - - test_number: -- if (FADE_TYPE_GAMMA_NUMBER == fade->priv->fade_type) { -- /* only have gamma parameter, not ramps. */ -- -- res = XF86VidModeGetGamma (GDK_DISPLAY (), screen, &info [screen].vmg); -- if (! res) { -- fade->priv->fade_type = FADE_TYPE_NONE; -- goto test_none; -- } -- gs_debug ("Initialized gamma fade for screen %d: %f %f %f", -- screen, -- info [screen].vmg.red, -- info [screen].vmg.green, -- info [screen].vmg.blue); -+ if (FADE_TYPE_GAMMA_NUMBER == screen_priv->fade_type) { -+ /* only have gamma parameter, not ramps. */ -+ -+ res = XF86VidModeGetGamma (GDK_DISPLAY (), screen_idx, &screen_priv->vmg); -+ if (! res) { -+ screen_priv->fade_type = FADE_TYPE_NONE; -+ goto test_none; - } -- -+ gs_debug ("Initialized gamma fade for screen %d: %f %f %f", -+ screen_idx, -+ screen_priv->vmg.red, -+ screen_priv->vmg.green, -+ screen_priv->vmg.blue); -+ } -+ - test_none: -- if (FADE_TYPE_NONE == fade->priv->fade_type) { -- goto FAIL; -- } -+ if (FADE_TYPE_NONE == screen_priv->fade_type) { -+ goto FAIL; - } - - return TRUE; -@@ -369,76 +349,263 @@ gamma_info_init (GSFade *fade) - - #endif /* HAVE_XF86VMODE_GAMMA */ - --return FALSE; -+ return FALSE; - } - - static void --gamma_info_free (GSFade *fade) -+screen_fade_finish (GSFade *fade, int screen_idx) - { --#ifdef HAVE_XF86VMODE_GAMMA -+ struct GSFadeScreenPrivate *screen_priv; -+ int i; -+ screen_priv = &fade->priv->screen_priv[screen_idx]; - -- if (fade->priv->gamma_info) { -- int screen; -+ if (!screen_priv->info) -+ return; - -- for (screen = 0; screen < fade->priv->num_screens; screen++) { -- if (fade->priv->gamma_info [screen].r) { -- g_free (fade->priv->gamma_info[screen].r); -- } -- if (fade->priv->gamma_info [screen].g) { -- g_free (fade->priv->gamma_info[screen].g); -- } -- if (fade->priv->gamma_info [screen].b) { -- g_free (fade->priv->gamma_info[screen].b); -- } -- } -+ for (i = 0; i < screen_priv->num_ramps; i++) { -+ if (screen_priv->info[i].r) -+ g_free (screen_priv->info[i].r); -+ if (screen_priv->info[i].g) -+ g_free (screen_priv->info[i].g); -+ if (screen_priv->info[i].b) -+ g_free (screen_priv->info[i].b); -+ } -+ -+ g_free (screen_priv->info); -+ screen_priv->info = NULL; -+ screen_priv->num_ramps = 0; -+} - -- g_free (fade->priv->gamma_info); -- fade->priv->gamma_info = NULL; -- } -+static gboolean -+gamma_fade_set_alpha_gamma (GSFade *fade, -+ int screen_idx, -+ gdouble alpha) -+{ -+#ifdef HAVE_XF86VMODE_GAMMA -+ struct GSFadeScreenPrivate *screen_priv; -+ gboolean res; - -+ screen_priv = &fade->priv->screen_priv[screen_idx]; -+ res = xf86_whack_gamma (screen_idx, screen_priv, alpha); -+ -+ return TRUE; -+#else -+ return FALSE; - #endif /* HAVE_XF86VMODE_GAMMA */ - } - --static gboolean --gs_fade_set_alpha_gamma (GSFade *fade, -- gdouble alpha) -+static void -+check_gamma_extension (GSFade *fade, int screen_idx) - { - #ifdef HAVE_XF86VMODE_GAMMA -- int screen; -+ struct GSFadeScreenPrivate *screen_priv; -+ int event; -+ int error; -+ int major; -+ int minor; - gboolean res; - -- if (fade->priv->gamma_info != NULL) { -- for (screen = 0; screen < fade->priv->num_screens; screen++) { -- res = xf86_whack_gamma (screen, &fade->priv->gamma_info [screen], alpha); -- } -+ screen_priv = &fade->priv->screen_priv[screen_idx]; -+ -+ res = XF86VidModeQueryExtension (GDK_DISPLAY (), &event, &error); -+ if (! res) -+ goto fade_none; -+ -+ res = safe_XF86VidModeQueryVersion (GDK_DISPLAY (), &major, &minor); -+ if (! res) -+ goto fade_none; -+ -+ if (major < XF86_VIDMODE_GAMMA_MIN_MAJOR || -+ (major == XF86_VIDMODE_GAMMA_MIN_MAJOR && -+ minor < XF86_VIDMODE_GAMMA_MIN_MINOR)) -+ goto fade_none; -+ -+ screen_priv->fade_setup = gamma_fade_setup; -+ screen_priv->fade_finish = screen_fade_finish; -+ screen_priv->fade_set_alpha_gamma = gamma_fade_set_alpha_gamma; -+ -+ if (major < XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR || -+ (major == XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR && -+ minor < XF86_VIDMODE_GAMMA_RAMP_MIN_MINOR)) { -+ screen_priv->fade_type = FADE_TYPE_GAMMA_NUMBER; -+ return; - } - -+ /* Copacetic */ -+ screen_priv->fade_type = FADE_TYPE_GAMMA_RAMP; -+ return; -+ fade_none: -+#endif -+ screen_priv->fade_type = FADE_TYPE_NONE; -+} -+ -+/* Xrandr support */ -+ -+static gboolean xrandr_fade_setup (GSFade *fade, int screen_idx) -+{ -+ struct GSFadeScreenPrivate *screen_priv; -+ GnomeRRCrtc *crtc; -+ GnomeRRCrtc **crtcs; -+ int crtc_count = 0; -+ struct GSGammaInfo *info; -+ gboolean res; -+ -+ screen_priv = &fade->priv->screen_priv[screen_idx]; -+ -+ if (screen_priv->info) -+ return TRUE; -+ -+ /* refresh the screen info */ -+ gnome_rr_screen_refresh (screen_priv->rrscreen, NULL); -+ -+ crtcs = gnome_rr_screen_list_crtcs (screen_priv->rrscreen); -+ while (*crtcs) { -+ crtc_count++; -+ crtcs++; -+ }; -+ -+ screen_priv->info = g_new0 (struct GSGammaInfo, crtc_count); -+ screen_priv->num_ramps = crtc_count; -+ -+ crtc_count = 0; -+ crtcs = gnome_rr_screen_list_crtcs (screen_priv->rrscreen); -+ while (*crtcs) -+ { -+ crtc = *crtcs; -+ -+ info = &screen_priv->info[crtc_count]; -+ -+ /* if no mode ignore crtc */ -+ if (!gnome_rr_crtc_get_current_mode (crtc)) { -+ info->size = 0; -+ info->r = NULL; -+ info->g = NULL; -+ info->b = NULL; -+ } -+ else { -+ res = gnome_rr_crtc_get_gamma (crtc, &info->size, -+ &info->r, &info->g, -+ &info->b); -+ if (res == FALSE) -+ goto fail; -+ } -+ -+ crtcs++; -+ crtc_count++; -+ } - return TRUE; --#else -+ fail: - return FALSE; --#endif /* HAVE_XF86VMODE_GAMMA */ -+} -+ -+static void xrandr_crtc_whack_gamma (GnomeRRCrtc *crtc, -+ struct GSGammaInfo *gamma_info, -+ float ratio) -+{ -+ unsigned short *r, *g, *b; -+ int i; -+ -+ if (gamma_info->size == 0) -+ return; -+ -+ if (ratio < 0) { -+ ratio = 0; -+ } -+ if (ratio > 1) { -+ ratio = 1; -+ } -+ -+ r = g_new0 (unsigned short, gamma_info->size); -+ g = g_new0 (unsigned short, gamma_info->size); -+ b = g_new0 (unsigned short, gamma_info->size); -+ -+ for (i = 0; i < gamma_info->size; i++) { -+ r[i] = gamma_info->r[i] * ratio; -+ g[i] = gamma_info->g[i] * ratio; -+ b[i] = gamma_info->b[i] * ratio; -+ } -+ -+ gnome_rr_crtc_set_gamma (crtc, gamma_info->size, -+ r, g, b); -+ g_free (r); -+ g_free (g); -+ g_free (b); -+} -+ -+static gboolean xrandr_fade_set_alpha_gamma (GSFade *fade, -+ int screen_idx, -+ gdouble alpha) -+{ -+ struct GSFadeScreenPrivate *screen_priv; -+ struct GSGammaInfo *info; -+ GnomeRRCrtc **crtcs; -+ int i; -+ -+ screen_priv = &fade->priv->screen_priv[screen_idx]; -+ -+ if (!screen_priv->info) -+ return FALSE; -+ -+ crtcs = gnome_rr_screen_list_crtcs (screen_priv->rrscreen); -+ i = 0; -+ -+ while (*crtcs) -+ { -+ info = &screen_priv->info[i]; -+ xrandr_crtc_whack_gamma (*crtcs, info, alpha); -+ i++; -+ crtcs++; -+ } -+ return TRUE; -+} -+ -+static void -+check_randr_extension (GSFade *fade, int screen_idx) -+{ -+ GdkDisplay *display = gdk_display_get_default (); -+ GdkScreen *screen = gdk_display_get_screen (display, screen_idx); -+ struct GSFadeScreenPrivate *screen_priv; -+ -+ screen_priv = &fade->priv->screen_priv[screen_idx]; -+ -+ screen_priv->rrscreen = gnome_rr_screen_new (screen, -+ NULL, -+ NULL, -+ NULL); -+ if (!screen_priv->rrscreen) { -+ screen_priv->fade_type = FADE_TYPE_NONE; -+ return; -+ } -+ -+ screen_priv->fade_type = FADE_TYPE_XRANDR; -+ screen_priv->fade_setup = xrandr_fade_setup; -+ screen_priv->fade_finish = screen_fade_finish; -+ screen_priv->fade_set_alpha_gamma = xrandr_fade_set_alpha_gamma; - } - - static gboolean - gs_fade_set_alpha (GSFade *fade, - gdouble alpha) - { -- gboolean ret; -+ gboolean ret = FALSE; -+ int i; - -- switch (fade->priv->fade_type) { -- case FADE_TYPE_GAMMA_RAMP: -- case FADE_TYPE_GAMMA_NUMBER: -- ret = gs_fade_set_alpha_gamma (fade, alpha); -- break; -- case FADE_TYPE_NONE: -- ret = FALSE; -- break; -- default: -- g_warning ("Unknown fade type"); -- ret = FALSE; -- break; -+ for (i = 0; i < fade->priv->num_screens; i++) { -+ switch (fade->priv->screen_priv[i].fade_type) { -+ case FADE_TYPE_GAMMA_RAMP: -+ case FADE_TYPE_GAMMA_NUMBER: -+ case FADE_TYPE_XRANDR: -+ ret = fade->priv->screen_priv[i].fade_set_alpha_gamma (fade, i, alpha); -+ break; -+ case FADE_TYPE_NONE: -+ ret = FALSE; -+ break; -+ default: -+ g_warning ("Unknown fade type"); -+ ret = FALSE; -+ break; -+ } - } -- - return ret; - } - -@@ -527,10 +694,18 @@ gs_fade_start (GSFade *fade, - { - guint steps_per_sec = 30; - guint msecs_per_step; -+ struct GSFadeScreenPrivate *screen_priv; -+ gboolean active_fade, res; -+ int i; - - g_return_if_fail (GS_IS_FADE (fade)); - -- gamma_info_init (fade); -+ for (i = 0; i < fade->priv->num_screens; i++) { -+ screen_priv = &fade->priv->screen_priv[i]; -+ res = screen_priv->fade_setup (fade, i); -+ if (res == FALSE) -+ return; -+ } - - if (fade->priv->timer_id > 0) { - gs_fade_stop (fade); -@@ -540,7 +715,13 @@ gs_fade_start (GSFade *fade, - - gs_fade_set_timeout (fade, timeout); - -- if (fade->priv->fade_type != FADE_TYPE_NONE) { -+ active_fade = FALSE; -+ for (i = 0; i < fade->priv->num_screens; i++) { -+ screen_priv = &fade->priv->screen_priv[i]; -+ if (screen_priv->fade_type != FADE_TYPE_NONE) -+ active_fade = TRUE; -+ } -+ if (active_fade) { - guint num_steps; - - num_steps = (fade->priv->timeout / 1000) * steps_per_sec; -@@ -639,6 +820,7 @@ gs_fade_sync (GSFade *fade, - void - gs_fade_reset (GSFade *fade) - { -+ int i; - g_return_if_fail (GS_IS_FADE (fade)); - - gs_debug ("Resetting fade"); -@@ -651,7 +833,8 @@ gs_fade_reset (GSFade *fade) - - gs_fade_set_alpha (fade, fade->priv->current_alpha); - -- gamma_info_free (fade); -+ for (i = 0; i < fade->priv->num_screens; i++) -+ fade->priv->screen_priv[i].fade_finish (fade, i); - } - - static void -@@ -679,28 +862,31 @@ static void - gs_fade_init (GSFade *fade) - { - GdkDisplay *display; -+ int i; - - fade->priv = GS_FADE_GET_PRIVATE (fade); - - fade->priv->timeout = 1000; - fade->priv->current_alpha = 1.0; - -- fade->priv->fade_type = check_gamma_extension (); -- -- gs_debug ("Fade type: %d", fade->priv->fade_type); -- - display = gdk_display_get_default (); - fade->priv->num_screens = gdk_display_get_n_screens (display); - --#ifdef HAVE_XF86VMODE_GAMMA -- fade->priv->gamma_info = NULL; --#endif -+ fade->priv->screen_priv = g_new0 (struct GSFadeScreenPrivate, fade->priv->num_screens); -+ -+ for (i = 0; i < fade->priv->num_screens; i++) { -+ check_randr_extension (fade, i); -+ if (!fade->priv->screen_priv[i].fade_type) -+ check_gamma_extension (fade, i); -+ gs_debug ("Fade type: %d", fade->priv->screen_priv[i].fade_type); -+ } - } - - static void - gs_fade_finalize (GObject *object) - { - GSFade *fade; -+ int i; - - g_return_if_fail (object != NULL); - g_return_if_fail (GS_IS_FADE (object)); -@@ -709,8 +895,20 @@ gs_fade_finalize (GObject *object) - - g_return_if_fail (fade->priv != NULL); - -- gamma_info_free (fade); -+ for (i = 0; i < fade->priv->num_screens; i++) -+ fade->priv->screen_priv[i].fade_finish(fade, i); - -+ if (fade->priv->screen_priv) { -+ for (i = 0; i < fade->priv->num_screens; i++) { -+ if (!fade->priv->screen_priv[i].rrscreen) -+ continue; -+ gnome_rr_screen_destroy (fade->priv->screen_priv[i].rrscreen); -+ } -+ -+ g_free (fade->priv->screen_priv); -+ fade->priv->screen_priv = NULL; -+ } -+ - G_OBJECT_CLASS (gs_fade_parent_class)->finalize (object); - } -