fixed bug with text input gadgets when pressing "Escape" key
authorHolger Schemel <info@artsoft.org>
Thu, 22 Oct 2020 16:25:15 +0000 (18:25 +0200)
committerHolger Schemel <info@artsoft.org>
Thu, 22 Oct 2020 16:25:15 +0000 (18:25 +0200)
This bugs happens when incrementing or decrementing a numeric text
input gadget by 5 or 10 (using middle or right mouse button) so that
it gets a value beyond the allowed range. Although this will be
corrected, the "last value" variable still has the bad value, which
gets restored when clicking that text input gadget and then leaving
it by pressing the "Escape" key.

src/libgame/gadgets.c

index 56c359bcc1a0e636c658430e578ef1e5f6e169e5..f84815b0effb46f94ab5bc4f399e6a84f7864b73 100644 (file)
@@ -2230,8 +2230,12 @@ boolean HandleGadgetsKeyInput(Key key)
     {
       // restore previous text (before activating text gadget)
       if (gi->type & GD_TYPE_TEXT_INPUT)
     {
       // restore previous text (before activating text gadget)
       if (gi->type & GD_TYPE_TEXT_INPUT)
+      {
        strcpy(gi->textinput.value, gi->textinput.last_value);
 
        strcpy(gi->textinput.value, gi->textinput.last_value);
 
+       CheckRangeOfNumericInputGadget(gi);
+      }
+
       DrawGadget(gi, DG_UNPRESSED, gi->direct_draw);
 
       last_gi = NULL;
       DrawGadget(gi, DG_UNPRESSED, gi->direct_draw);
 
       last_gi = NULL;