void
Push2::set_current_layout (Push2Layout* layout)
{
- if (_current_layout) {
- _current_layout->hide ();
- _canvas->root()->remove (_current_layout);
- _previous_layout = _current_layout;
- }
+ if (layout && layout == _current_layout) {
+ _current_layout->show ();
+ } else {
- _current_layout = layout;
+ if (_current_layout) {
+ _current_layout->hide ();
+ _canvas->root()->remove (_current_layout);
+ _previous_layout = _current_layout;
+ }
+
+ _current_layout = layout;
+
+ if (_current_layout) {
+ _canvas->root()->add (_current_layout);
+ _current_layout->show ();
+ }
- if (_current_layout) {
- _canvas->root()->add (_current_layout);
- _current_layout->show ();
- }
- _canvas->request_redraw ();
+ _canvas->request_redraw ();
+ }
}
void