Indicate filtered cases in data sheet.
[pspp-builds.git] / src / ui / gui / psppire-data-editor.c
index 2a05538db148b938848ce7c8aeb58bbd36280453..a608e6de29e8745d089b885189e0249dc5b36570 100644 (file)
@@ -380,9 +380,15 @@ psppire_data_editor_set_property (GObject         *object,
       g_object_ref (de->data_store);
 
       for (i = 0 ; i < 4 ; ++i )
-       g_object_set (de->data_sheet[i],
-                     "model", de->data_store,
-                     NULL);
+       {
+         g_object_set (de->data_sheet[i],
+                       "model", de->data_store,
+                       NULL);
+
+         g_signal_connect_swapped (de->data_store->dict, "filter-changed",
+                                   G_CALLBACK (gtk_widget_queue_draw),
+                                   de->data_sheet[i]);
+       }
 
       g_signal_connect (de->data_store->dict, "backend-changed",
                        G_CALLBACK (new_variables_callback), de);
@@ -1457,13 +1463,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;
 }