gdm r6486 - in trunk: . gui/simple-greeter
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r6486 - in trunk: . gui/simple-greeter
- Date: Tue, 9 Sep 2008 00:58:03 +0000 (UTC)
Author: mccann
Date: Tue Sep 9 00:58:03 2008
New Revision: 6486
URL: http://svn.gnome.org/viewvc/gdm?rev=6486&view=rev
Log:
2008-09-08 William Jon McCann <jmccann redhat com>
* gui/simple-greeter/gdm-chooser-widget.c
(gdm_chooser_widget_set_selected_item):
* gui/simple-greeter/gdm-chooser-widget.h:
* gui/simple-greeter/gdm-language-chooser-dialog.c
(gdm_language_chooser_dialog_init):
* gui/simple-greeter/gdm-language-chooser-widget.c
(gdm_language_chooser_widget_set_current_language_name):
* gui/simple-greeter/gdm-layout-chooser-dialog.c
(gdm_layout_chooser_dialog_init):
* gui/simple-greeter/gdm-layout-chooser-widget.c
(gdm_layout_chooser_widget_set_current_layout_name):
Because we hacked single click to activate the entry in the user
chooser we broke the activation handling of the language and
layout choosers. Fixed this by using a different method to
simply select the item instead of activating it.
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
trunk/gui/simple-greeter/gdm-language-chooser-widget.c
trunk/gui/simple-greeter/gdm-layout-chooser-dialog.c
trunk/gui/simple-greeter/gdm-layout-chooser-widget.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 Tue Sep 9 00:58:03 2008
@@ -422,6 +422,48 @@
return id;
}
+void
+gdm_chooser_widget_set_selected_item (GdmChooserWidget *widget,
+ const char *id)
+{
+ GtkTreeIter iter;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+
+ g_return_if_fail (GDM_IS_CHOOSER_WIDGET (widget));
+
+ g_debug ("GdmChooserWidget: setting selected item '%s'",
+ id ? id : "(null)");
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget->priv->items_view));
+
+ model = GTK_TREE_MODEL (widget->priv->list_store);
+
+ if (find_item (widget, id, &iter)) {
+ GtkTreePath *path;
+
+ path = gtk_tree_model_get_path (model, &iter);
+ translate_list_path_to_view_path (widget, &path);
+
+ gtk_tree_selection_select_path (selection, path);
+
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (widget->priv->items_view),
+ path,
+ NULL,
+ TRUE,
+ 0.5,
+ 0.0);
+
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (widget->priv->items_view),
+ path,
+ NULL,
+ FALSE);
+ gtk_tree_path_free (path);
+ } else {
+ gtk_tree_selection_unselect_all (selection);
+ }
+}
+
static void
activate_from_item_id (GdmChooserWidget *widget,
const char *item_id)
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 Tue Sep 9 00:58:03 2008
@@ -106,6 +106,8 @@
gboolean *is_separate);
char * gdm_chooser_widget_get_selected_item (GdmChooserWidget *widget);
+void gdm_chooser_widget_set_selected_item (GdmChooserWidget *widget,
+ const char *item);
char * gdm_chooser_widget_get_active_item (GdmChooserWidget *widget);
void gdm_chooser_widget_set_active_item (GdmChooserWidget *widget,
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 Tue Sep 9 00:58:03 2008
@@ -159,11 +159,10 @@
setlocale (LC_MESSAGES, NULL));
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), dialog->priv->chooser_widget);
-#if 0
g_signal_connect_swapped (G_OBJECT (dialog->priv->chooser_widget),
"activated", G_CALLBACK (queue_response),
dialog);
-#endif
+
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
@@ -174,6 +173,7 @@
gtk_container_set_border_width (GTK_CONTAINER (dialog->priv->chooser_widget), 5);
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS);
gtk_window_set_default_size (GTK_WINDOW (dialog), 512, 440);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
}
static void
Modified: trunk/gui/simple-greeter/gdm-language-chooser-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-language-chooser-widget.c (original)
+++ trunk/gui/simple-greeter/gdm-language-chooser-widget.c Tue Sep 9 00:58:03 2008
@@ -84,14 +84,14 @@
g_return_if_fail (GDM_IS_LANGUAGE_CHOOSER_WIDGET (widget));
if (lang_name == NULL) {
- gdm_chooser_widget_set_active_item (GDM_CHOOSER_WIDGET (widget),
- NULL);
+ gdm_chooser_widget_set_selected_item (GDM_CHOOSER_WIDGET (widget),
+ NULL);
return;
}
name = gdm_normalize_language_name (lang_name);
- gdm_chooser_widget_set_active_item (GDM_CHOOSER_WIDGET (widget),
- name);
+ gdm_chooser_widget_set_selected_item (GDM_CHOOSER_WIDGET (widget),
+ name);
g_free (name);
}
Modified: trunk/gui/simple-greeter/gdm-layout-chooser-dialog.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-layout-chooser-dialog.c (original)
+++ trunk/gui/simple-greeter/gdm-layout-chooser-dialog.c Tue Sep 9 00:58:03 2008
@@ -148,11 +148,11 @@
gdm_layout_chooser_widget_set_current_layout_name (GDM_LAYOUT_CHOOSER_WIDGET (dialog->priv->chooser_widget),
setlocale (LC_MESSAGES, NULL));
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), dialog->priv->chooser_widget);
-#if 0
+
g_signal_connect_swapped (G_OBJECT (dialog->priv->chooser_widget),
"activated", G_CALLBACK (queue_response),
dialog);
-#endif
+
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
@@ -163,6 +163,7 @@
gtk_container_set_border_width (GTK_CONTAINER (dialog->priv->chooser_widget), 5);
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS);
gtk_window_set_default_size (GTK_WINDOW (dialog), 512, 440);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
}
static void
Modified: trunk/gui/simple-greeter/gdm-layout-chooser-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-layout-chooser-widget.c (original)
+++ trunk/gui/simple-greeter/gdm-layout-chooser-widget.c Tue Sep 9 00:58:03 2008
@@ -82,12 +82,12 @@
g_return_if_fail (GDM_IS_LAYOUT_CHOOSER_WIDGET (widget));
if (id == NULL) {
- gdm_chooser_widget_set_active_item (GDM_CHOOSER_WIDGET (widget),
- NULL);
+ gdm_chooser_widget_set_selected_item (GDM_CHOOSER_WIDGET (widget),
+ NULL);
return;
}
- gdm_chooser_widget_set_active_item (GDM_CHOOSER_WIDGET (widget), id);
+ gdm_chooser_widget_set_selected_item (GDM_CHOOSER_WIDGET (widget), id);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]