# HG changeset patch # User smatz # Date 1211988507 0 # Node ID 3090d36f34363d894a6ea0b6b0774503e8bc28f8 # Parent d60d75cb053d3273854cc6c72a9e5284c4174324 (svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard) diff -r d60d75cb053d -r 3090d36f3436 src/misc_gui.cpp --- a/src/misc_gui.cpp Wed May 28 14:36:06 2008 +0000 +++ b/src/misc_gui.cpp Wed May 28 15:28:27 2008 +0000 @@ -1083,6 +1083,11 @@ { EventState state; switch (this->HandleEditBoxKey(QUERY_STR_WIDGET_TEXT, key, keycode, state)) { + default: NOT_REACHED(); + case 0: { + Window *osk = FindWindowById(WC_OSK, 0); + if (osk != NULL && osk->parent == this) osk->OnInvalidateData(); + } break; case 1: this->OnOk(); // Enter pressed, confirms change /* FALL THROUGH */ case 2: delete this; break; // ESC pressed, closes window, abandons changes diff -r d60d75cb053d -r 3090d36f3436 src/osk_gui.cpp --- a/src/osk_gui.cpp Wed May 28 14:36:06 2008 +0000 +++ b/src/osk_gui.cpp Wed May 28 15:28:27 2008 +0000 @@ -203,6 +203,11 @@ /* make the caret of the parent window also blink */ this->parent->InvalidateWidget(this->text_btn); } + + virtual void OnInvalidateData(int) + { + this->InvalidateWidget(OSK_WIDGET_TEXT); + } }; static const Widget _osk_widgets[] = {