Skip to content

Commit

Permalink
LineEdit - Allow copy/select shortcuts when editable==false
Browse files Browse the repository at this point in the history
  • Loading branch information
havi05 committed Nov 29, 2024
1 parent 0eadbdb commit f377367
Showing 1 changed file with 29 additions and 27 deletions.
56 changes: 29 additions & 27 deletions scene/gui/line_edit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -619,6 +619,35 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
return;
}

// Open context menu.
if (context_menu_enabled) {
if (k->is_action("ui_menu", true)) {
_update_context_menu();
Point2 pos = Point2(get_caret_pixel_pos().x, (get_size().y + theme_cache.font->get_height(theme_cache.font_size)) / 2);
menu->set_position(get_screen_position() + pos);
menu->reset_size();
menu->popup();
menu->grab_focus();

accept_event();
return;
}
}

if (is_shortcut_keys_enabled()) {
if (k->is_action("ui_copy", true)) {
copy_text();
accept_event();
return;
}

if (k->is_action("ui_text_select_all", true)) {
select();
accept_event();
return;
}
}

if (!editing) {
return;
}
Expand Down Expand Up @@ -727,21 +756,6 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
return;
}

// Open context menu.
if (context_menu_enabled) {
if (k->is_action("ui_menu", true)) {
_update_context_menu();
Point2 pos = Point2(get_caret_pixel_pos().x, (get_size().y + theme_cache.font->get_height(theme_cache.font_size)) / 2);
menu->set_position(get_screen_position() + pos);
menu->reset_size();
menu->popup();
menu->grab_focus();

accept_event();
return;
}
}

// Default is ENTER and KP_ENTER. Cannot use ui_accept as default includes SPACE.
if (k->is_action_pressed("ui_text_submit")) {
emit_signal(SNAME("text_submitted"), text);
Expand Down Expand Up @@ -769,18 +783,6 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
}

if (is_shortcut_keys_enabled()) {
if (k->is_action("ui_copy", true)) {
copy_text();
accept_event();
return;
}

if (k->is_action("ui_text_select_all", true)) {
select();
accept_event();
return;
}

// Cut / Paste
if (k->is_action("ui_cut", true)) {
cut_text();
Expand Down

0 comments on commit f377367

Please sign in to comment.