[Development] Wayland platform plugin and BypassWindowManagerHint [was qtbase unit tests freeze in Tizen + wayland]

Tomasz Olszak olszak.tomasz at gmail.com
Sat Jan 4 16:18:35 CET 2014


I'm trying to run qtbase auto tests with wayland plugin. QTest::mouseClick
freezes on wl_display_dispatch_queue (see [1]). The reason of this is
because widget created in test returns correct geometry and isVisible() ==
true but is not visible in weston. I have found out that it is caused by:
setWindowFlags(Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
statement... but actually by setting Qt::X11BypassWindowManagerHint ==
Qt::BypassWindowManagerHint flag.

The special handling of BypassWindowManagerHint was introduced in [2] with
comment:

"Custom window types might want to set BypassWinowManagerHint and use
the native Wayland API together with the platform native interface.
In this case wl_shell_surface won't be used."

Is it true? There are plenty of Qt::X11BypassWindowManagerHint flags in
widgets autotests and I think that the purpose was totally different there.
If I create QLabel with Qt::X11BypassWindowManagerHint or
Qt::BypassWindowManagerHint flag and don't have any idea about wayland it
would not show up when wayland platform plugin is used.

IMHO having BypassWindowManagerHint which behaves different depending of
platform plugin is dangerous. Or maybe X11BypassWindowManagerHint should
not equal to BypassWindowManagerHint.

Any ideas how to solve this issue?

[1] http://pastebin.com/T9qveh1x
[2]
https://codereview.qt-project.org/#patch,sidebyside,55794,2,src/plugins/platforms/wayland_common/qwaylandwindow.cpp

-- 
regards,
Tomasz Olszak
Qt for Tizen | http://qt-project.org/wiki/Tizen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20140104/7cd8b933/attachment.html>


More information about the Development mailing list