X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog-action.c;h=dfc934633d2706dc5158bcefae51acd1213c901c;hb=e17bf22963466952e4333a9f9994ebad4ca2f5e8;hp=e2b15e03eba76085b90d9c5756ba8f6a493bf6b4;hpb=7466f9c7baaf5a5d4cc7b670be290395ccb20b65;p=pspp diff --git a/src/ui/gui/psppire-dialog-action.c b/src/ui/gui/psppire-dialog-action.c index e2b15e03eb..dfc934633d 100644 --- a/src/ui/gui/psppire-dialog-action.c +++ b/src/ui/gui/psppire-dialog-action.c @@ -88,7 +88,6 @@ psppire_dialog_action_activate (PsppireDialogAction *act) { gint response; - PsppireVarStore *vs; PsppireDialogActionClass *class = PSPPIRE_DIALOG_ACTION_GET_CLASS (act); GSList *sl = gtk_ui_manager_get_toplevels (act->uim, GTK_UI_MANAGER_MENUBAR | GTK_UI_MANAGER_TOOLBAR); @@ -97,9 +96,7 @@ psppire_dialog_action_activate (PsppireDialogAction *act) act->toplevel = gtk_widget_get_toplevel (GTK_WIDGET (sl->data)); g_slist_free (sl); - vs = PSPPIRE_DATA_WINDOW(act->toplevel)->var_store; - - g_object_get (vs, "dictionary", &act->dict, NULL); + act->dict = PSPPIRE_DATA_WINDOW(act->toplevel)->dict; g_object_set (act->source, "model", act->dict, NULL); @@ -109,6 +106,8 @@ psppire_dialog_action_activate (PsppireDialogAction *act) if (GTK_ACTION_CLASS (psppire_dialog_action_parent_class)->activate) GTK_ACTION_CLASS (psppire_dialog_action_parent_class)->activate ( GTK_ACTION (act)); + gtk_widget_grab_focus (act->source); + response = psppire_dialog_run (PSPPIRE_DIALOG (act->dialog)); if ( class->generate_syntax ) @@ -126,6 +125,8 @@ psppire_dialog_action_activate (PsppireDialogAction *act) break; } } + + gtk_widget_destroy (act->dialog); } static void @@ -138,7 +139,7 @@ psppire_dialog_action_class_init (PsppireDialogActionClass *class) "Manager", "The GtkUIManager which created this object", GTK_TYPE_UI_MANAGER, - G_PARAM_CONSTRUCT_ONLY |G_PARAM_READWRITE); + G_PARAM_READWRITE); GParamSpec *toplevel_spec = g_param_spec_object ("top-level",