Client: Close popups on xdg_popup::popup_done
Change-Id: I6d3b1ec5c22e6d07ed87948074d886cc9aa126ef Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
This commit is contained in:
parent
9fc25b4a60
commit
882f20bbf4
@ -45,6 +45,7 @@ QWaylandXdgPopup::QWaylandXdgPopup(struct ::xdg_popup *popup, QWaylandWindow *wi
|
|||||||
: QWaylandShellSurface(window)
|
: QWaylandShellSurface(window)
|
||||||
, QtWayland::xdg_popup(popup)
|
, QtWayland::xdg_popup(popup)
|
||||||
, m_extendedWindow(nullptr)
|
, m_extendedWindow(nullptr)
|
||||||
|
, m_window(window)
|
||||||
{
|
{
|
||||||
if (window->display()->windowExtension())
|
if (window->display()->windowExtension())
|
||||||
m_extendedWindow = new QWaylandExtendedSurface(window);
|
m_extendedWindow = new QWaylandExtendedSurface(window);
|
||||||
@ -62,6 +63,11 @@ void QWaylandXdgPopup::setType(Qt::WindowType type, QWaylandWindow *transientPar
|
|||||||
Q_UNUSED(transientParent);
|
Q_UNUSED(transientParent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QWaylandXdgPopup::xdg_popup_popup_done()
|
||||||
|
{
|
||||||
|
m_window->window()->close();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -70,8 +70,12 @@ public:
|
|||||||
|
|
||||||
void setType(Qt::WindowType type, QWaylandWindow *transientParent) override;
|
void setType(Qt::WindowType type, QWaylandWindow *transientParent) override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void xdg_popup_popup_done() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QWaylandExtendedSurface *m_extendedWindow;
|
QWaylandExtendedSurface *m_extendedWindow;
|
||||||
|
QWaylandWindow *m_window;
|
||||||
};
|
};
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user