You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-16 14:00:40 +00:00
Fix ability to cut/paste text in LineEdit/TextEdit in readonly mode.
Fixes #6466
(cherry picked from commit 9c71e5a9df)
This commit is contained in:
committed by
Rémi Verschelde
parent
4ca83c635f
commit
d3b549f2a3
@@ -1190,24 +1190,28 @@ void LineEdit::menu_option(int p_option) {
|
|||||||
|
|
||||||
switch(p_option) {
|
switch(p_option) {
|
||||||
case MENU_CUT: {
|
case MENU_CUT: {
|
||||||
cut_text();
|
if (editable) {
|
||||||
|
cut_text();
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case MENU_COPY: {
|
case MENU_COPY: {
|
||||||
|
|
||||||
copy_text();
|
copy_text();
|
||||||
} break;
|
} break;
|
||||||
case MENU_PASTE: {
|
case MENU_PASTE: {
|
||||||
|
if (editable) {
|
||||||
paste_text();
|
paste_text();
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case MENU_CLEAR: {
|
case MENU_CLEAR: {
|
||||||
clear();
|
if (editable) {
|
||||||
|
clear();
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case MENU_SELECT_ALL: {
|
case MENU_SELECT_ALL: {
|
||||||
select_all();
|
select_all();
|
||||||
} break;
|
} break;
|
||||||
case MENU_UNDO: {
|
case MENU_UNDO: {
|
||||||
|
|
||||||
undo();
|
undo();
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
|||||||
@@ -2481,7 +2481,9 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
|
|||||||
|
|
||||||
} break;
|
} break;
|
||||||
case KEY_X: {
|
case KEY_X: {
|
||||||
|
if (readonly) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (!k.mod.command || k.mod.shift || k.mod.alt) {
|
if (!k.mod.command || k.mod.shift || k.mod.alt) {
|
||||||
scancode_handled=false;
|
scancode_handled=false;
|
||||||
break;
|
break;
|
||||||
@@ -2513,7 +2515,9 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
|
|||||||
undo();
|
undo();
|
||||||
} break;
|
} break;
|
||||||
case KEY_V: {
|
case KEY_V: {
|
||||||
|
if (readonly) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (!k.mod.command || k.mod.shift || k.mod.alt) {
|
if (!k.mod.command || k.mod.shift || k.mod.alt) {
|
||||||
scancode_handled=false;
|
scancode_handled=false;
|
||||||
break;
|
break;
|
||||||
@@ -4401,18 +4405,22 @@ void TextEdit::menu_option(int p_option) {
|
|||||||
|
|
||||||
switch( p_option ) {
|
switch( p_option ) {
|
||||||
case MENU_CUT: {
|
case MENU_CUT: {
|
||||||
|
if (!readonly) {
|
||||||
cut();
|
cut();
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case MENU_COPY: {
|
case MENU_COPY: {
|
||||||
copy();
|
copy();
|
||||||
} break;
|
} break;
|
||||||
case MENU_PASTE: {
|
case MENU_PASTE: {
|
||||||
|
if (!readonly) {
|
||||||
paste();
|
paste();
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case MENU_CLEAR: {
|
case MENU_CLEAR: {
|
||||||
clear();
|
if (!readonly) {
|
||||||
|
clear();
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case MENU_SELECT_ALL: {
|
case MENU_SELECT_ALL: {
|
||||||
select_all();
|
select_all();
|
||||||
|
|||||||
Reference in New Issue
Block a user