aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-11-10 01:31:31 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-11-10 01:31:31 +0800
commitf6ba97d9647a768ef225fdc095c16e8aa635f8f9 (patch)
tree3615944da762e988d658eb14c2a076171917aba3 /calendar/gui
parent1dad2d7745eb55a6772d2f276f034150153355e7 (diff)
downloadgsoc2013-evolution-f6ba97d9647a768ef225fdc095c16e8aa635f8f9.tar.gz
gsoc2013-evolution-f6ba97d9647a768ef225fdc095c16e8aa635f8f9.tar.zst
gsoc2013-evolution-f6ba97d9647a768ef225fdc095c16e8aa635f8f9.zip
BugĀ 601219 - Transient dialogs in composer window blocks main window
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/dialogs/comp-editor.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 7f96b4bf8b..4d3c0af523 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -81,6 +81,10 @@ struct _CompEditorPrivate {
gpointer shell; /* weak pointer */
+ /* Each CompEditor window gets its own GtkWindowGroup, so it
+ * doesn't block the main window or other CompEditor windows. */
+ GtkWindowGroup *window_group;
+
/* Client to use */
ECal *client;
@@ -1328,6 +1332,11 @@ comp_editor_dispose (GObject *object)
priv->shell = NULL;
}
+ if (priv->window_group != NULL) {
+ g_object_unref (priv->window_group);
+ priv->window_group = NULL;
+ }
+
if (priv->client) {
g_object_unref (priv->client);
priv->client = NULL;
@@ -1608,6 +1617,7 @@ comp_editor_init (CompEditor *editor)
GtkWidget *container;
GtkWidget *widget;
GtkWidget *scroll;
+ GtkWindow *window;
EShell *shell;
gint n_targets;
GError *error = NULL;
@@ -1620,6 +1630,11 @@ comp_editor_init (CompEditor *editor)
active_editors = g_list_prepend (active_editors, editor);
+ /* Each editor window gets its own window group. */
+ window = GTK_WINDOW (editor);
+ priv->window_group = gtk_window_group_new ();
+ gtk_window_group_add_window (priv->window_group, window);
+
priv->pages = NULL;
priv->changed = FALSE;
priv->needs_send = FALSE;