aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/menus/gal-define-views-dialog.c6
-rw-r--r--widgets/menus/gal-view-etable.c5
-rw-r--r--widgets/menus/gal-view-new-dialog.c1
-rw-r--r--widgets/menus/gal-view.c7
-rw-r--r--widgets/menus/gal-view.h9
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,