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



Author: halfline
Date: Mon Apr  7 07:03:57 2008
New Revision: 6120
URL: http://svn.gnome.org/viewvc/gdm?rev=6120&view=rev

Log:
2008-04-07 Ray Strode <rstrode redhat com>

	* gui/simple-greeter/gdm-chooser-widget.[ch]:
	(on_grow_animation_complete),
	(gdm_chooser_widget_grab_focus),
	(skip_resize_animation): fix warnings
	(on_row_activated):
	(gdm_chooser_widget_activate_selected_item):
	make activate_select_item external so language dialog can
	call it
	(on_button_release): don't activate on single-click if
	we aren't in resize-on-click mode
	* gui/simple-greeter/gdm-language-chooser-dialog.c:
	(gdm_language_chooser_dialog_response),
	(gdm_language_chooser_dialog_class_init),
	(gdm_language_chooser_dialog_init):
	activate the selected item when the user presses OK.


Modified:
   trunk/ChangeLog
   trunk/gui/simple-greeter/gdm-chooser-widget.c
   trunk/gui/simple-greeter/gdm-chooser-widget.h
   trunk/gui/simple-greeter/gdm-language-chooser-dialog.c

Modified: trunk/gui/simple-greeter/gdm-chooser-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-chooser-widget.c	(original)
+++ trunk/gui/simple-greeter/gdm-chooser-widget.c	Mon Apr  7 07:03:57 2008
@@ -546,7 +546,7 @@
         widget->priv->state = GDM_CHOOSER_WIDGET_STATE_GROWN;
         widget->priv->was_fully_grown = TRUE;
 
-        gtk_widget_grab_focus (widget);
+        gtk_widget_grab_focus (GTK_WIDGET (widget));
 }
 
 static int
@@ -647,7 +647,7 @@
                 set_inactive_items_visible (GDM_CHOOSER_WIDGET (widget), TRUE);
                 widget->priv->state = GDM_CHOOSER_WIDGET_STATE_GROWN;
                 widget->priv->was_fully_grown = FALSE;
-                gtk_widget_grab_focus (widget);
+                gtk_widget_grab_focus (GTK_WIDGET (widget));
         }
 }
 
@@ -774,8 +774,8 @@
         g_signal_emit (widget, signals[DEACTIVATED], 0);
 }
 
-static void
-activate_selected_item (GdmChooserWidget *widget)
+void
+gdm_chooser_widget_activate_selected_item (GdmChooserWidget *widget)
 {
         GtkTreeRowReference *row;
         GtkTreeSelection    *selection;
@@ -982,9 +982,9 @@
 }
 
 static void
-gdm_chooser_widget_grab_focus (GdmChooserWidget *widget)
+gdm_chooser_widget_grab_focus (GtkWidget *widget)
 {
-        gtk_widget_grab_focus (widget->priv->items_view);
+        gtk_widget_grab_focus (GDM_CHOOSER_WIDGET (widget)->priv->items_view);
 }
 
 static void
@@ -1051,7 +1051,7 @@
                   GtkTreeViewColumn    *tree_column,
                   GdmChooserWidget     *widget)
 {
-        activate_selected_item (widget);
+        gdm_chooser_widget_activate_selected_item (widget);
 }
 
 static gboolean
@@ -1382,6 +1382,10 @@
         GtkTreeIter       iter;
         GtkTreeSelection *selection;
 
+        if (!widget->priv->should_hide_inactive_items) {
+                return FALSE;
+        }
+
         selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget->priv->items_view));
         if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
                 GtkTreePath *path;

Modified: trunk/gui/simple-greeter/gdm-chooser-widget.h
==============================================================================
--- trunk/gui/simple-greeter/gdm-chooser-widget.h	(original)
+++ trunk/gui/simple-greeter/gdm-chooser-widget.h	Mon Apr  7 07:03:57 2008
@@ -123,6 +123,9 @@
                                                                    GdmChooserWidgetPosition  position);
 void                   gdm_chooser_widget_set_hide_inactive_items (GdmChooserWidget         *widget,
                                                                    gboolean                  should_hide);
+
+void                   gdm_chooser_widget_activate_selected_item (GdmChooserWidget *widget);
+
 G_END_DECLS
 
 #endif /* __GDM_CHOOSER_WIDGET_H */

Modified: trunk/gui/simple-greeter/gdm-language-chooser-dialog.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-language-chooser-dialog.c	(original)
+++ trunk/gui/simple-greeter/gdm-language-chooser-dialog.c	Mon Apr  7 07:03:57 2008
@@ -97,13 +97,30 @@
 }
 
 static void
+gdm_language_chooser_dialog_response (GtkDialog *dialog,
+                                      int        response_id)
+{
+        GdmLanguageChooserDialog *chooser_dialog;
+
+        chooser_dialog = GDM_LANGUAGE_CHOOSER_DIALOG (dialog);
+
+        if (response_id == GTK_RESPONSE_OK) {
+                gdm_chooser_widget_activate_selected_item (GDM_CHOOSER_WIDGET (chooser_dialog->priv->chooser_widget));
+        }
+}
+
+static void
 gdm_language_chooser_dialog_class_init (GdmLanguageChooserDialogClass *klass)
 {
         GObjectClass   *object_class = G_OBJECT_CLASS (klass);
         GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+        GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (klass);
 
         object_class->finalize = gdm_language_chooser_dialog_finalize;
         widget_class->size_request = gdm_language_chooser_dialog_size_request;
+#ifdef I_COULD_GO_BACK_IN_TIME_AND_MAKE_RESPONSE_RUN_FIRST
+        dialog_class->response = gdm_language_chooser_dialog_response;
+#endif
 
         g_type_class_add_private (klass, sizeof (GdmLanguageChooserDialogPrivate));
 }
@@ -115,10 +132,16 @@
         dialog->priv = GDM_LANGUAGE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
 
         dialog->priv->chooser_widget = gdm_language_chooser_widget_new ();
+        gdm_chooser_widget_set_hide_inactive_items (GDM_CHOOSER_WIDGET (dialog->priv->chooser_widget),
+                                                    FALSE);
         gtk_widget_show (dialog->priv->chooser_widget);
+
+#ifndef I_COULD_GO_BACK_IN_TIME_AND_MAKE_RESPONSE_RUN_FIRST
+        g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (gdm_language_chooser_dialog_response), NULL);
+#endif
+
         gdm_language_chooser_widget_set_current_language_name (GDM_LANGUAGE_CHOOSER_WIDGET (dialog->priv->chooser_widget),
                                                                setlocale (LC_MESSAGES, NULL));
-
         gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), dialog->priv->chooser_widget);
 
         gtk_dialog_add_buttons (GTK_DIALOG (dialog),



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