From 4568e498cabd2c8523a5c0717e57c71d334f26e7 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 1 Jan 2019 17:07:46 -0800 Subject: GLK: FROTZ: Fix #10843 Status bar disappearing when textbox is shown --- engines/glk/frotz/glk_interface.cpp | 1 + engines/glk/window_text_grid.cpp | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/engines/glk/frotz/glk_interface.cpp b/engines/glk/frotz/glk_interface.cpp index 88abbe3f68..4aa2ba4e78 100644 --- a/engines/glk/frotz/glk_interface.cpp +++ b/engines/glk/frotz/glk_interface.cpp @@ -591,6 +591,7 @@ zchar GlkInterface::os_read_line(int max, zchar *buf, int timeout, int width, in glk_request_timer_events(0); buf[ev.val1] = '\0'; + // If the upper status line area was expanded to show a text box/quotation, restore it back if (gos_upper && mach_status_ht < curr_status_ht) reset_status_ht(); curr_status_ht = 0; diff --git a/engines/glk/window_text_grid.cpp b/engines/glk/window_text_grid.cpp index d1f26da55f..ee3921d9c6 100644 --- a/engines/glk/window_text_grid.cpp +++ b/engines/glk/window_text_grid.cpp @@ -646,11 +646,14 @@ void TextGridWindow::getSize(uint *width, uint *height) const { /*--------------------------------------------------------------------------*/ void TextGridWindow::TextGridRow::resize(size_t newSize) { - _chars.clear(); - _attrs.clear(); - _chars.resize(newSize); - _attrs.resize(newSize); - Common::fill(&_chars[0], &_chars[0] + newSize, ' '); + size_t oldSize = _chars.size(); + if (newSize != oldSize) { + _chars.resize(newSize); + _attrs.resize(newSize); + + if (newSize > oldSize) + Common::fill(&_chars[0] + oldSize, &_chars[0] + newSize, ' '); + } } } // End of namespace Glk -- cgit v1.2.3