fix meterbridge window pos+size state save
authorRobin Gareus <robin@gareus.org>
Tue, 9 Jul 2013 17:48:15 +0000 (19:48 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 10 Jul 2013 13:27:16 +0000 (15:27 +0200)
...even if window is not open when session is closed.

gtk2_ardour/meterbridge.cc

index d6f1fee0ad2dff149126e56e3606e095740ad555..15e98a5d4dfbc955b53088c7059c194a3346ed21 100644 (file)
@@ -471,26 +471,24 @@ Meterbridge::set_state (const XMLNode& node)
 XMLNode&
 Meterbridge::get_state (void)
 {
+       char buf[32];
        XMLNode* node = new XMLNode ("Meterbridge");
 
-       if (is_realized()) {
-               Glib::RefPtr<Gdk::Window> win = get_window();
-
+       if (is_realized() && _visible) {
                get_window_pos_and_size ();
-
-               XMLNode* geometry = new XMLNode ("geometry");
-               char buf[32];
-               snprintf(buf, sizeof(buf), "%d", m_width);
-               geometry->add_property(X_("x_size"), string(buf));
-               snprintf(buf, sizeof(buf), "%d", m_height);
-               geometry->add_property(X_("y_size"), string(buf));
-               snprintf(buf, sizeof(buf), "%d", m_root_x);
-               geometry->add_property(X_("x_pos"), string(buf));
-               snprintf(buf, sizeof(buf), "%d", m_root_y);
-               geometry->add_property(X_("y_pos"), string(buf));
-               node->add_child_nocopy (*geometry);
        }
 
+       XMLNode* geometry = new XMLNode ("geometry");
+       snprintf(buf, sizeof(buf), "%d", m_width);
+       geometry->add_property(X_("x_size"), string(buf));
+       snprintf(buf, sizeof(buf), "%d", m_height);
+       geometry->add_property(X_("y_size"), string(buf));
+       snprintf(buf, sizeof(buf), "%d", m_root_x);
+       geometry->add_property(X_("x_pos"), string(buf));
+       snprintf(buf, sizeof(buf), "%d", m_root_y);
+       geometry->add_property(X_("y_pos"), string(buf));
+       node->add_child_nocopy (*geometry);
+
        node->add_property ("show-meterbridge", _visible ? "yes" : "no");
        return *node;
 }