From 15ff7e7d1a1e726b0e6d03196453a7d8efc0a61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20L=C3=B6f?= Date: Sat, 30 Jul 2016 00:20:53 +1200 Subject: [PATCH 1/2] Fix bug #24553: Prevent the display (and others) from drawing over the storyscreen. This also adds a call to stop flips during a full redraw as a consequence of a window event. --- src/events.cpp | 1 + src/storyscreen/render.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/events.cpp b/src/events.cpp index c083811e0d1..46a3a161cb5 100644 --- a/src/events.cpp +++ b/src/events.cpp @@ -467,6 +467,7 @@ void pump() } //make sure this runs in it's own scope. { + flip_locker flip_lock(CVideo::get_singleton()); for( std::deque::iterator i = event_contexts.begin() ; i != event_contexts.end(); ++i) { const handler_list& event_handlers = (*i).handlers; for(auto handler : event_handlers) { diff --git a/src/storyscreen/render.cpp b/src/storyscreen/render.cpp index 576c40e0d27..920c1234b33 100644 --- a/src/storyscreen/render.cpp +++ b/src/storyscreen/render.cpp @@ -964,6 +964,8 @@ bool part_ui::handle_interface() part_ui::RESULT part_ui::show() { + update_locker locker(video_); + this->prepare_background(); this->prepare_geometry(); this->prepare_floating_images(); From 0205a9b59c12eb7c020afcbe0076a8a11175ef01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20L=C3=B6f?= Date: Fri, 5 Aug 2016 21:34:35 +1200 Subject: [PATCH 2/2] Ensure that the buttons are redrawn when the bigmap is drawn on top --- src/storyscreen/render.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/storyscreen/render.cpp b/src/storyscreen/render.cpp index 920c1234b33..4935674f718 100644 --- a/src/storyscreen/render.cpp +++ b/src/storyscreen/render.cpp @@ -366,6 +366,9 @@ bool part_ui::render_floating_images() update_rect(old_ri.rect); } } + back_button_.set_dirty(); + next_button_.set_dirty(); + play_button_.set_dirty(); if (!skip_) { @@ -380,7 +383,6 @@ bool part_ui::render_floating_images() ++fi_n; } - return true; #endif }