X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-data-editor.c;h=ab3b21284ec55d23968c7c0de5c3a3fa246beb52;hb=9a331fe64eb814ae5c1322e21717a04fb254bf65;hp=735d4328c930b276f060f759e7024c687605de3b;hpb=cc57a28ef6796ae9a64ef80d453f72126956d49d;p=pspp-builds.git diff --git a/src/ui/gui/psppire-data-editor.c b/src/ui/gui/psppire-data-editor.c index 735d4328..ab3b2128 100644 --- a/src/ui/gui/psppire-data-editor.c +++ b/src/ui/gui/psppire-data-editor.c @@ -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); @@ -548,6 +554,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", @@ -854,11 +862,10 @@ init_data_sheet (PsppireDataEditor *de) de->vaxis[0] = psppire_axis_impl_new (); de->vaxis[1] = psppire_axis_impl_new (); - /* Txoxovhere's only one horizontal axis, since the + /* There's only one horizontal axis, since the column widths are parameters of the variables */ de->haxis = psppire_axis_impl_new (); - de->split = TRUE; de->paned = gtk_xpaned_new (); @@ -990,11 +997,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 +1462,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 +1897,3 @@ on_owner_change (GtkClipboard *clip, GdkEventOwnerChange *event, gpointer data) g_signal_emit (de, data_editor_signals[DATA_AVAILABLE_CHANGED], 0, compatible_target); } - -