Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.9.0
-
None
-
OSX 10.12.5
Qt 5.9
QtCreator 4.3
Android 6.0.1
iOS 10.3.2
Xcode 8.3.3
bug appears on Android and iOS but is working by mouse click on macOS
-
e841c0a252099778fcaa01593592a6b92844e04d
Description
under 5.8 opening the Drawer I always could close the Drawer by tapping outside of the Drawer
under 5.9 the (opened) Drawer looks the same (space outside Drawer is dimmed),
but tapping outside doesn't always close the Drawer.
sometimes after some taps, sometimes never, sometimes immediately
under iOS I'm getting this after opening the Drawer by dragging:
{{stale focus object QQuickStackView_QML_26(0x17013b080) , doing manual update}}
and this after some taps outside drawer if I was able to close the Drawer:
{{stale focus object QQuickPopupItem(0x17022d4e0) , doing manual update}} {{stale focus object QQuickRootItem(0x17002e700) , doing manual update}}
under Android no output like this
on MacOS clicking with Mouse works, so it's a touch problem
I verified comparing QtQuickControls2 Gallery APP from 5.8: tap outside Drawer closes Drawer, Gallery from 5.9: tap outside doesn't close the Drawer
tried explicitely setting modal true or some other close policies, but Drawer wasn't closed reliable
while the Drawer cannot be closed tapping outside, the tap event goes through to the underlying Page and so user can hit a Button by accident.
Found a (ugly looking) workaround and inserted a fake Popup between Drawer and underlying StackView Pages. Now user cannot tap on Buttons from Pages below, but unfortunately also cannot "see" the content below. couldn't figure out a way to make this fake Popup transparent
Drawer { id: myDrawer z: 1 .... // workaround: onOpened: { fakePopup.open() } onAboutToHide: { fakePopup.close() } Popup { id: fakePopup z: 0 width: appWindow.width height: appWindow.height } // end workaround
Attachments
Issue Links
- relates to
-
QTBUG-61698 Modal Overlay don't block multi touch
- Closed
-
QTBUG-69033 When starting to show a drawer on a touchscreen but letting go before it starts to appear on screen it will still act like it is visible
- Closed