Android: Ensure that Layout params are applied on editText
Make sure that the Layout parameters are applied to the editText before opening the Popup (in openContextMenu method). Without them, it may cause incorrect behavior. Especially in the case of the error: "E BufferLayer: dimension too large 212x9957 E SurfaceFlinger: createBufferLayer() failed (Invalid argument) E SurfaceComposerClinet: SurfaceComposerClien::createSurface error Invalid argument" It may cause crash. Fixes: QTBUG-129770 Pick-to: 6.8 Change-Id: Ib9ef4b5b77fb1faf196e56431976c2a0e6e4a1e2 Reviewed-by: Petri Virkkunen <petri.virkkunen@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
parent
f84c83be52
commit
0d4778497e
@ -310,13 +310,21 @@ class QtActivityDelegate extends QtActivityDelegateBase
|
||||
return;
|
||||
}
|
||||
m_layout.setLayoutParams(focusedEditText, new QtLayout.LayoutParams(w, h, x, y), false);
|
||||
PopupMenu popup = new PopupMenu(m_activity, focusedEditText);
|
||||
QtActivityDelegate.this.onCreatePopupMenu(popup.getMenu());
|
||||
popup.setOnMenuItemClickListener(menuItem ->
|
||||
m_activity.onContextItemSelected(menuItem));
|
||||
popup.setOnDismissListener(popupMenu ->
|
||||
m_activity.onContextMenuClosed(popupMenu.getMenu()));
|
||||
popup.show();
|
||||
focusedEditText.requestLayout();
|
||||
focusedEditText.getViewTreeObserver().addOnGlobalLayoutListener(
|
||||
new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
focusedEditText.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
PopupMenu popup = new PopupMenu(m_activity, focusedEditText);
|
||||
QtActivityDelegate.this.onCreatePopupMenu(popup.getMenu());
|
||||
popup.setOnMenuItemClickListener(menuItem ->
|
||||
m_activity.onContextItemSelected(menuItem));
|
||||
popup.setOnDismissListener(popupMenu ->
|
||||
m_activity.onContextMenuClosed(popupMenu.getMenu()));
|
||||
popup.show();
|
||||
}
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
// QtMenuInterface implementation end
|
||||
|
Loading…
x
Reference in New Issue
Block a user