{
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);
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);
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 )
break;
}
}
+
+ gtk_widget_destroy (act->dialog);
}
static void
"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",
psppire_dialog_action_set_valid_predicate (PsppireDialogAction *act,
ContentsAreValid dialog_state_valid)
{
- psppire_dialog_set_valid_predicate (act->dialog, dialog_state_valid, act);
+ psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (act->dialog),
+ dialog_state_valid, act);
}
void
g_signal_connect_swapped (pda->dialog, "refresh", G_CALLBACK (refresh), pda);
}
+
+void
+psppire_dialog_action_set_activation (gpointer class, activation activate)
+{
+ GTK_ACTION_CLASS (class)->activate = activate;
+}
+