[libgda] Focus improvements in GdaBrowser



commit 388db0d4b4cddf455bd5b19c1438c1b222c1c972
Author: Vivien Malerba <malerba gnome-db org>
Date:   Mon Aug 2 20:54:52 2010 +0200

    Focus improvements in GdaBrowser

 tools/browser/browser-window.c                     |    3 +++
 tools/browser/data-manager/data-console.c          |   13 ++++++++++++-
 .../data-manager/data-manager-perspective.c        |   20 ++++++++++++++++++--
 tools/browser/data-manager/xml-spec-editor.c       |    7 +++++++
 4 files changed, 40 insertions(+), 3 deletions(-)
---
diff --git a/tools/browser/browser-window.c b/tools/browser/browser-window.c
index 111b30b..b942e6a 100644
--- a/tools/browser/browser-window.c
+++ b/tools/browser/browser-window.c
@@ -518,6 +518,9 @@ browser_window_new (BrowserConnection *bcnc, BrowserPerspectiveFactory *factory)
 
         gtk_widget_show (GTK_WIDGET (bwin));
 
+	gtk_widget_set_can_focus (pers->perspective_widget, TRUE);
+	gtk_widget_grab_focus (pers->perspective_widget);
+
 	return bwin;
 }
 
diff --git a/tools/browser/data-manager/data-console.c b/tools/browser/data-manager/data-console.c
index 812ef42..84244fa 100644
--- a/tools/browser/data-manager/data-console.c
+++ b/tools/browser/data-manager/data-console.c
@@ -84,6 +84,7 @@ static void data_console_class_init (DataConsoleClass *klass);
 static void data_console_init       (DataConsole *dconsole, DataConsoleClass *klass);
 static void data_console_dispose    (GObject *object);
 static void data_console_show_all   (GtkWidget *widget);
+static void data_console_grab_focus (GtkWidget *widget);
 
 static void data_source_mgr_changed_cb (DataSourceManager *mgr, DataConsole *dconsole);
 
@@ -113,6 +114,7 @@ data_console_class_init (DataConsoleClass *klass)
 	parent_class = g_type_class_peek_parent (klass);
 
 	GTK_WIDGET_CLASS (klass)->show_all = data_console_show_all;
+	GTK_WIDGET_CLASS (klass)->grab_focus = data_console_grab_focus;
 	object_class->dispose = data_console_dispose;
 }
 
@@ -127,6 +129,15 @@ data_console_show_all (GtkWidget *widget)
 }
 
 static void
+data_console_grab_focus (GtkWidget *widget)
+{
+	DataConsole *dconsole;
+
+	dconsole = DATA_CONSOLE (widget);
+	gtk_widget_grab_focus (GTK_WIDGET (dconsole->priv->xml_sped));
+}
+
+static void
 data_console_page_init (BrowserPageIface *iface)
 {
 	iface->i_get_actions_group = data_console_page_get_actions_group;
@@ -414,7 +425,7 @@ data_console_new (BrowserConnection *bcnc)
 
 	//xml_spec_editor_set_xml_text (XML_SPEC_EDITOR (dconsole->priv->xml_sped), DEFAULT_XML);
 
-
+	gtk_widget_grab_focus (dconsole->priv->xml_sped);
 	return (GtkWidget*) dconsole;
 }
 
diff --git a/tools/browser/data-manager/data-manager-perspective.c b/tools/browser/data-manager/data-manager-perspective.c
index c59858c..8226b91 100644
--- a/tools/browser/data-manager/data-manager-perspective.c
+++ b/tools/browser/data-manager/data-manager-perspective.c
@@ -32,6 +32,7 @@
 static void data_manager_perspective_class_init (DataManagerPerspectiveClass *klass);
 static void data_manager_perspective_init (DataManagerPerspective *stmt);
 static void data_manager_perspective_dispose (GObject *object);
+static void data_manager_perspective_grab_focus (GtkWidget *widget);
 
 /* BrowserPerspective interface */
 static void                 data_manager_perspective_perspective_init (BrowserPerspectiveIface *iface);
@@ -82,15 +83,26 @@ data_manager_perspective_get_type (void)
 }
 
 static void
