DirectFB Fix issue with showing dialogs

If the window was not visible when the geometry was set, then the
DirectFB window would not be resized.

Change-Id: I7790c90ed0fb755aebee0e32c877ebd9e48417cd
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
bb10
Andy Nichols 2014-08-18 18:32:46 +02:00
parent 6e7e73c014
commit 5afebb05b4
1 changed files with 3 additions and 15 deletions

View File

@ -110,21 +110,9 @@ QDirectFbWindow::~QDirectFbWindow()
void QDirectFbWindow::setGeometry(const QRect &rect)
{
// bool isMoveOnly = (rect.topLeft() != geometry().topLeft()) && (rect.size() == geometry().size());
QPlatformWindow::setGeometry(rect);
if (window()->isVisible()) {
m_dfbWindow->SetBounds(m_dfbWindow.data(), rect.x(),rect.y(),
rect.width(), rect.height());
// ### TODO port, verify if this is needed
#if 0
//Hack. When moving since the WindowSurface of a window becomes invalid when moved
if (isMoveOnly) { //if resize then windowsurface is updated.
widget()->windowSurface()->resize(rect.size());
window()->update();
}
#endif
}
m_dfbWindow->SetBounds(m_dfbWindow.data(), rect.x(),rect.y(),
rect.width(), rect.height());
}
void QDirectFbWindow::setOpacity(qreal level)
@ -150,7 +138,7 @@ void QDirectFbWindow::setVisible(bool visible)
}
if (window()->isTopLevel() && visible)
QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), window()->geometry().size()));
QPlatformWindow::setVisible(visible);
}
}