From f74aa6eb7eafd196e05b99057f9e694ae5c31561 Mon Sep 17 00:00:00 2001 From: gustav_b Date: Wed, 30 Jan 2008 12:20:36 +0000 Subject: [PATCH] When a panel dialog is presented, request it's panel to be presented as well. Fixes #184499 "Inkscape Preferences dialog does not remember tabs/pages" --- src/ui/dialog/panel-dialog.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/ui/dialog/panel-dialog.h b/src/ui/dialog/panel-dialog.h index 3eeea6d95..6a2218a06 100644 --- a/src/ui/dialog/panel-dialog.h +++ b/src/ui/dialog/panel-dialog.h @@ -71,7 +71,7 @@ public: template static PanelDialog *create(); - virtual void present() { Dialog::present(); } + inline virtual void present(); private: PanelDialog(); // no constructor without params @@ -93,7 +93,7 @@ public: template static PanelDialog *create(); - virtual void present() { Dialog::present(); } + inline virtual void present(); private: PanelDialog(); // no constructor without params @@ -134,7 +134,6 @@ PanelDialog::PanelDialog(Panel &panel, char const *prefs_path, int const verb { Gtk::VBox *vbox = get_vbox(); _panel.signalResponse().connect(sigc::mem_fun(*this, &PanelDialog::_handleResponse)); - _panel.signalPresent().connect(sigc::mem_fun(*this, &PanelDialog::present)); vbox->pack_start(_panel, true, true, 0); @@ -165,6 +164,13 @@ PanelDialog::create() return new PanelDialog(panel, panel.getPrefsPath(), panel.getVerb(), panel.getApplyLabel()); } +template +void +PanelDialog::present() +{ + Dialog::present(); + _panel.present(); +} PanelDialog::PanelDialog(Panel &panel, char const *prefs_path, int const verb_num, Glib::ustring const &apply_label) : @@ -173,7 +179,6 @@ PanelDialog::PanelDialog(Panel &panel, char const *p { Gtk::VBox *vbox = get_vbox(); _panel.signalResponse().connect(sigc::mem_fun(*this, &PanelDialog::_handleResponse)); - _panel.signalPresent().connect(sigc::mem_fun(*this, &PanelDialog::present)); vbox->pack_start(_panel, true, true, 0); @@ -196,6 +201,13 @@ PanelDialog::PanelDialog(Panel &panel, char const *p show_all_children(); } +void +PanelDialog::present() +{ + Dialog::present(); + _panel.present(); +} + /** * Specialize factory method for panel dialogs with floating behavior in order to make them work as * singletons, i.e. allow them track the current active desktop. -- 2.30.2