[gnome-builder] workbench: query perspectives before closing
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] workbench: query perspectives before closing
- Date: Mon, 21 Dec 2015 08:00:46 +0000 (UTC)
commit 285647147f4be6867c96a0910fcb999f27629efc
Author: Christian Hergert <chergert redhat com>
Date: Sat Dec 5 01:52:41 2015 -0800
workbench: query perspectives before closing
libide/ide-workbench.c | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-workbench.c b/libide/ide-workbench.c
index f42e095..43a389b 100644
--- a/libide/ide-workbench.c
+++ b/libide/ide-workbench.c
@@ -129,6 +129,33 @@ ide_workbench_unload_cb (GObject *object,
}
static gboolean
+ide_workbench_agree_to_shutdown (IdeWorkbench *self)
+{
+ GList *children;
+ const GList *iter;
+ gboolean ret = TRUE;
+
+ g_assert (IDE_IS_WORKBENCH (self));
+
+ children = gtk_container_get_children (GTK_CONTAINER (self->perspectives_stack));
+
+ for (iter = children; iter; iter = iter->next)
+ {
+ IdePerspective *perspective = iter->data;
+
+ if (!ide_perspective_agree_to_shutdown (perspective))
+ {
+ ret = FALSE;
+ break;
+ }
+ }
+
+ g_list_free (children);
+
+ return ret;
+}
+
+static gboolean
ide_workbench_delete_event (GtkWidget *widget,
GdkEventAny *event)
{
@@ -143,6 +170,9 @@ ide_workbench_delete_event (GtkWidget *widget,
return GDK_EVENT_STOP;
}
+ if (!ide_workbench_agree_to_shutdown (self))
+ return GDK_EVENT_STOP;
+
self->unloading = TRUE;
g_signal_emit (self, signals [UNLOAD], 0, self->context);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]