[niepce] gtk4: Fix preference dialog



commit bcf236a4f58acbafd30b2166856b08a218cf6cba
Author: Hubert Figuière <hub figuiere net>
Date:   Sat Oct 15 01:47:27 2022 -0400

    gtk4: Fix preference dialog

 src/fwk/toolkit/dialog.cpp          | 1 +
 src/niepce/ui/niepceapplication.cpp | 8 ++++++--
 2 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/src/fwk/toolkit/dialog.cpp b/src/fwk/toolkit/dialog.cpp
index 972eac89..b680d293 100644
--- a/src/fwk/toolkit/dialog.cpp
+++ b/src/fwk/toolkit/dialog.cpp
@@ -47,6 +47,7 @@ void Dialog::run_modal(const Frame::Ptr& parent, std::function<void(int)> on_ok)
     gtkDialog().set_transient_for(parent->gtkWindow());
     gtkDialog().set_default_response(Gtk::ResponseType::CLOSE);
     gtkDialog().set_modal();
+    gtkDialog().set_hide_on_close(true);
     gtkDialog().signal_response().connect(on_ok);
     gtkDialog().show();
     DBG_OUT("dialog shown");
diff --git a/src/niepce/ui/niepceapplication.cpp b/src/niepce/ui/niepceapplication.cpp
index efafc2e7..733cd5dd 100644
--- a/src/niepce/ui/niepceapplication.cpp
+++ b/src/niepce/ui/niepceapplication.cpp
@@ -90,8 +90,12 @@ void NiepceApplication::on_action_preferences()
     DBG_OUT("on_preferences");
 
     auto dlg(new PreferencesDialog());
-    dlg->run_modal(AppFrame::Ptr(m_main_frame));
-
+    dlg->run_modal(AppFrame::Ptr(m_main_frame),
+                   [dlg] (int) {
+                       delete dlg;
+                       DBG_OUT("destroyed pref dialog");
+                       return false;
+                   });
     DBG_OUT("end on_preferences");
 }
 


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