patches/gnome-session-18-fastreboot.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 17134 c20c37a003ee
permissions -rw-r--r--
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     1
diff -uprN gnome-session-2.28.0/gnome-session/gsm-consolekit.c gnome-session-2.28.0-new/gnome-session/gsm-consolekit.c
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     2
--- gnome-session-2.28.0/gnome-session/gsm-consolekit.c	2009-09-09 19:16:53.000000000 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     3
+++ gnome-session-2.28.0-new/gnome-session/gsm-consolekit.c	2009-11-10 16:58:17.029348387 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     4
@@ -479,6 +479,70 @@ gsm_consolekit_attempt_stop (GsmConsolek
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     5
         }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     6
 }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     7
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     8
+void
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
     9
+gsm_consolekit_get_available_systems (GsmConsolekit *manager, GPtrArray **array)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    10
+{
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    11
+        gboolean res;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    12
+        GError  *error;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    13
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    14
+        error = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    15
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    16
+        if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    17
+                g_warning ("Could not connect to ConsoleKit: %s",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    18
+                           error->message);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    19
+                emit_stop_complete (manager, error);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    20
+                g_error_free (error);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    21
+                return;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    22
+        }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    23
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    24
+        res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    25
+                                              "GetAvailableOperatingSystems",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    26
+                                              INT_MAX,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    27
+                                              &error,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    28
+                                              G_TYPE_INVALID,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    29
+					      dbus_g_type_get_collection ("GPtrArray", OS_STRUCT_TYPE),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    30
+					      array,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    31
+                                              G_TYPE_INVALID);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    32
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    33
+        if (!res) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    34
+                g_warning ("Unable to get available operating system: %s", error->message);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    35
+                g_error_free (error);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    36
+        }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    37
+}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    38
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    39
+void
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    40
+gsm_consolekit_restart_with_parameters (GsmConsolekit *manager,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    41
+		const gchar *parameters)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    42
+{
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    43
+        gboolean res;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    44
+        GError  *error;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    45
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    46
+        error = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    47
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    48
+        if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    49
+                g_warning ("Could not connect to ConsoleKit: %s",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    50
+                           error->message);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    51
+                emit_stop_complete (manager, error);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    52
+                g_error_free (error);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    53
+                return;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    54
+        }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    55
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    56
+        res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    57
+                                              "RestartWithParameters",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    58
+                                              INT_MAX,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    59
+                                              &error,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    60
+					      G_TYPE_STRING,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    61
+					      parameters,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    62
+                                              G_TYPE_INVALID,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    63
+                                              G_TYPE_INVALID);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    64
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    65
+        if (!res) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    66
+                g_warning ("Unable to restart system: %s", error->message);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    67
+                emit_restart_complete (manager, error);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    68
+                g_error_free (error);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    69
+        }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    70
+}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    71
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    72
 static gboolean
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    73
 get_current_session_id (DBusConnection *connection,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    74
                         char          **session_id)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    75
diff -uprN gnome-session-2.28.0/gnome-session/gsm-consolekit.h gnome-session-2.28.0-new/gnome-session/gsm-consolekit.h
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    76
--- gnome-session-2.28.0/gnome-session/gsm-consolekit.h	2009-04-20 02:26:52.000000000 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    77
+++ gnome-session-2.28.0-new/gnome-session/gsm-consolekit.h	2009-11-10 16:58:17.029557135 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    78
@@ -94,6 +94,18 @@ void             gsm_consolekit_set_sess
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    79
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    80
 gchar           *gsm_consolekit_get_current_session_type (GsmConsolekit *manager);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    81
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    82
+#define OS_STRUCT_TYPE (dbus_g_type_get_struct ("GValueArray",   \
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    83
+			G_TYPE_INT, \
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    84
+			G_TYPE_STRING, \
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    85
+			G_TYPE_STRING, \
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    86
+			G_TYPE_STRING, \
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    87
+			G_TYPE_BOOLEAN, \
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    88
+			G_TYPE_INVALID))
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    89
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    90
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    91
+void gsm_consolekit_get_available_systems (GsmConsolekit *manager, GPtrArray **array);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    92
+void gsm_consolekit_with_with_parameters (GsmConsolekit *manager, const gchar *parameters);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    93
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    94
 GsmConsolekit   *gsm_get_consolekit             (void);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    95
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    96
 G_END_DECLS
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    97
diff -uprN gnome-session-2.28.0/gnome-session/gsm-logout-dialog.c gnome-session-2.28.0-new/gnome-session/gsm-logout-dialog.c
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    98
--- gnome-session-2.28.0/gnome-session/gsm-logout-dialog.c	2009-11-10 17:44:49.039510013 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
    99
