Merge remote-tracking branch 'origin/5.13' into dev
Conflicts: src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp Done-with: Johan Klokkhammer Helsing <johan.helsing@qt.io> Change-Id: Ia6fa28454f681b4965b5e18f635cb8c40da316f3
This commit is contained in:
commit
e3a9660499
@ -71,6 +71,9 @@ QWaylandXdgSurfaceV5 *QWaylandXdgShellV5::createXdgSurface(QWaylandWindow *windo
|
|||||||
QWaylandXdgPopupV5 *QWaylandXdgShellV5::createXdgPopup(QWaylandWindow *window, QWaylandInputDevice *inputDevice)
|
QWaylandXdgPopupV5 *QWaylandXdgShellV5::createXdgPopup(QWaylandWindow *window, QWaylandInputDevice *inputDevice)
|
||||||
{
|
{
|
||||||
QWaylandWindow *parentWindow = m_popups.empty() ? window->transientParent() : m_popups.last();
|
QWaylandWindow *parentWindow = m_popups.empty() ? window->transientParent() : m_popups.last();
|
||||||
|
if (!parentWindow)
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
::wl_surface *parentSurface = parentWindow->wlSurface();
|
::wl_surface *parentSurface = parentWindow->wlSurface();
|
||||||
|
|
||||||
if (m_popupSerial == 0)
|
if (m_popupSerial == 0)
|
||||||
|
@ -73,10 +73,15 @@ bool QWaylandXdgShellV5Integration::initialize(QWaylandDisplay *display)
|
|||||||
QWaylandShellSurface *QWaylandXdgShellV5Integration::createShellSurface(QWaylandWindow *window)
|
QWaylandShellSurface *QWaylandXdgShellV5Integration::createShellSurface(QWaylandWindow *window)
|
||||||
{
|
{
|
||||||
QWaylandInputDevice *inputDevice = window->display()->lastInputDevice();
|
QWaylandInputDevice *inputDevice = window->display()->lastInputDevice();
|
||||||
if (window->window()->type() == Qt::WindowType::Popup && inputDevice)
|
if (window->window()->type() == Qt::WindowType::Popup && inputDevice) {
|
||||||
return m_xdgShell->createXdgPopup(window, inputDevice);
|
if (auto *popup = m_xdgShell->createXdgPopup(window, inputDevice))
|
||||||
else
|
return popup;
|
||||||
return m_xdgShell->createXdgSurface(window);
|
|
||||||
|
qWarning(lcQpaWayland) << "Failed to create xdg-popup v5 for window" << window->window()
|
||||||
|
<< "falling back to creating an xdg-surface";
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_xdgShell->createXdgSurface(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandXdgShellV5Integration::handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus) {
|
void QWaylandXdgShellV5Integration::handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user