diff --git a/docs/CHANGES.txt b/docs/CHANGES.txt index 436eb99fd..91203541d 100644 --- a/docs/CHANGES.txt +++ b/docs/CHANGES.txt @@ -7,7 +7,7 @@ Various contributors (see below, and AUTHORS.txt) http://www.tuxpaint.org/ -2022.February.16 (0.9.28) +2022.February.17 (0.9.28) * Improvements to "Paint" and "Lines" tools: ------------------------------------------ * Brush spacing may now be altered within Tux Paint. @@ -76,7 +76,11 @@ http://www.tuxpaint.org/ Closes https://sourceforge.net/p/tuxpaint/feature-requests/213/ Bill Kendrick - * More instruction text are shown (and sound effects play) when + * Bugfix: Onscreen keyboard repositions itself to the top if you + use [Enter] to move the cursor down, and it begins overlapping + the keyboard. + + * More instructional text is shown (and sound effects play) when using the Label tool. Bill Kendrick diff --git a/src/tuxpaint.c b/src/tuxpaint.c index 5606a4658..a4c4234b4 100644 --- a/src/tuxpaint.c +++ b/src/tuxpaint.c @@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA (See COPYING.txt) - June 14, 2002 - February 11, 2022 + June 14, 2002 - February 17, 2022 */ #include "platform.h" @@ -3084,8 +3084,13 @@ static void mainloop(void) cursor_x = cursor_left; cursor_y = min(cursor_y + font_height, canvas->h - font_height); - playsound(screen, 0, SND_RETURN, 1, SNDPOS_RIGHT, SNDDIST_NEAR); + /* Reposition the on-screen keyboard if we begin typing over it */ + update_canvas_ex(kbd_rect.x, kbd_rect.y, kbd_rect.x + kbd_rect.w, + kbd_rect.y + kbd_rect.h, 0); + update_screen_rect(&kbd_rect); + reposition_onscreen_keyboard(cursor_y); + playsound(screen, 0, SND_RETURN, 1, SNDPOS_RIGHT, SNDDIST_NEAR); } else if (cur_tool == TOOL_LABEL && label_node_to_edit) { @@ -3145,6 +3150,14 @@ static void mainloop(void) cursor_x = cursor_left; cursor_y = min(cursor_y + font_height, canvas->h - font_height); + + /* Reposition the on-screen keyboard if we begin typing over it */ + update_canvas_ex(kbd_rect.x, kbd_rect.y, kbd_rect.x + kbd_rect.w, + kbd_rect.y + kbd_rect.h, 0); + update_screen_rect(&kbd_rect); + reposition_onscreen_keyboard(cursor_y); + + playsound(screen, 0, SND_RETURN, 1, SNDPOS_RIGHT, SNDDIST_NEAR); } #ifdef SPEECH