QtWidgets: Do hide/show via WA_OutsideWSRange for native widgets

If a native widget has a width or height of 0 we don't have to
invalidate its backing store as that is done by the window
system. Certain applications rely on ... interesting ... behavior
of certain window systems in this case.

Task-number: QTBUG-48321
Change-Id: I78ef29975181ee22429c9bd4b11d96d9e68b7a9c
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
This commit is contained in:
Ulf Hermann 2015-10-27 15:25:42 +01:00
parent 24c50f8dcf
commit 0f68f89205

View File

@ -7169,7 +7169,7 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
bool needsShow = false;
if (q->isWindow()) {
if (q->isWindow() || q->windowHandle()) {
if (!(data.window_state & Qt::WindowFullScreen) && (w == 0 || h == 0)) {
q->setAttribute(Qt::WA_OutsideWSRange, true);
if (q->isVisible() && q->testAttribute(Qt::WA_Mapped))