aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2019-01-01 17:07:46 -0800
committerPaul Gilbert2019-01-01 17:07:46 -0800
commit4568e498cabd2c8523a5c0717e57c71d334f26e7 (patch)
tree486ecff52c08de08df74cf8b8443625982002714
parentaa9a1ab9018ccb59734577652dfdac03b2f5df41 (diff)
downloadscummvm-rg350-4568e498cabd2c8523a5c0717e57c71d334f26e7.tar.gz
scummvm-rg350-4568e498cabd2c8523a5c0717e57c71d334f26e7.tar.bz2
scummvm-rg350-4568e498cabd2c8523a5c0717e57c71d334f26e7.zip
GLK: FROTZ: Fix #10843 Status bar disappearing when textbox is shown
-rw-r--r--engines/glk/frotz/glk_interface.cpp1
-rw-r--r--engines/glk/window_text_grid.cpp13
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