[gnome-builder/wip/chergert/libpanel-changes] libide/editor: implement discard for page



commit 1883d55c64fec5793c2b793fd8499eb31b3f4cdd
Author: Christian Hergert <chergert redhat com>
Date:   Tue Sep 13 10:43:47 2022 -0700

    libide/editor: implement discard for page

 src/libide/editor/ide-editor-save-delegate.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)
---
diff --git a/src/libide/editor/ide-editor-save-delegate.c b/src/libide/editor/ide-editor-save-delegate.c
index 9b90c20c9..2b2ce1e04 100644
--- a/src/libide/editor/ide-editor-save-delegate.c
+++ b/src/libide/editor/ide-editor-save-delegate.c
@@ -123,6 +123,18 @@ ide_editor_save_delegate_save_finish (PanelSaveDelegate  *delegate,
   IDE_RETURN (ret);
 }
 
+static void
+ide_editor_save_delegate_discard (PanelSaveDelegate *delegate)
+{
+  IdeEditorSaveDelegate *self = (IdeEditorSaveDelegate *)delegate;
+
+  g_assert (IDE_IS_MAIN_THREAD ());
+  g_assert (IDE_IS_EDITOR_SAVE_DELEGATE (self));
+
+  if (self->page != NULL)
+    panel_widget_force_close (PANEL_WIDGET (self->page));
+}
+
 static void
 ide_editor_save_delegate_dispose (GObject *object)
 {
@@ -182,6 +194,7 @@ ide_editor_save_delegate_class_init (IdeEditorSaveDelegateClass *klass)
   object_class->get_property = ide_editor_save_delegate_get_property;
   object_class->set_property = ide_editor_save_delegate_set_property;
 
+  save_delegate_class->discard = ide_editor_save_delegate_discard;
   save_delegate_class->save_async = ide_editor_save_delegate_save_async;
   save_delegate_class->save_finish = ide_editor_save_delegate_save_finish;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]