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..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 } @@ -964,6 +966,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();