gdm r5976 - in trunk: . gui/simple-greeter



Author: halfline
Date: Sun Mar  9 21:57:19 2008
New Revision: 5976
URL: http://svn.gnome.org/viewvc/gdm?rev=5976&view=rev

Log:
2008-03-09  Ray Strode  <rstrode redhat com>

	* gui/simple-greeter/gdm-greeter-login-window.c:
	(GdmGreeterLoginWindowPrivate),
	(_gdm_greeter_login_window_set_interactive),
	(timed_login_timer), (on_button_clicked_answer_query),
	(on_login_button_clicked_timed_login), (do_cancel),
	(gdm_greeter_login_window_set_property),
	(gdm_greeter_login_window_get_property),
	(gdm_greeter_login_window_class_init)):
	Make "is-interactive" property to replace "interactive"
	signal, since we're going to need to track it's state
	from within the login window.
	* gui/simple-greeter/gdm-greeter-session.c:
	(GdmGreeterSessionPrivate), (on_reset):
	Don't track interactive state here anymore, we'll
	rely on the login window to tell us when to start
	the session instead of trying to figure it out
	ourselves


Modified:
   trunk/ChangeLog
   trunk/gui/simple-greeter/gdm-greeter-login-window.c
   trunk/gui/simple-greeter/gdm-greeter-session.c

Modified: trunk/gui/simple-greeter/gdm-greeter-login-window.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-login-window.c	(original)
+++ trunk/gui/simple-greeter/gdm-greeter-login-window.c	Sun Mar  9 21:57:19 2008
@@ -112,7 +112,8 @@
         GtkWidget       *user_chooser;
         GtkWidget       *auth_capslock_label;
         GtkWidget       *auth_banner_label;
-        gboolean         display_is_local;
+        guint            display_is_local : 1;
+        guint            is_interactive : 1;
         GConfClient     *client;
 
         gboolean         caps_lock_on;
@@ -133,6 +134,7 @@
 enum {
         PROP_0,
         PROP_DISPLAY_IS_LOCAL,
+        PROP_IS_INTERACTIVE,
 };
 
 enum {
@@ -143,7 +145,6 @@
         USER_SELECTED,
         DISCONNECTED,
         CANCELLED,
-        INTERACTIVE,
         LAST_SIGNAL
 };
 
@@ -257,14 +258,25 @@
         }
 }
 
+static void
+_gdm_greeter_login_window_set_interactive (GdmGreeterLoginWindow *login_window,
+                                           gboolean               is_interactive)
+{
+
+        if (login_window->priv->is_interactive != is_interactive) {
+                login_window->priv->is_interactive = is_interactive;
+                g_object_notify (G_OBJECT (login_window), "is-interactive");
+        }
+}
+
 static gboolean
 timed_login_timer (GdmGreeterLoginWindow *login_window)
 {
         set_sensitive (login_window, FALSE);
         set_message (login_window, _("Automatically logging in..."));
 
-        g_debug ("GdmGreeterLoginWindow: emitting interactive");
-        g_signal_emit (login_window, signals[INTERACTIVE], 0);
+        g_debug ("GdmGreeterLoginWindow: timer expired");
+        _gdm_greeter_login_window_set_interactive (login_window, TRUE);
         login_window->priv->timed_login_timeout_id = 0;
 
         return FALSE;
@@ -349,7 +361,7 @@
         entry = glade_xml_get_widget (login_window->priv->xml, "auth-prompt-entry");
         text = gtk_entry_get_text (GTK_ENTRY (entry));
 
-        g_signal_emit (login_window, signals[INTERACTIVE], 0);
+        _gdm_greeter_login_window_set_interactive (login_window, TRUE);
         g_signal_emit (login_window, signals[QUERY_ANSWER], 0, text);
 }
 
@@ -360,7 +372,7 @@
         set_busy (login_window);
         set_sensitive (login_window, FALSE);
 
-        g_signal_emit (login_window, signals[INTERACTIVE], 0);
+        _gdm_greeter_login_window_set_interactive (login_window, TRUE);
 }
 
 static void
@@ -524,6 +536,7 @@
         set_sensitive (login_window, FALSE);
         set_message (login_window, "");
         remove_timed_login_timeout (login_window);
+        _gdm_greeter_login_window_set_interactive (login_window, FALSE);
 
         g_signal_emit (login_window, signals[CANCELLED], 0);
 
@@ -710,6 +723,9 @@
         case PROP_DISPLAY_IS_LOCAL:
                 _gdm_greeter_login_window_set_display_is_local (self, g_value_get_boolean (value));
                 break;
+        case PROP_IS_INTERACTIVE:
+                _gdm_greeter_login_window_set_interactive (self, g_value_get_boolean (value));
+                break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                 break;
@@ -730,6 +746,10 @@
         case PROP_DISPLAY_IS_LOCAL:
                 g_value_set_boolean (value, self->priv->display_is_local);
                 break;
+        case PROP_IS_INTERACTIVE:
+                g_value_set_boolean (value, self->priv->is_interactive);
+                break;
+
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                 break;
@@ -1596,6 +1616,13 @@
                                                                "display is local",
                                                                FALSE,
                                                                G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+        g_object_class_install_property (object_class,
+                                         PROP_IS_INTERACTIVE,
+                                         g_param_spec_boolean ("is-interactive",
+                                                               "Is Interactive",
+                                                               "Use has had an oppurtunity to interact with window",
+                                                               FALSE,
+                                                               G_PARAM_READABLE));
 
         g_type_class_add_private (klass, sizeof (GdmGreeterLoginWindowPrivate));
 }

Modified: trunk/gui/simple-greeter/gdm-greeter-session.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-session.c	(original)
+++ trunk/gui/simple-greeter/gdm-greeter-session.c	Sun Mar  9 21:57:19 2008
@@ -63,8 +63,6 @@
 
         GtkWidget             *login_window;
         GtkWidget             *panel;
-
-        guint                  was_interactive : 1;
 };
 
 enum {
@@ -116,8 +114,6 @@
 
         gdm_greeter_panel_reset (GDM_GREETER_PANEL (session->priv->panel));
         gdm_greeter_login_window_reset (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window));
-
-        session->priv->was_interactive = FALSE;
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]