diff --git a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java index 2d0ea84b9e8..d71a8c10ec6 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java @@ -143,10 +143,20 @@ class QtEmbeddedDelegate extends QtActivityDelegateBase implements QtNative.AppS void setView(QtView view) { m_view = view; + updateInputDelegate(); if (m_view != null) registerGlobalFocusChangeListener(m_view); } + private void updateInputDelegate() { + if (m_view == null) { + m_inputDelegate.setEditPopupMenu(null); + return; + } + m_inputDelegate.setEditPopupMenu(new EditPopupMenu(m_activity, m_view)); + } + + public void setRootWindowRef(long ref) { m_rootWindowRef = ref; } diff --git a/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java index cd1b675f2e9..5327049f444 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java @@ -405,12 +405,13 @@ public class QtInputDelegate implements QtInputConnection.QtInputConnectionListe if (!QtClipboardManager.hasClipboardText(activity)) editButtons &= ~EditContextView.PASTE_BUTTON; - if ((mode & CursorHandleShowEdit) == CursorHandleShowEdit && editButtons != 0) { - m_editPopupMenu.setPosition(editX, editY, editButtons, - m_cursorHandle, m_leftSelectionHandle, m_rightSelectionHandle); - } else { - if (m_editPopupMenu != null) + if (m_editPopupMenu != null) { + if ((mode & CursorHandleShowEdit) == CursorHandleShowEdit && editButtons != 0) { + m_editPopupMenu.setPosition(editX, editY, editButtons, + m_cursorHandle, m_leftSelectionHandle, m_rightSelectionHandle); + } else { m_editPopupMenu.hide(); + } } }