diff options
Diffstat (limited to 'widgets/menus')
-rw-r--r-- | widgets/menus/gal-define-views-dialog.c | 6 | ||||
-rw-r--r-- | widgets/menus/gal-view-etable.c | 5 | ||||
-rw-r--r-- | widgets/menus/gal-view-new-dialog.c | 1 | ||||
-rw-r--r-- | widgets/menus/gal-view.c | 7 | ||||
-rw-r--r-- | widgets/menus/gal-view.h | 9 |
5 files changed, 18 insertions, 10 deletions
diff --git a/widgets/menus/gal-define-views-dialog.c b/widgets/menus/gal-define-views-dialog.c index f0491f29c9..07a584dea8 100644 --- a/widgets/menus/gal-define-views-dialog.c +++ b/widgets/menus/gal-define-views-dialog.c @@ -115,9 +115,10 @@ gdvd_button_new_dialog_callback(GtkWidget *widget, int id, GalDefineViewsDialog gchar *dup_of_name = g_strdup(name); g_strchomp(dup_of_name); if (*dup_of_name != '\0') { + GtkWidget *editor; view = gal_view_factory_new_view(factory, dup_of_name); gal_define_views_model_append(GAL_DEFINE_VIEWS_MODEL(dialog->model), view); - gal_view_edit(view); + gal_view_edit(view, GTK_WINDOW (dialog)); g_object_unref(view); } g_free(dup_of_name); @@ -131,6 +132,7 @@ static void gdvd_button_new_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) { GtkWidget *view_new_dialog = gal_view_new_dialog_new(dialog->collection); + gtk_window_set_transient_for (GTK_WINDOW (view_new_dialog), GTK_WINDOW (dialog)); g_signal_connect(view_new_dialog, "response", G_CALLBACK(gdvd_button_new_dialog_callback), dialog); gtk_widget_show(view_new_dialog); @@ -151,7 +153,7 @@ gdvd_button_modify_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) GalView *view; view = gal_define_views_model_get_view(GAL_DEFINE_VIEWS_MODEL(dialog->model), row); - gal_view_edit(view); + gal_view_edit(view, GTK_WINDOW (dialog)); } } diff --git a/widgets/menus/gal-view-etable.c b/widgets/menus/gal-view-etable.c index c69a624de5..a881b52bab 100644 --- a/widgets/menus/gal-view-etable.c +++ b/widgets/menus/gal-view-etable.c @@ -71,14 +71,15 @@ config_changed (ETableConfig *config, GalViewEtable *view) } static void -gal_view_etable_edit (GalView *view) +gal_view_etable_edit (GalView *view, GtkWindow *parent) { GalViewEtable *etable_view = GAL_VIEW_ETABLE(view); ETableConfig *config; config = e_table_config_new(etable_view->title, etable_view->spec, - etable_view->state); + etable_view->state, + parent); g_signal_connect(config, "changed", G_CALLBACK(config_changed), view); diff --git a/widgets/menus/gal-view-new-dialog.c b/widgets/menus/gal-view-new-dialog.c index ca4fcdd074..bb81afdd4d 100644 --- a/widgets/menus/gal-view-new-dialog.c +++ b/widgets/menus/gal-view-new-dialog.c @@ -104,6 +104,7 @@ gal_view_new_dialog_init (GalViewNewDialog *dialog) NULL); gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, TRUE, FALSE); + gtk_window_set_modal (GTK_WINDOW(dialog), TRUE); dialog->collection = NULL; dialog->selected_factory = NULL; diff --git a/widgets/menus/gal-view.c b/widgets/menus/gal-view.c index 8554c4c5de..fa1402fae4 100644 --- a/widgets/menus/gal-view.c +++ b/widgets/menus/gal-view.c @@ -44,15 +44,18 @@ static guint gal_view_signals [LAST_SIGNAL] = { 0, }; /** * gal_view_edit * @view: The view to edit + * @parent: the parent window. */ void -gal_view_edit (GalView *view) +gal_view_edit (GalView *view, + GtkWindow *parent) { g_return_if_fail (view != NULL); g_return_if_fail (GAL_IS_VIEW (view)); + g_return_if_fail (GTK_IS_WINDOW (parent)); if (GAL_VIEW_GET_CLASS (view)->edit) - GAL_VIEW_GET_CLASS (view)->edit (view); + GAL_VIEW_GET_CLASS (view)->edit (view, parent); } /** diff --git a/widgets/menus/gal-view.h b/widgets/menus/gal-view.h index 5ae99b8535..77056243c5 100644 --- a/widgets/menus/gal-view.h +++ b/widgets/menus/gal-view.h @@ -24,7 +24,7 @@ #ifndef _GAL_VIEW_H_ #define _GAL_VIEW_H_ -#include <gtk/gtkobject.h> +#include <gtk/gtkwindow.h> #include <libxml/tree.h> #ifdef __cplusplus @@ -48,7 +48,7 @@ typedef struct { /* * Virtual methods */ - void (*edit) (GalView *view); + void (*edit) (GalView *view, GtkWindow *parent_window); void (*load) (GalView *view, const char *filename); void (*save) (GalView *view, @@ -66,8 +66,9 @@ typedef struct { /* Standard functions */ GType gal_view_get_type (void); -/* Open an editor dialog for this view. */ -void gal_view_edit (GalView *view); +/* Open an editor dialog for this view, modal/transient for the GtkWindow arg. */ +void gal_view_edit (GalView *view, + GtkWindow *parent); /* xml load and save functions */ void gal_view_load (GalView *view, |