Focus var/data sheet after switching tabs
[pspp-builds.git] / src / ui / gui / psppire-data-editor.c
index 735d4328c930b276f060f759e7024c687605de3b..861191917e4160e524ed3927e30a1f3389aac42b 100644 (file)
@@ -548,6 +548,8 @@ psppire_data_editor_class_init (PsppireDataEditorClass *klass)
   object_class->set_property = psppire_data_editor_set_property;
   object_class->get_property = psppire_data_editor_get_property;
 
+  
+
   data_store_spec =
     g_param_spec_pointer ("data-store",
                          "Data Store",
@@ -990,11 +992,11 @@ psppire_data_editor_init (PsppireDataEditor *de)
                    G_CALLBACK (on_switch_page),
                    NULL);
 
+  g_object_set (de, "can-focus", FALSE, NULL);
 
   g_signal_connect (de, "map", G_CALLBACK (on_map), NULL);
 
 
-
   //     psppire_sheet_hide_column_titles (de->var_sheet);
   //  psppire_sheet_hide_row_titles (de->data_sheet);
 
@@ -1455,13 +1457,19 @@ static gboolean
 on_switch_page (PsppireDataEditor *de, GtkNotebookPage *p,
                gint pagenum, gpointer data)
 {
-  if ( pagenum != PSPPIRE_DATA_EDITOR_DATA_VIEW )
+  switch (pagenum)
     {
+    case PSPPIRE_DATA_EDITOR_DATA_VIEW:
+      gtk_widget_grab_focus (de->data_vbox);
+      on_select_range (de);
+      break;
+    case PSPPIRE_DATA_EDITOR_VARIABLE_VIEW:
+      gtk_widget_grab_focus (de->var_sheet);
       emit_selected_signal (de);
-      return TRUE;
-    }
-
-  on_select_range (de);
+      break;
+    default:
+      break;
+    };
 
   return TRUE;
 }
@@ -1884,5 +1892,3 @@ on_owner_change (GtkClipboard *clip, GdkEventOwnerChange *event, gpointer data)
   g_signal_emit (de, data_editor_signals[DATA_AVAILABLE_CHANGED], 0,
                 compatible_target);
 }
-
-