+++ gnome-session-2.28.0-new/gnome-session/gsm-logout-dialog.c	2009-11-10 17:43:21.340885644 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   100
@@ -59,6 +59,9 @@ struct _GsmLogoutDialogPrivate
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   101
         unsigned int         timeout_id;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   102
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   103
         unsigned int         default_response;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   104
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   105
+	unsigned int fast;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   106
+	int id;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   107
 };
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   108
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   109
 static GsmLogoutDialog *current_dialog = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   110
@@ -140,6 +143,9 @@ gsm_logout_dialog_init (GsmLogoutDialog 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   111
         logout_dialog->priv->timeout = 0;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   112
         logout_dialog->priv->default_response = GTK_RESPONSE_CANCEL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   113
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   114
+        logout_dialog->priv->fast = 1;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   115
+        logout_dialog->priv->id = -1;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   116
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   117
         gtk_window_set_skip_taskbar_hint (GTK_WINDOW (logout_dialog), TRUE);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   118
         gtk_window_set_keep_above (GTK_WINDOW (logout_dialog), TRUE);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   119
         gtk_window_stick (GTK_WINDOW (logout_dialog));
17036
8177e22f1f6a 2009-11-26 Wang Xin <[email protected]>
jedy
parents: 17021
diff changeset
   120
@@ -352,6 +358,237 @@ gsm_logout_dialog_set_timeout (GsmLogout
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   121
                                                          logout_dialog);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   122
 }
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   123
 
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   124
+#if defined(__x86) || defined(__x86__)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   125
+static void
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   126
+fast_reboot_cb (GtkWidget *button, gpointer data)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   127
+{
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   128
+	GsmLogoutDialog *logout_dialog = (GsmLogoutDialog *)data;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   129
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   130
+	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   131
+		logout_dialog->priv->fast = 1;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   132
+	} else {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   133
+		logout_dialog->priv->fast = 0;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   134
+	}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   135
+}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   136
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   137
+/* Option to skip boot menu on restart. */
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   138
+static GtkWidget *
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   139
+get_fast_reboot_option (GsmLogoutDialog *logout_dialog)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   140
+{
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   141
+	GtkWidget *check;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   142
+	char *obuf = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   143
+
17036
8177e22f1f6a 2009-11-26 Wang Xin <[email protected]>
jedy
parents: 17021
diff changeset
   144
+	/* SUN_BRANDING */
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   145
+	check = gtk_check_button_new_with_mnemonic (_("S_kip boot menu on restart"));
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   146
+	gtk_widget_show (check);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   147
+	g_signal_connect (GTK_WIDGET (check),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   148
+			"toggled",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   149
+			G_CALLBACK (fast_reboot_cb),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   150
+			logout_dialog);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   151
+	gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (check), TRUE);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   152
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   153
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   154
+	return check;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   155
+}
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   156
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   157
+static void
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   158
+boot_environment_cb (GtkWidget *button, gpointer data)
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   159
+{
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   160
+	GsmLogoutDialog *logout_dialog = (GsmLogoutDialog *)data;
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   161
+
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   162
+	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   163
+		gint id;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   164
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   165
+		id = (gint)g_object_get_data (G_OBJECT (button), "id");
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   166
+		logout_dialog->priv->id = id;
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   167
+	}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   168
+}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   169
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   170
+static GtkWidget *
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   171
+get_warning ()
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   172
+{
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   173
+	GtkBox *hbox;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   174
+	GtkImage *image;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   175
+	GtkWidget *label;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   176
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   177
+	hbox = gtk_hbox_new (FALSE, 0);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   178
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   179
+	image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   180
+			GTK_ICON_SIZE_SMALL_TOOLBAR);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   181
+	gtk_widget_show (image);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   182
+	gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   183
+	label = gtk_label_new (NULL);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   184
+	gtk_widget_show (label);
17134
c20c37a003ee 2009-12-08 Wang Xin <[email protected]>
jedy
parents: 17036
diff changeset
   185
