summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorgustav_b <gustav_b@users.sourceforge.net>2008-01-30 12:20:36 +0000
committergustav_b <gustav_b@users.sourceforge.net>2008-01-30 12:20:36 +0000
commit4fa61f9ab484be73cee907faf7ead2b1bd0e24a7 (patch)
tree6d58a229b9b9151709556370670746a4f5b8133b /src
parentfix 169057 and prevent non-numeric input for font size (diff)
downloadinkscape-4fa61f9ab484be73cee907faf7ead2b1bd0e24a7.tar.gz
inkscape-4fa61f9ab484be73cee907faf7ead2b1bd0e24a7.zip
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" (bzr r4619)
Diffstat (limited to 'src')
-rw-r--r--src/ui/dialog/panel-dialog.h20
1 files 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 <typename T>
static PanelDialog<Behavior> *create();
- virtual void present() { Dialog::present(); }
+ inline virtual void present();
private:
PanelDialog(); // no constructor without params
@@ -93,7 +93,7 @@ public:
template <typename T>
static PanelDialog<Behavior::FloatingBehavior> *create();
- virtual void present() { Dialog::present(); }
+ inline virtual void present();
private:
PanelDialog(); // no constructor without params
@@ -134,7 +134,6 @@ PanelDialog<B>::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<B>::create()
return new PanelDialog<B>(panel, panel.getPrefsPath(), panel.getVerb(), panel.getApplyLabel());
}
+template <typename B>
+void
+PanelDialog<B>::present()
+{
+ Dialog::present();
+ _panel.present();
+}
PanelDialog<Behavior::FloatingBehavior>::PanelDialog(Panel &panel, char const *prefs_path,
int const verb_num, Glib::ustring const &apply_label) :
@@ -173,7 +179,6 @@ PanelDialog<Behavior::FloatingBehavior>::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<Behavior::FloatingBehavior>::PanelDialog(Panel &panel, char const *p
show_all_children();
}
+void
+PanelDialog<Behavior::FloatingBehavior>::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.