-data_manager_perspective_class_init (DataManagerPerspectiveClass * klass)
+data_manager_perspective_class_init (DataManagerPerspectiveClass *klass)
 {
 	GObjectClass   *object_class = G_OBJECT_CLASS (klass);
 	parent_class = g_type_class_peek_parent (klass);
 
+	GTK_WIDGET_CLASS (klass)->grab_focus = data_manager_perspective_grab_focus;
 	object_class->dispose = data_manager_perspective_dispose;
 }
 
 static void
+data_manager_perspective_grab_focus (GtkWidget *widget)
+{
+	GtkNotebook *nb;
+
+        nb = GTK_NOTEBOOK (DATA_MANAGER_PERSPECTIVE (widget)->priv->notebook);
+        gtk_widget_grab_focus (gtk_notebook_get_nth_page (nb,
+                                                          gtk_notebook_get_current_page (nb)));
+}
+
+static void
 data_manager_perspective_perspective_init (BrowserPerspectiveIface *iface)
 {
 	iface->i_get_actions_group = data_manager_perspective_get_actions_group;
@@ -168,6 +180,8 @@ data_manager_perspective_new (BrowserWindow *bwin)
 	gtk_box_pack_start (GTK_BOX (bpers), paned, TRUE, TRUE, 0);
 	gtk_widget_show_all (paned);
 
+	gtk_widget_grab_focus (page);
+
 	return bpers;
 }
 
@@ -229,6 +243,7 @@ fav_selection_changed_cb (GtkWidget *widget, gint fav_id, BrowserFavoritesType f
 	
 	data_console_set_text (page_to_reuse, selection);
 	data_console_set_fav_id (page_to_reuse, fav_id, NULL);
+	gtk_widget_grab_focus (page_to_reuse);
 }
 
 static void
@@ -299,7 +314,7 @@ manager_new_cb (GtkAction *action, BrowserPerspective *bpers)
 
 static GtkActionEntry ui_actions[] = {
         { "DataManagerMenu", NULL, "_Manager", NULL, "ManagerMenu", NULL },
-        { "NewDataManager", GTK_STOCK_NEW, "_New data manager", NULL, "New data manager",
+        { "NewDataManager", GTK_STOCK_NEW, "_New data manager", "<control>T", "New data manager",
           G_CALLBACK (manager_new_cb)},
 };
 
@@ -371,4 +386,5 @@ data_manager_perspective_new_tab (DataManagerPerspective *dmp, const gchar *xml_
 
 	data_console_set_text (DATA_CONSOLE (page), xml_spec); 
 	data_console_execute (DATA_CONSOLE (page));
+	gtk_widget_grab_focus (page);
 }
diff --git a/tools/browser/data-manager/xml-spec-editor.c b/tools/browser/data-manager/xml-spec-editor.c
index c5b5fce..0dff0e0 100644
--- a/tools/browser/data-manager/xml-spec-editor.c
+++ b/tools/browser/data-manager/xml-spec-editor.c
@@ -57,6 +57,7 @@ struct _XmlSpecEditorPrivate {
 static void xml_spec_editor_class_init (XmlSpecEditorClass *klass);
 static void xml_spec_editor_init       (XmlSpecEditor *sped, XmlSpecEditorClass *klass);
 static void xml_spec_editor_dispose    (GObject *object);
+static void xml_spec_editor_grab_focus (GtkWidget *widget);
 
 static GObjectClass *parent_class = NULL;
 
@@ -70,9 +71,15 @@ xml_spec_editor_class_init (XmlSpecEditorClass *klass)
 
 	parent_class = g_type_class_peek_parent (klass);
 
+	GTK_WIDGET_CLASS (klass)->grab_focus = xml_spec_editor_grab_focus;
 	object_class->dispose = xml_spec_editor_dispose;
 }
 
+static void
+xml_spec_editor_grab_focus (GtkWidget *widget)
+{
+	gtk_widget_grab_focus (XML_SPEC_EDITOR (widget)->priv->text);
+}
 
 static void
 xml_spec_editor_init (XmlSpecEditor *sped, XmlSpecEditorClass *klass)



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