Fix IME position in the single window mode sub-windows.
This commit is contained in:
@@ -1480,7 +1480,11 @@ void TextEdit::_notification(int p_what) {
|
||||
if (has_focus()) {
|
||||
if (get_viewport()->get_window_id() != DisplayServer::INVALID_WINDOW_ID && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_IME)) {
|
||||
DisplayServer::get_singleton()->window_set_ime_active(true, get_viewport()->get_window_id());
|
||||
DisplayServer::get_singleton()->window_set_ime_position(get_global_position() + get_caret_draw_pos(), get_viewport()->get_window_id());
|
||||
Point2 pos = get_global_position() + get_caret_draw_pos();
|
||||
if (get_window()->get_embedder()) {
|
||||
pos += get_viewport()->get_popup_base_transform().get_origin();
|
||||
}
|
||||
DisplayServer::get_singleton()->window_set_ime_position(pos, get_viewport()->get_window_id());
|
||||
}
|
||||
}
|
||||
} break;
|
||||
@@ -1494,7 +1498,11 @@ void TextEdit::_notification(int p_what) {
|
||||
|
||||
if (get_viewport()->get_window_id() != DisplayServer::INVALID_WINDOW_ID && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_IME)) {
|
||||
DisplayServer::get_singleton()->window_set_ime_active(true, get_viewport()->get_window_id());
|
||||
DisplayServer::get_singleton()->window_set_ime_position(get_global_position() + get_caret_draw_pos(), get_viewport()->get_window_id());
|
||||
Point2 pos = get_global_position() + get_caret_draw_pos();
|
||||
if (get_window()->get_embedder()) {
|
||||
pos += get_viewport()->get_popup_base_transform().get_origin();
|
||||
}
|
||||
DisplayServer::get_singleton()->window_set_ime_position(pos, get_viewport()->get_window_id());
|
||||
}
|
||||
|
||||
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) {
|
||||
|
||||
Reference in New Issue
Block a user