From af189dff04b7daa2004251b71d1e4acab2c02860 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 20 Sep 2012 14:59:26 +0200 Subject: [PATCH] ensure the dialog is not out of workarea --- declarativeimports/core/dialog.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/declarativeimports/core/dialog.cpp b/declarativeimports/core/dialog.cpp index 7a7ae3960..95774a645 100644 --- a/declarativeimports/core/dialog.cpp +++ b/declarativeimports/core/dialog.cpp @@ -203,6 +203,14 @@ void DialogProxy::setVisible(const bool visible) const QSize s = m_dialog->size(); m_dialog->resize(0,0); m_dialog->resize(s); + + const QRect workArea(KWindowSystem::workArea()); + if (!workArea.contains(m_dialog->geometry())) { + m_dialog->move(qBound(workArea.left(), m_dialog->x(), workArea.right() - m_dialog->width()), + qBound(workArea.top(), m_dialog->y(), workArea.bottom() - m_dialog->height()) + ); + } + m_dialog->setVisible(visible); if (visible) { m_dialog->raise();