Getting On-Screen Keyboard "Paste" button to work
I THINK I've got it. I admit I don't understand the OSK code _at all_.
This commit is contained in:
parent
9103b783ce
commit
f9728edd05
3 changed files with 9 additions and 5 deletions
|
|
@ -6,14 +6,13 @@ Copyright (c) 2002-2024
|
||||||
Various contributors (see below, and AUTHORS.txt)
|
Various contributors (see below, and AUTHORS.txt)
|
||||||
https://tuxpaint.org/
|
https://tuxpaint.org/
|
||||||
|
|
||||||
2024.December.20 (0.9.35)
|
2024.December.25 (0.9.35)
|
||||||
* Text & Label Tool Improvements:
|
* Text & Label Tool Improvements:
|
||||||
-------------------------------
|
-------------------------------
|
||||||
+ WIP It is now possible to paste text from the copy/paste clipboard
|
+ WIP It is now possible to paste text from the copy/paste clipboard
|
||||||
into Tux Paint. If text goes beyond the right of the canvas,
|
into Tux Paint. If text goes beyond the right of the canvas,
|
||||||
a new line is created. If text goes beyond the bottom of the
|
a new line is created. If text goes beyond the bottom of the
|
||||||
canvas, the text is truncated there.
|
canvas, the text is truncated there.
|
||||||
- WIP: Add a "paste" button to the On Screen Keyboards
|
|
||||||
- TODO: Improve word-wrapping (word-based, not character)
|
- TODO: Improve word-wrapping (word-based, not character)
|
||||||
- TODO: Mention the feature in documentation
|
- TODO: Mention the feature in documentation
|
||||||
Closes https://sourceforge.net/p/tuxpaint/feature-requests/95/
|
Closes https://sourceforge.net/p/tuxpaint/feature-requests/95/
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
(See COPYING.txt)
|
(See COPYING.txt)
|
||||||
|
|
||||||
Last modified: December 19, 2024
|
Last modified: December 25, 2024
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
@ -1900,6 +1900,11 @@ struct osk_keyboard *osk_clicked(on_screen_keyboard *keyboard, int x, int y)
|
||||||
event.text.text[0] = '\b';
|
event.text.text[0] = '\b';
|
||||||
event.text.text[1] = '\0';
|
event.text.text[1] = '\0';
|
||||||
}
|
}
|
||||||
|
else if (wcsncmp(L"XF86Paste", ks, 9) == 0)
|
||||||
|
{
|
||||||
|
event.key.keysym.sym = SDLK_PASTE;
|
||||||
|
event.text.text[0] = '\0'; // FIXME: Is this okay? -bjk 2024.12.25
|
||||||
|
}
|
||||||
else if (wcsncmp(L"NoSymbol", ks, 8) == 0)
|
else if (wcsncmp(L"NoSymbol", ks, 8) == 0)
|
||||||
{
|
{
|
||||||
return (keyboard);
|
return (keyboard);
|
||||||
|
|
|
||||||
|
|
@ -3155,7 +3155,7 @@ static void mainloop(void)
|
||||||
update_screen_rect(&r_tools);
|
update_screen_rect(&r_tools);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((key == SDLK_v && (mod & KMOD_CTRL)) && !noshortcuts)
|
else if (((key == SDLK_v && (mod & KMOD_CTRL)) && !noshortcuts) || key == SDLK_PASTE)
|
||||||
{
|
{
|
||||||
/* Ctrl-V - Paste */
|
/* Ctrl-V - Paste */
|
||||||
if (cur_tool == TOOL_TEXT || cur_tool == TOOL_LABEL)
|
if (cur_tool == TOOL_TEXT || cur_tool == TOOL_LABEL)
|
||||||
|
|
@ -3220,7 +3220,7 @@ static void mainloop(void)
|
||||||
|| event.key.keysym.sym == SDLK_TAB
|
|| event.key.keysym.sym == SDLK_TAB
|
||||||
|| event.key.keysym.sym == SDLK_LALT || event.key.keysym.sym == SDLK_RALT)))
|
|| event.key.keysym.sym == SDLK_LALT || event.key.keysym.sym == SDLK_RALT)))
|
||||||
{
|
{
|
||||||
/* Handle key in text tool: */
|
/* Handle special keys key in text tool: */
|
||||||
|
|
||||||
if (((cur_tool == TOOL_TEXT || cur_tool == TOOL_LABEL)
|
if (((cur_tool == TOOL_TEXT || cur_tool == TOOL_LABEL)
|
||||||
&& cursor_x != -1 && cursor_y != -1) || (cur_tool == TOOL_LABEL
|
&& cursor_x != -1 && cursor_y != -1) || (cur_tool == TOOL_LABEL
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue