From 029c4fc7a1b0c92841e6699064af26a15ee59e0a Mon Sep 17 00:00:00 2001 From: "simon.kagstrom" Date: Mon, 13 Apr 2009 10:10:08 +0000 Subject: [PATCH] Correct displaying of text messages on the other end --- Src/Display_SDL.h | 5 +++-- Src/Network.cpp | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Src/Display_SDL.h b/Src/Display_SDL.h index d64629f..a1bda1f 100644 --- a/Src/Display_SDL.h +++ b/Src/Display_SDL.h @@ -528,8 +528,7 @@ void C64Display::TranslateKey(SDLKey key, bool key_up, uint8 *key_matrix, shift_on = true; else if (c64_key == MATRIX(1,7) || c64_key == MATRIX(6,4)) shift_on = false; - if (!key_up && this->entering_text_message && - c64_key != MATRIX(1,7) && c64_key != MATRIX(6,4)) + else if (!key_up && this->entering_text_message) { char c = virtual_keyboard->keycode_to_char(c64_key | (shift_on ? 0x80 : 0) ); @@ -600,6 +599,8 @@ void C64Display::PollKeyboard(uint8 *key_matrix, uint8 *rev_matrix, uint8 *joyst case SDLK_SCROLLOCK: this->entering_text_message = !this->entering_text_message; + if (this->entering_text_message) + this->text_message[0] = '\0'; break; case SDLK_KP_PLUS: // '+' on keypad: Increase SkipFrames diff --git a/Src/Network.cpp b/Src/Network.cpp index 5ee97d9..c080912 100644 --- a/Src/Network.cpp +++ b/Src/Network.cpp @@ -879,8 +879,12 @@ bool Network::DecodeUpdate(C64Display *display, uint8 *js, MOS6581 *dst) } break; case TEXT_MESSAGE: - display->display_status_string((char*)p->data, 3); - break; + { + static char display_buf[80]; + + strncpy(display_buf, (char*)p->data, 80); + display->display_status_string(display_buf, 4); + } break; case LIST_PEERS: { } break;