Merge pull request #54045 from ConteZero/primary_clipboard_linux_fix_warning
This commit is contained in:
commit
b2ab5cb504
7 changed files with 24 additions and 11 deletions
|
@ -819,6 +819,8 @@
|
|||
</constant>
|
||||
<constant name="FEATURE_SWAP_BUFFERS" value="17" enum="Feature">
|
||||
</constant>
|
||||
<constant name="FEATURE_CLIPBOARD_PRIMARY" value="19" enum="Feature">
|
||||
</constant>
|
||||
<constant name="MOUSE_MODE_VISIBLE" value="0" enum="MouseMode">
|
||||
Makes the mouse cursor visible if it is hidden.
|
||||
</constant>
|
||||
|
|
|
@ -124,6 +124,7 @@ bool DisplayServerX11::has_feature(Feature p_feature) const {
|
|||
#ifdef DBUS_ENABLED
|
||||
case FEATURE_KEEP_SCREEN_ON:
|
||||
#endif
|
||||
case FEATURE_CLIPBOARD_PRIMARY:
|
||||
return true;
|
||||
default: {
|
||||
}
|
||||
|
|
|
@ -235,7 +235,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (is_middle_mouse_paste_enabled() && b->is_pressed() && b->get_button_index() == MOUSE_BUTTON_MIDDLE && is_editable()) {
|
||||
if (is_middle_mouse_paste_enabled() && b->is_pressed() && b->get_button_index() == MOUSE_BUTTON_MIDDLE && is_editable() && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
String paste_buffer = DisplayServer::get_singleton()->clipboard_get_primary().strip_escapes();
|
||||
|
||||
deselect();
|
||||
|
@ -290,7 +290,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
|
|||
selection.double_click = true;
|
||||
last_dblclk = 0;
|
||||
caret_column = selection.begin;
|
||||
if (!pass) {
|
||||
if (!pass && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(text);
|
||||
}
|
||||
} else if (b->is_double_click()) {
|
||||
|
@ -308,7 +308,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (!pass) {
|
||||
if (!pass && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(text.substr(selection.begin, selection.end - selection.begin));
|
||||
}
|
||||
}
|
||||
|
@ -328,7 +328,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
|
|||
update();
|
||||
|
||||
} else {
|
||||
if (selection.enabled && !pass && b->get_button_index() == MOUSE_BUTTON_LEFT) {
|
||||
if (selection.enabled && !pass && b->get_button_index() == MOUSE_BUTTON_LEFT && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(text.substr(selection.begin, selection.end - selection.begin));
|
||||
}
|
||||
if (!text.is_empty() && is_editable() && clear_button_enabled) {
|
||||
|
|
|
@ -1596,14 +1596,16 @@ void RichTextLabel::gui_input(const Ref<InputEvent> &p_event) {
|
|||
selection.to_char = words[i + 1];
|
||||
|
||||
selection.active = true;
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
}
|
||||
update();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (!b->is_pressed()) {
|
||||
if (selection.enabled) {
|
||||
if (selection.enabled && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
}
|
||||
selection.click_item = nullptr;
|
||||
|
|
|
@ -1534,7 +1534,7 @@ void TextEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
|
|||
update();
|
||||
}
|
||||
|
||||
if (is_middle_mouse_paste_enabled() && mb->get_button_index() == MOUSE_BUTTON_MIDDLE) {
|
||||
if (is_middle_mouse_paste_enabled() && mb->get_button_index() == MOUSE_BUTTON_MIDDLE && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
paste_primary_clipboard();
|
||||
}
|
||||
|
||||
|
@ -1575,7 +1575,9 @@ void TextEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
|
|||
dragging_selection = false;
|
||||
can_drag_minimap = false;
|
||||
click_select_held->stop();
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
}
|
||||
}
|
||||
|
||||
// Notify to show soft keyboard.
|
||||
|
@ -5167,7 +5169,7 @@ void TextEdit::_paste_internal() {
|
|||
}
|
||||
|
||||
void TextEdit::_paste_primary_clipboard_internal() {
|
||||
if (!is_editable()) {
|
||||
if (!is_editable() || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -5520,7 +5522,9 @@ void TextEdit::_update_selection_mode_word() {
|
|||
}
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
}
|
||||
|
||||
update();
|
||||
|
||||
|
@ -5549,7 +5553,9 @@ void TextEdit::_update_selection_mode_line() {
|
|||
set_caret_column(0);
|
||||
|
||||
select(selection.selecting_line, selection.selecting_column, line, col);
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) {
|
||||
DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text());
|
||||
}
|
||||
|
||||
update();
|
||||
|
||||
|
|
|
@ -497,6 +497,7 @@ void DisplayServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(FEATURE_NATIVE_ICON);
|
||||
BIND_ENUM_CONSTANT(FEATURE_ORIENTATION);
|
||||
BIND_ENUM_CONSTANT(FEATURE_SWAP_BUFFERS);
|
||||
BIND_ENUM_CONSTANT(FEATURE_CLIPBOARD_PRIMARY);
|
||||
|
||||
BIND_ENUM_CONSTANT(MOUSE_MODE_VISIBLE);
|
||||
BIND_ENUM_CONSTANT(MOUSE_MODE_HIDDEN);
|
||||
|
|
|
@ -114,6 +114,7 @@ public:
|
|||
FEATURE_ORIENTATION,
|
||||
FEATURE_SWAP_BUFFERS,
|
||||
FEATURE_KEEP_SCREEN_ON,
|
||||
FEATURE_CLIPBOARD_PRIMARY,
|
||||
};
|
||||
|
||||
virtual bool has_feature(Feature p_feature) const = 0;
|
||||
|
|
Loading…
Reference in a new issue