+	gtk_label_set_markup (GTK_LABEL (label),
17036
8177e22f1f6a 2009-11-26 Wang Xin <[email protected]>
jedy
parents: 17021
diff changeset
   186
+	/* SUN_BRANDING */
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   187
+		_("<span style=\"italic\" size=\"smaller\">Options apply only after Restart, not after Shut Down</span>"));
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   188
+	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   189
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   190
+	return hbox;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   191
+}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   192
+
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   193
+/* Options to choose BE. */
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   194
+static GtkWidget *
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   195
+get_be_option (GsmLogoutDialog *logout_dialog)
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   196
+{
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   197
+	GtkWidget *warning;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   198
+	GtkWidget *label;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   199
+	GtkWidget *radio;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   200
+	GtkWidget *scroll;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   201
+	GtkWidget *vbox;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   202
+	GSList *group;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   203
+	GPtrArray *array = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   204
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   205
+	warning = get_warning ();
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   206
+	gtk_widget_show (warning);
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   207
+
17036
8177e22f1f6a 2009-11-26 Wang Xin <[email protected]>
jedy
parents: 17021
diff changeset
   208
+	/* SUN_BRANDING */
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   209
+	label = gtk_label_new_with_mnemonic (_("_Default boot environment at next restart:"));
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   210
+	gtk_widget_show (label);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   211
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   212
+	vbox = gtk_vbox_new (FALSE, 2);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   213
+	gtk_widget_show (vbox);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   214
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   215
+	gsm_consolekit_get_available_systems (logout_dialog->priv->consolekit,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   216
+			&array);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   217
+	group = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   218
+	for (int i = 0; i < array->len; i++) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   219
+		GValue elem = {0};
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   220
+		gint id;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   221
+		gchar *name;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   222
+		gboolean is_default = FALSE;
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   223
+
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   224
+		g_value_init (&elem, OS_STRUCT_TYPE);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   225
+		g_value_set_static_boxed (&elem, g_ptr_array_index (array, i));
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   226
+		dbus_g_type_struct_get (&elem,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   227
+				0, &id,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   228
+				3, &name,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   229
+				4, &is_default,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   230
+				G_MAXUINT);
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   231
+
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   232
+		radio = gtk_radio_button_new_with_label (group, name);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   233
+		gtk_widget_show (radio);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   234
+		g_object_set_data (G_OBJECT (radio), "id", (gpointer)id);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   235
+		if (is_default) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   236
+			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   237
+					TRUE);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   238
+			logout_dialog->priv->id = id;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   239
+		}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   240
+		gtk_box_pack_start (GTK_BOX (vbox), radio, FALSE, FALSE, 0);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   241
+		group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio));
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   242
+		g_signal_connect (GTK_WIDGET (radio),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   243
+				"toggled",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   244
+				G_CALLBACK (boot_environment_cb),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   245
+				logout_dialog);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   246
+	}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   247
+	scroll = gtk_scrolled_window_new (NULL, NULL);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   248
+	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   249
+			GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   250
+	gtk_widget_show (scroll);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   251
+	gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scroll),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   252
+			vbox);
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   253
+
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   254
+	/* a new vbox to put label, scrolled window and warning in */
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   255
+	vbox = gtk_vbox_new (FALSE, 2);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   256
+	gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   257
+	gtk_box_pack_start (GTK_BOX (vbox), scroll, FALSE, FALSE, 0);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   258
+	gtk_box_pack_start (GTK_BOX (vbox), warning, FALSE, FALSE, 0);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   259
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   260
+	if (array->len > 1)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   261
+		gtk_widget_show (vbox);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   262
+	g_ptr_array_free (array, TRUE);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   263
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   264
+	return vbox;
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   265
+}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   266
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   267
+static void
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   268
+create_fastreboot_options (GsmLogoutDialog *logout_dialog)
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   269
+{
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   270
+	GtkWidget *expander;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   271
+	GtkWidget *align;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   272
+	GtkWidget *check;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   273
+	GtkWidget *be;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   274
+	GtkWidget *hbox;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   275
+	GtkWidget *vbox;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   276
+	GList *list;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   277
+	gint spacing;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   278
+	gint size;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   279
+
17036
8177e22f1f6a 2009-11-26 Wang Xin <[email protected]>
jedy
parents: 17021
diff changeset
   280
+	/* SUN_BRANDING */
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   281
+	expander = gtk_expander_new_with_mnemonic (_("_More Options"));
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   282
+	gtk_widget_show (expander);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   283
+	gtk_widget_style_get (expander, "expander-size", &size,
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   284
+			"expander-spacing", &spacing, NULL);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   285
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   286
+	vbox = gtk_vbox_new (FALSE, 0);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   287
+	gtk_widget_show (vbox);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   288
+
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   289
+	check = get_fast_reboot_option (logout_dialog);
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   290
+	align = gtk_alignment_new (0.0, 0.0, 0.0, 0.0);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   291
+	gtk_widget_show (align);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   292
+	gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0,
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   293
+			(size + 2 * spacing), 0);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   294
+	gtk_container_add (GTK_CONTAINER (align), check);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   295
+	gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 10);
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   296
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   297
+	be = get_be_option (logout_dialog);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   298
+	align = gtk_alignment_new (0.0, 0.0, 0.0, 0.0);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   299
+	gtk_widget_show (align);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   300
+	gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   301
+			(size + 2 * spacing), 0);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   302
+	gtk_container_add (GTK_CONTAINER (align), be);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   303
+	gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   304
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   305
+	gtk_container_add (GTK_CONTAINER (expander), vbox);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   306
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   307
+	/*
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   308
+	 * Find the right container to put the expander in.
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   309
+	 * This is gtk dialog imeplementation specific.
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   310
+	 * So if there is something wrong with the layout
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   311
+	 * the code need to be udpated
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   312
+	 */
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   313
+	hbox = NULL;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   314
+	vbox = gtk_dialog_get_content_area (GTK_DIALOG
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   315
+			(logout_dialog)); 
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   316
+	list = gtk_container_get_children (GTK_CONTAINER (vbox));
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   317
+	for (GList *l = list; l != NULL; l = g_list_next (l)) {
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   318
+		GtkWidget *widget;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   319
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   320
+		widget = l->data;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   321
+		if (GTK_IS_HBOX(widget)) {
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   322
+			hbox = widget;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   323
+			break;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   324
+		}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   325
+	}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   326
+	g_list_free (list);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   327
+	g_assert (hbox != NULL);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   328
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   329
+	vbox = NULL;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   330
+	list = gtk_container_get_children (GTK_CONTAINER (hbox));
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   331
+	for (GList *l = list; l != NULL; l = g_list_next (l)) {
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   332
+		GtkWidget *widget;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   333
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   334
+		widget = l->data;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   335
+		if (GTK_IS_VBOX(widget)) {
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   336
+			vbox = widget;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   337
+			break;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   338
+		}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   339
+	}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   340
+	g_list_free (list);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   341
+	g_assert (vbox != NULL);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   342
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   343
+	if (vbox) {
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   344
+		gtk_box_pack_start (GTK_BOX (vbox), expander, FALSE,
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   345
+				FALSE, 10);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   346
+	} else {
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   347
+		gtk_widget_destroy (expander);
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   348
+	}
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   349
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   350
+	return;
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   351
+}
17021
8eefee4497bf 2009-11-25 Wang Xin <[email protected]>
jedy
parents: 16939
diff changeset
   352
