From 303358973fc3551dc73ee2ca5995ea0d9661483c Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 27 Sep 2016 13:47:29 -0500 Subject: push2: improve logic of ::set_current_layout() to allow reset of same layout --- libs/surfaces/push2/push2.cc | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'libs/surfaces') diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc index 77088587b4..f7606fa641 100644 --- a/libs/surfaces/push2/push2.cc +++ b/libs/surfaces/push2/push2.cc @@ -1712,20 +1712,26 @@ Push2::get_color (ColorName name) 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 -- cgit v1.2.3