Fix ability to cut/paste text in LineEdit/TextEdit in readonly mode.

Fixes #6466

(cherry picked from commit 9c71e5a9df)
This commit is contained in:
Andreas Haas 2016-09-19 14:17:48 +02:00 committed by Rémi Verschelde
parent 4ca83c635f
commit d3b549f2a3
2 changed files with 24 additions and 12 deletions

View file

@ -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;

View file

@ -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();