+#endif
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   353
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   354
+
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   355
 static GtkWidget *
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   356
 gsm_get_dialog (GsmDialogLogoutType type,
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   357
                 GdkScreen          *screen,
17021
8eefee4497bf 2009-11-25 Wang Xin <[email protected]>
jedy
parents: 16939
diff changeset
   358
@@ -418,6 +653,10 @@ gsm_get_dialog (GsmDialogLogoutType type
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   359
                 }
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   360
 
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   361
                 if (gsm_logout_supports_reboot (logout_dialog)) {
17021
8eefee4497bf 2009-11-25 Wang Xin <[email protected]>
jedy
parents: 16939
diff changeset
   362
+#if defined(__x86) || defined(__x86__)
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   363
+			/* fast reboot support */
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   364
+			create_fastreboot_options(logout_dialog);
17021
8eefee4497bf 2009-11-25 Wang Xin <[email protected]>
jedy
parents: 16939
diff changeset
   365
+#endif
16208
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   366
                         gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   367
                                                _("_Restart"),
908fccf625b0 2009-08-05 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   368
                                                GSM_LOGOUT_RESPONSE_REBOOT);
16939
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   369
@@ -454,6 +691,21 @@ gsm_get_dialog (GsmDialogLogoutType type
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   370
         return GTK_WIDGET (logout_dialog);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   371
 }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   372
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   373
+gchar *
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   374
+gsm_logout_dialog_get_restart_parameters (GsmLogoutDialog *logout_dialog)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   375
+{
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   376
+	gchar *param = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   377
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   378
+	if (logout_dialog->priv->id < 0)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   379
+		return NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   380
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   381
+	param = g_strdup_printf("id:%d fast:%d",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   382
+			logout_dialog->priv->id,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   383
+			logout_dialog->priv->fast);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   384
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   385
+	return param;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   386
+}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   387
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   388
 GtkWidget *
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   389
 gsm_get_shutdown_dialog (GdkScreen *screen,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   390
                          guint32    activate_time)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   391
diff -uprN gnome-session-2.28.0/gnome-session/gsm-logout-dialog.h gnome-session-2.28.0-new/gnome-session/gsm-logout-dialog.h
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   392
--- gnome-session-2.28.0/gnome-session/gsm-logout-dialog.h	2009-04-20 02:26:52.000000000 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   393
+++ gnome-session-2.28.0-new/gnome-session/gsm-logout-dialog.h	2009-11-10 16:58:17.030235487 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   394
@@ -68,6 +68,8 @@ GtkWidget   *gsm_get_logout_dialog      
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   395
 GtkWidget   *gsm_get_shutdown_dialog      (GdkScreen           *screen,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   396
                                            guint32              activate_time);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   397
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   398
+gchar *gsm_logout_dialog_get_restart_parameters (GsmLogoutDialog *logout_dialog);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   399
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   400
 G_END_DECLS
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   401
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   402
 #endif /* __GSM_LOGOUT_DIALOG_H__ */
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   403
diff -uprN gnome-session-2.28.0/gnome-session/gsm-manager.c gnome-session-2.28.0-new/gnome-session/gsm-manager.c
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   404
--- gnome-session-2.28.0/gnome-session/gsm-manager.c	2009-11-10 17:44:49.071472976 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   405
+++ gnome-session-2.28.0-new/gnome-session/gsm-manager.c	2009-11-10 16:58:17.035407219 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   406
@@ -132,6 +132,8 @@ struct GsmManagerPrivate
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   407
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   408
         DBusGProxy             *bus_proxy;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   409
         DBusGConnection        *connection;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   410
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   411
+	gchar *parameters;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   412
 };
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   413
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   414
 enum {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   415
@@ -416,7 +418,8 @@ gsm_manager_quit (GsmManager *manager)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   416
                                   "request-completed",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   417
                                   G_CALLBACK (quit_request_completed),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   418
                                   GINT_TO_POINTER (GDM_LOGOUT_ACTION_REBOOT));
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   419
-                gsm_consolekit_attempt_restart (consolekit);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   420
+                gsm_consolekit_restart_with_parameters (consolekit,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   421
+				manager->priv->parameters);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   422
                 break;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   423
         case GSM_MANAGER_LOGOUT_REBOOT_GDM:
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   424
                 gdm_set_logout_action (GDM_LOGOUT_ACTION_REBOOT);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   425
