diff --git a/declarativeimports/plasmacomponents/fullscreendialog.cpp b/declarativeimports/plasmacomponents/fullscreendialog.cpp index 660a11c22..29b4f33b8 100644 --- a/declarativeimports/plasmacomponents/fullscreendialog.cpp +++ b/declarativeimports/plasmacomponents/fullscreendialog.cpp @@ -71,11 +71,15 @@ public: void mousePressEvent(QMouseEvent *event) { event->accept(); + m_dialog->view()->winId(); + KWindowSystem::forceActiveWindow(m_dialog->view()->winId()); } void mouseReleaseEvent(QMouseEvent *event) { - m_dialog->close(); + if (!m_dialog->view()->geometry().contains(event->globalPos())) { + m_dialog->close(); + } } private: @@ -260,6 +264,11 @@ void FullScreenDialog::setVisible(const bool visible) } } +QGraphicsView *FullScreenDialog::view() const +{ + return m_view; +} + QDeclarativeListProperty FullScreenDialog::title() { if (m_rootObject) { diff --git a/declarativeimports/plasmacomponents/fullscreendialog.h b/declarativeimports/plasmacomponents/fullscreendialog.h index 88d9a9061..4eac4a37b 100644 --- a/declarativeimports/plasmacomponents/fullscreendialog.h +++ b/declarativeimports/plasmacomponents/fullscreendialog.h @@ -54,6 +54,7 @@ public: bool isVisible() const; void setVisible(const bool visible); + QGraphicsView *view() const; //QML properties QDeclarativeListProperty title();