Dialog boxes: Grab focus of the source widget on reset
[pspp] / src / ui / gui / psppire-dialog-action.c
index 2a23fa6139f41181ab17c9fa29acb9202fb298c2..dfc934633d2706dc5158bcefae51acd1213c901c 100644 (file)
@@ -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 )