@@ -2176,6 +2179,11 @@ gsm_manager_dispose (GObject *object)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   426
                 manager->priv->gconf_client = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   427
         }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   428
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   429
+	if (manager->priv->parameters) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   430
+		g_free (manager->priv->parameters);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   431
+		manager->priv->parameters = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   432
+	}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   433
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   434
         G_OBJECT_CLASS (gsm_manager_parent_class)->dispose (object);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   435
 }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   436
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   437
@@ -2800,6 +2808,8 @@ logout_dialog_response (GsmLogoutDialog 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   438
                 request_shutdown (manager);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   439
                 break;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   440
         case GSM_LOGOUT_RESPONSE_REBOOT:
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   441
+		manager->priv->parameters =
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   442
+			gsm_logout_dialog_get_restart_parameters (logout_dialog);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   443
                 request_reboot (manager);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   444
                 break;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   445
         case GSM_LOGOUT_RESPONSE_LOGOUT:
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   446
diff -uprN gnome-session-2.28.0/gnome-session/gsm-manager.c.orig gnome-session-2.28.0-new/gnome-session/gsm-manager.c.orig
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   447
--- gnome-session-2.28.0/gnome-session/gsm-manager.c.orig	2009-11-10 17:44:49.055937229 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   448
+++ gnome-session-2.28.0-new/gnome-session/gsm-manager.c.orig	2009-11-10 16:58:17.031615520 +0800
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   449
@@ -132,6 +132,8 @@ struct GsmManagerPrivate
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   450
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   451
         DBusGProxy             *bus_proxy;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   452
         DBusGConnection        *connection;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   453
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   454
+	gchar *parameters;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   455
 };
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   456
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   457
 enum {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   458
@@ -416,7 +418,8 @@ gsm_manager_quit (GsmManager *manager)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   459
                                   "request-completed",
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   460
                                   G_CALLBACK (quit_request_completed),
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   461
                                   GINT_TO_POINTER (GDM_LOGOUT_ACTION_REBOOT));
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   462
-                gsm_consolekit_attempt_restart (consolekit);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   463
+                gsm_consolekit_restart_with_parameters (consolekit,
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   464
+				manager->priv->parameters);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   465
                 break;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   466
         case GSM_MANAGER_LOGOUT_REBOOT_GDM:
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   467
                 gdm_set_logout_action (GDM_LOGOUT_ACTION_REBOOT);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   468
@@ -2176,6 +2179,11 @@ gsm_manager_dispose (GObject *object)
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   469
                 manager->priv->gconf_client = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   470
         }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   471
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   472
+	if (manager->priv->parameters) {
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   473
+		g_free (manager->priv->parameters);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   474
+		manager->priv->parameters = NULL;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   475
+	}
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   476
+
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   477
         G_OBJECT_CLASS (gsm_manager_parent_class)->dispose (object);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   478
 }
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   479
 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   480
@@ -2800,6 +2808,8 @@ logout_dialog_response (GsmLogoutDialog 
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   481
                 request_shutdown (manager);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   482
                 break;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   483
         case GSM_LOGOUT_RESPONSE_REBOOT:
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   484
+		manager->priv->parameters =
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   485
+			gsm_logout_dialog_get_restart_parameters (logout_dialog);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   486
                 request_reboot (manager);
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   487
                 break;
d907d4bcb089 2009-11-10 Wang Xin <[email protected]>
jedy
parents: 16215
diff changeset
   488
         case GSM_LOGOUT_RESPONSE_LOGOUT: