Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts: src/client/qwaylandinputcontext_p.h src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h src/hardwareintegration/client/wayland-egl/qwaylandglcontext.h src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.h Change-Id: Iac517e1985e4e67d7ca00ca4c10dcda9dd9079f9
This commit is contained in:
commit
c32b30362d
@ -69,8 +69,8 @@ public:
|
|||||||
QString serverBufferIntegration();
|
QString serverBufferIntegration();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void hardware_integration_client_backend(const QString &name);
|
void hardware_integration_client_backend(const QString &name) Q_DECL_OVERRIDE;
|
||||||
void hardware_integration_server_backend(const QString &name);
|
void hardware_integration_server_backend(const QString &name) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_client_buffer;
|
QString m_client_buffer;
|
||||||
|
@ -365,11 +365,11 @@ bool QWaylandBradientDecoration::handleMouse(QWaylandInputDevice *inputDevice, c
|
|||||||
window()->setWindowState(Qt::WindowMinimized);
|
window()->setWindowState(Qt::WindowMinimized);
|
||||||
} else if (local.y() <= margins().top()) {
|
} else if (local.y() <= margins().top()) {
|
||||||
processMouseTop(inputDevice,local,b,mods);
|
processMouseTop(inputDevice,local,b,mods);
|
||||||
} else if (local.y() > window()->height() - margins().bottom() + margins().top()) {
|
} else if (local.y() > window()->height() + margins().top()) {
|
||||||
processMouseBottom(inputDevice,local,b,mods);
|
processMouseBottom(inputDevice,local,b,mods);
|
||||||
} else if (local.x() <= margins().left()) {
|
} else if (local.x() <= margins().left()) {
|
||||||
processMouseLeft(inputDevice,local,b,mods);
|
processMouseLeft(inputDevice,local,b,mods);
|
||||||
} else if (local.x() > window()->width() - margins().right() + margins().left()) {
|
} else if (local.x() > window()->width() + margins().left()) {
|
||||||
processMouseRight(inputDevice,local,b,mods);
|
processMouseRight(inputDevice,local,b,mods);
|
||||||
} else {
|
} else {
|
||||||
waylandWindow()->restoreMouseCursor(inputDevice);
|
waylandWindow()->restoreMouseCursor(inputDevice);
|
||||||
@ -411,7 +411,7 @@ void QWaylandBradientDecoration::processMouseTop(QWaylandInputDevice *inputDevic
|
|||||||
//top left bit
|
//top left bit
|
||||||
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeFDiagCursor);
|
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeFDiagCursor);
|
||||||
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_TOP_LEFT,b);
|
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_TOP_LEFT,b);
|
||||||
} else if (local.x() > window()->width() - margins().right()) {
|
} else if (local.x() > window()->width() + margins().left()) {
|
||||||
//top right bit
|
//top right bit
|
||||||
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeBDiagCursor);
|
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeBDiagCursor);
|
||||||
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_TOP_RIGHT,b);
|
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_TOP_RIGHT,b);
|
||||||
@ -434,7 +434,7 @@ void QWaylandBradientDecoration::processMouseBottom(QWaylandInputDevice *inputDe
|
|||||||
//bottom left bit
|
//bottom left bit
|
||||||
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeBDiagCursor);
|
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeBDiagCursor);
|
||||||
startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT,b);
|
startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT,b);
|
||||||
} else if (local.x() > window()->width() - margins().right()) {
|
} else if (local.x() > window()->width() + margins().left()) {
|
||||||
//bottom right bit
|
//bottom right bit
|
||||||
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeFDiagCursor);
|
waylandWindow()->setMouseCursor(inputDevice, Qt::SizeFDiagCursor);
|
||||||
startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT,b);
|
startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT,b);
|
||||||
|
@ -49,7 +49,7 @@ class LibHybrisEglServerBufferPlugin : public QWaylandServerBufferIntegrationPlu
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID QWaylandServerBufferIntegrationFactoryInterface_iid FILE "libhybris-egl-server.json")
|
Q_PLUGIN_METADATA(IID QWaylandServerBufferIntegrationFactoryInterface_iid FILE "libhybris-egl-server.json")
|
||||||
public:
|
public:
|
||||||
QWaylandServerBufferIntegration *create(const QString&, const QStringList&);
|
QWaylandServerBufferIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
|
||||||
};
|
};
|
||||||
|
|
||||||
QWaylandServerBufferIntegration *LibHybrisEglServerBufferPlugin::create(const QString& system, const QStringList& paramList)
|
QWaylandServerBufferIntegration *LibHybrisEglServerBufferPlugin::create(const QString& system, const QStringList& paramList)
|
||||||
|
@ -110,7 +110,10 @@ const QImage &QWaylandAbstractDecoration::contentImage()
|
|||||||
if (d->m_isDirty) {
|
if (d->m_isDirty) {
|
||||||
//Update the decoration backingstore
|
//Update the decoration backingstore
|
||||||
|
|
||||||
d->m_decorationContentImage = QImage(window()->frameGeometry().size(), QImage::Format_ARGB32_Premultiplied);
|
const int scale = waylandWindow()->scale();
|
||||||
|
const QSize imageSize = window()->frameGeometry().size() * scale;
|
||||||
|
d->m_decorationContentImage = QImage(imageSize, QImage::Format_ARGB32_Premultiplied);
|
||||||
|
d->m_decorationContentImage.setDevicePixelRatio(scale);
|
||||||
d->m_decorationContentImage.fill(Qt::transparent);
|
d->m_decorationContentImage.fill(Qt::transparent);
|
||||||
this->paint(&d->m_decorationContentImage);
|
this->paint(&d->m_decorationContentImage);
|
||||||
|
|
||||||
|
@ -73,10 +73,10 @@ public:
|
|||||||
QWaylandCursor(QWaylandScreen *screen);
|
QWaylandCursor(QWaylandScreen *screen);
|
||||||
~QWaylandCursor();
|
~QWaylandCursor();
|
||||||
|
|
||||||
void changeCursor(QCursor *cursor, QWindow *window);
|
void changeCursor(QCursor *cursor, QWindow *window) Q_DECL_OVERRIDE;
|
||||||
void pointerEvent(const QMouseEvent &event);
|
void pointerEvent(const QMouseEvent &event) Q_DECL_OVERRIDE;
|
||||||
QPoint pos() const;
|
QPoint pos() const Q_DECL_OVERRIDE;
|
||||||
void setPos(const QPoint &pos);
|
void setPos(const QPoint &pos) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
struct wl_cursor_image *cursorImage(Qt::CursorShape shape);
|
struct wl_cursor_image *cursorImage(Qt::CursorShape shape);
|
||||||
QSharedPointer<QWaylandBuffer> cursorBitmapImage(const QCursor *cursor);
|
QSharedPointer<QWaylandBuffer> cursorBitmapImage(const QCursor *cursor);
|
||||||
|
@ -156,31 +156,29 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface,
|
|||||||
m_dragWindow = QWaylandWindow::fromWlSurface(surface)->window();
|
m_dragWindow = QWaylandWindow::fromWlSurface(surface)->window();
|
||||||
m_dragPoint = calculateDragPosition(x, y, m_dragWindow);
|
m_dragPoint = calculateDragPosition(x, y, m_dragWindow);
|
||||||
|
|
||||||
QDrag *drag = static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->currentDrag();
|
|
||||||
|
|
||||||
QMimeData *dragData = Q_NULLPTR;
|
QMimeData *dragData = Q_NULLPTR;
|
||||||
Qt::DropActions supportedActions;
|
Qt::DropActions supportedActions;
|
||||||
|
|
||||||
|
m_dragOffer.reset(static_cast<QWaylandDataOffer *>(wl_data_offer_get_user_data(id)));
|
||||||
|
QDrag *drag = static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->currentDrag();
|
||||||
if (drag) {
|
if (drag) {
|
||||||
dragData = drag->mimeData();
|
dragData = drag->mimeData();
|
||||||
supportedActions = drag->supportedActions();
|
supportedActions = drag->supportedActions();
|
||||||
} else {
|
} else if (m_dragOffer) {
|
||||||
m_dragOffer.reset(static_cast<QWaylandDataOffer *>(wl_data_offer_get_user_data(id)));
|
dragData = m_dragOffer->mimeData();
|
||||||
if (m_dragOffer) {
|
supportedActions = Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
|
||||||
dragData = m_dragOffer->mimeData();
|
|
||||||
supportedActions = Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const QPlatformDragQtResponse &response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions);
|
const QPlatformDragQtResponse &response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions);
|
||||||
|
|
||||||
if (drag) {
|
if (drag) {
|
||||||
static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
|
static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.isAccepted()) {
|
||||||
|
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData());
|
||||||
} else {
|
} else {
|
||||||
if (response.isAccepted()) {
|
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0);
|
||||||
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData());
|
|
||||||
} else {
|
|
||||||
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,12 +217,12 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe
|
|||||||
|
|
||||||
if (drag) {
|
if (drag) {
|
||||||
static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
|
static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.isAccepted()) {
|
||||||
|
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData());
|
||||||
} else {
|
} else {
|
||||||
if (response.isAccepted()) {
|
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0);
|
||||||
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData());
|
|
||||||
} else {
|
|
||||||
wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,19 +125,8 @@ QWaylandWindowManagerIntegration *QWaylandDisplay::windowManagerIntegration() co
|
|||||||
return mWindowManagerIntegration.data();
|
return mWindowManagerIntegration.data();
|
||||||
}
|
}
|
||||||
|
|
||||||
QWaylandInputDevice *QWaylandDisplay::lastKeyboardFocusInputDevice() const
|
|
||||||
{
|
|
||||||
return mLastKeyboardFocusInputDevice;
|
|
||||||
}
|
|
||||||
|
|
||||||
void QWaylandDisplay::setLastKeyboardFocusInputDevice(QWaylandInputDevice *device)
|
|
||||||
{
|
|
||||||
mLastKeyboardFocusInputDevice = device;
|
|
||||||
}
|
|
||||||
|
|
||||||
QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
|
QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
|
||||||
: mWaylandIntegration(waylandIntegration)
|
: mWaylandIntegration(waylandIntegration)
|
||||||
, mLastKeyboardFocusInputDevice(0)
|
|
||||||
, mDndSelectionHandler(0)
|
, mDndSelectionHandler(0)
|
||||||
, mWindowExtension(0)
|
, mWindowExtension(0)
|
||||||
, mSubCompositor(0)
|
, mSubCompositor(0)
|
||||||
|
@ -140,9 +140,6 @@ public:
|
|||||||
QWaylandInputDevice *defaultInputDevice() const;
|
QWaylandInputDevice *defaultInputDevice() const;
|
||||||
QWaylandInputDevice *currentInputDevice() const { return defaultInputDevice(); }
|
QWaylandInputDevice *currentInputDevice() const { return defaultInputDevice(); }
|
||||||
|
|
||||||
QWaylandInputDevice *lastKeyboardFocusInputDevice() const;
|
|
||||||
void setLastKeyboardFocusInputDevice(QWaylandInputDevice *device);
|
|
||||||
|
|
||||||
QWaylandDataDeviceManager *dndSelectionHandler() const { return mDndSelectionHandler.data(); }
|
QWaylandDataDeviceManager *dndSelectionHandler() const { return mDndSelectionHandler.data(); }
|
||||||
|
|
||||||
QtWayland::qt_surface_extension *windowExtension() const { return mWindowExtension.data(); }
|
QtWayland::qt_surface_extension *windowExtension() const { return mWindowExtension.data(); }
|
||||||
@ -200,7 +197,6 @@ private:
|
|||||||
QList<QWaylandInputDevice *> mInputDevices;
|
QList<QWaylandInputDevice *> mInputDevices;
|
||||||
QList<Listener> mRegistryListeners;
|
QList<Listener> mRegistryListeners;
|
||||||
QWaylandIntegration *mWaylandIntegration;
|
QWaylandIntegration *mWaylandIntegration;
|
||||||
QWaylandInputDevice *mLastKeyboardFocusInputDevice;
|
|
||||||
QScopedPointer<QWaylandDataDeviceManager> mDndSelectionHandler;
|
QScopedPointer<QWaylandDataDeviceManager> mDndSelectionHandler;
|
||||||
QScopedPointer<QtWayland::qt_surface_extension> mWindowExtension;
|
QScopedPointer<QtWayland::qt_surface_extension> mWindowExtension;
|
||||||
QScopedPointer<QtWayland::wl_subcompositor> mSubCompositor;
|
QScopedPointer<QtWayland::wl_subcompositor> mSubCompositor;
|
||||||
|
@ -656,7 +656,6 @@ void QWaylandInputDevice::Keyboard::focusCallback(void *data, struct wl_callback
|
|||||||
self->mFocusCallback = 0;
|
self->mFocusCallback = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
self->mParent->mQDisplay->setLastKeyboardFocusInputDevice(self->mFocus ? self->mParent : 0);
|
|
||||||
QWindowSystemInterface::handleWindowActivated(self->mFocus ? self->mFocus->window() : 0);
|
QWindowSystemInterface::handleWindowActivated(self->mFocus ? self->mFocus->window() : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ public:
|
|||||||
|
|
||||||
void pointer_enter(uint32_t serial, struct wl_surface *surface,
|
void pointer_enter(uint32_t serial, struct wl_surface *surface,
|
||||||
wl_fixed_t sx, wl_fixed_t sy) Q_DECL_OVERRIDE;
|
wl_fixed_t sx, wl_fixed_t sy) Q_DECL_OVERRIDE;
|
||||||
void pointer_leave(uint32_t time, struct wl_surface *surface);
|
void pointer_leave(uint32_t time, struct wl_surface *surface) Q_DECL_OVERRIDE;
|
||||||
void pointer_motion(uint32_t time,
|
void pointer_motion(uint32_t time,
|
||||||
wl_fixed_t sx, wl_fixed_t sy) Q_DECL_OVERRIDE;
|
wl_fixed_t sx, wl_fixed_t sy) Q_DECL_OVERRIDE;
|
||||||
void pointer_button(uint32_t serial, uint32_t time,
|
void pointer_button(uint32_t serial, uint32_t time,
|
||||||
|
@ -72,37 +72,37 @@ public:
|
|||||||
QWaylandIntegration();
|
QWaylandIntegration();
|
||||||
~QWaylandIntegration();
|
~QWaylandIntegration();
|
||||||
|
|
||||||
bool hasCapability(QPlatformIntegration::Capability cap) const;
|
bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
|
||||||
QPlatformWindow *createPlatformWindow(QWindow *window) const;
|
QPlatformWindow *createPlatformWindow(QWindow *window) const Q_DECL_OVERRIDE;
|
||||||
#ifndef QT_NO_OPENGL
|
#ifndef QT_NO_OPENGL
|
||||||
QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const;
|
QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const Q_DECL_OVERRIDE;
|
||||||
#endif
|
#endif
|
||||||
QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
|
QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QAbstractEventDispatcher *createEventDispatcher() const;
|
QAbstractEventDispatcher *createEventDispatcher() const Q_DECL_OVERRIDE;
|
||||||
void initialize();
|
void initialize() Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformFontDatabase *fontDatabase() const;
|
QPlatformFontDatabase *fontDatabase() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformNativeInterface *nativeInterface() const;
|
QPlatformNativeInterface *nativeInterface() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformClipboard *clipboard() const;
|
QPlatformClipboard *clipboard() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformDrag *drag() const;
|
QPlatformDrag *drag() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformInputContext *inputContext() const;
|
QPlatformInputContext *inputContext() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QVariant styleHint(StyleHint hint) const;
|
QVariant styleHint(StyleHint hint) const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformAccessibility *accessibility() const;
|
QPlatformAccessibility *accessibility() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformServices *services() const;
|
QPlatformServices *services() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QWaylandDisplay *display() const;
|
QWaylandDisplay *display() const;
|
||||||
|
|
||||||
QStringList themeNames() const;
|
QStringList themeNames() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QPlatformTheme *createPlatformTheme(const QString &name) const;
|
QPlatformTheme *createPlatformTheme(const QString &name) const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QWaylandInputDevice *createInputDevice(QWaylandDisplay *display, int version, uint32_t id);
|
QWaylandInputDevice *createInputDevice(QWaylandDisplay *display, int version, uint32_t id);
|
||||||
|
|
||||||
|
@ -67,17 +67,17 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandNativeInterface : public QPlatformNativeIn
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QWaylandNativeInterface(QWaylandIntegration *integration);
|
QWaylandNativeInterface(QWaylandIntegration *integration);
|
||||||
void *nativeResourceForIntegration(const QByteArray &resource);
|
void *nativeResourceForIntegration(const QByteArray &resource) Q_DECL_OVERRIDE;
|
||||||
void *nativeResourceForWindow(const QByteArray &resourceString,
|
void *nativeResourceForWindow(const QByteArray &resourceString,
|
||||||
QWindow *window);
|
QWindow *window) Q_DECL_OVERRIDE;
|
||||||
void *nativeResourceForScreen(const QByteArray &resourceString,
|
void *nativeResourceForScreen(const QByteArray &resourceString,
|
||||||
QScreen *screen);
|
QScreen *screen) Q_DECL_OVERRIDE;
|
||||||
void *nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context);
|
void *nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QVariantMap windowProperties(QPlatformWindow *window) const;
|
QVariantMap windowProperties(QPlatformWindow *window) const Q_DECL_OVERRIDE;
|
||||||
QVariant windowProperty(QPlatformWindow *window, const QString &name) const;
|
QVariant windowProperty(QPlatformWindow *window, const QString &name) const Q_DECL_OVERRIDE;
|
||||||
QVariant windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const;
|
QVariant windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const Q_DECL_OVERRIDE;
|
||||||
void setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value);
|
void setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
void emitWindowPropertyChanged(QPlatformWindow *window, const QString &name);
|
void emitWindowPropertyChanged(QPlatformWindow *window, const QString &name);
|
||||||
|
|
||||||
|
@ -72,25 +72,25 @@ public:
|
|||||||
void init();
|
void init();
|
||||||
QWaylandDisplay *display() const;
|
QWaylandDisplay *display() const;
|
||||||
|
|
||||||
QRect geometry() const;
|
QRect geometry() const Q_DECL_OVERRIDE;
|
||||||
int depth() const;
|
int depth() const Q_DECL_OVERRIDE;
|
||||||
QImage::Format format() const;
|
QImage::Format format() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QSizeF physicalSize() const Q_DECL_OVERRIDE;
|
QSizeF physicalSize() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QDpi logicalDpi() const Q_DECL_OVERRIDE;
|
QDpi logicalDpi() const Q_DECL_OVERRIDE;
|
||||||
QList<QPlatformScreen *> virtualSiblings() const Q_DECL_OVERRIDE;
|
QList<QPlatformScreen *> virtualSiblings() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
void setOrientationUpdateMask(Qt::ScreenOrientations mask);
|
void setOrientationUpdateMask(Qt::ScreenOrientations mask) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
Qt::ScreenOrientation orientation() const;
|
Qt::ScreenOrientation orientation() const Q_DECL_OVERRIDE;
|
||||||
int scale() const;
|
int scale() const;
|
||||||
qreal devicePixelRatio() const Q_DECL_OVERRIDE;
|
qreal devicePixelRatio() const Q_DECL_OVERRIDE;
|
||||||
qreal refreshRate() const;
|
qreal refreshRate() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
QString name() const { return mOutputName; }
|
QString name() const Q_DECL_OVERRIDE { return mOutputName; }
|
||||||
|
|
||||||
QPlatformCursor *cursor() const;
|
QPlatformCursor *cursor() const Q_DECL_OVERRIDE;
|
||||||
QWaylandCursor *waylandCursor() const { return mWaylandCursor; };
|
QWaylandCursor *waylandCursor() const { return mWaylandCursor; };
|
||||||
|
|
||||||
uint32_t outputId() const { return m_outputId; }
|
uint32_t outputId() const { return m_outputId; }
|
||||||
|
@ -72,7 +72,7 @@ public:
|
|||||||
QWaylandShmBuffer(QWaylandDisplay *display,
|
QWaylandShmBuffer(QWaylandDisplay *display,
|
||||||
const QSize &size, QImage::Format format, int scale = 1);
|
const QSize &size, QImage::Format format, int scale = 1);
|
||||||
~QWaylandShmBuffer();
|
~QWaylandShmBuffer();
|
||||||
QSize size() const { return mImage.size(); }
|
QSize size() const Q_DECL_OVERRIDE { return mImage.size(); }
|
||||||
int scale() const Q_DECL_OVERRIDE { return int(mImage.devicePixelRatio()); }
|
int scale() const Q_DECL_OVERRIDE { return int(mImage.devicePixelRatio()); }
|
||||||
QImage *image() { return &mImage; }
|
QImage *image() { return &mImage; }
|
||||||
|
|
||||||
@ -91,11 +91,11 @@ public:
|
|||||||
~QWaylandShmBackingStore();
|
~QWaylandShmBackingStore();
|
||||||
|
|
||||||
QPaintDevice *paintDevice();
|
QPaintDevice *paintDevice();
|
||||||
void flush(QWindow *window, const QRegion ®ion, const QPoint &offset);
|
void flush(QWindow *window, const QRegion ®ion, const QPoint &offset) Q_DECL_OVERRIDE;
|
||||||
void resize(const QSize &size, const QRegion &staticContents);
|
void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE;
|
||||||
void resize(const QSize &size);
|
void resize(const QSize &size);
|
||||||
void beginPaint(const QRegion &);
|
void beginPaint(const QRegion &) Q_DECL_OVERRIDE;
|
||||||
void endPaint();
|
void endPaint() Q_DECL_OVERRIDE;
|
||||||
void hidden();
|
void hidden();
|
||||||
|
|
||||||
QWaylandAbstractDecoration *windowDecoration() const;
|
QWaylandAbstractDecoration *windowDecoration() const;
|
||||||
|
@ -64,8 +64,8 @@ public:
|
|||||||
QWaylandShmWindow(QWindow *window);
|
QWaylandShmWindow(QWindow *window);
|
||||||
~QWaylandShmWindow();
|
~QWaylandShmWindow();
|
||||||
|
|
||||||
WindowType windowType() const;
|
WindowType windowType() const Q_DECL_OVERRIDE;
|
||||||
QSurfaceFormat format() const { return QSurfaceFormat(); }
|
QSurfaceFormat format() const Q_DECL_OVERRIDE { return QSurfaceFormat(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -110,16 +110,16 @@ public:
|
|||||||
~QWaylandWindow();
|
~QWaylandWindow();
|
||||||
|
|
||||||
virtual WindowType windowType() const = 0;
|
virtual WindowType windowType() const = 0;
|
||||||
WId winId() const;
|
WId winId() const Q_DECL_OVERRIDE;
|
||||||
void setVisible(bool visible);
|
void setVisible(bool visible) Q_DECL_OVERRIDE;
|
||||||
void setParent(const QPlatformWindow *parent);
|
void setParent(const QPlatformWindow *parent) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
void setWindowTitle(const QString &title);
|
void setWindowTitle(const QString &title) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
inline QIcon windowIcon() const;
|
inline QIcon windowIcon() const;
|
||||||
void setWindowIcon(const QIcon &icon);
|
void setWindowIcon(const QIcon &icon) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
void setGeometry(const QRect &rect);
|
void setGeometry(const QRect &rect) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
void configure(uint32_t edges, int32_t width, int32_t height);
|
void configure(uint32_t edges, int32_t width, int32_t height);
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ public:
|
|||||||
|
|
||||||
void waitForFrameSync();
|
void waitForFrameSync();
|
||||||
|
|
||||||
QMargins frameMargins() const;
|
QMargins frameMargins() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
static QWaylandWindow *fromWlSurface(::wl_surface *surface);
|
static QWaylandWindow *fromWlSurface(::wl_surface *surface);
|
||||||
|
|
||||||
@ -142,11 +142,11 @@ public:
|
|||||||
QWaylandSubSurface *subSurfaceWindow() const;
|
QWaylandSubSurface *subSurfaceWindow() const;
|
||||||
QWaylandScreen *screen() const { return mScreen; }
|
QWaylandScreen *screen() const { return mScreen; }
|
||||||
|
|
||||||
void handleContentOrientationChange(Qt::ScreenOrientation orientation);
|
void handleContentOrientationChange(Qt::ScreenOrientation orientation) Q_DECL_OVERRIDE;
|
||||||
void setOrientationMask(Qt::ScreenOrientations mask);
|
void setOrientationMask(Qt::ScreenOrientations mask);
|
||||||
|
|
||||||
void setWindowState(Qt::WindowState state);
|
void setWindowState(Qt::WindowState state) Q_DECL_OVERRIDE;
|
||||||
void setWindowFlags(Qt::WindowFlags flags);
|
void setWindowFlags(Qt::WindowFlags flags) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
void raise() Q_DECL_OVERRIDE;
|
void raise() Q_DECL_OVERRIDE;
|
||||||
void lower() Q_DECL_OVERRIDE;
|
void lower() Q_DECL_OVERRIDE;
|
||||||
@ -182,7 +182,7 @@ public:
|
|||||||
void doResize();
|
void doResize();
|
||||||
void setCanResize(bool canResize);
|
void setCanResize(bool canResize);
|
||||||
|
|
||||||
bool setMouseGrabEnabled(bool grab);
|
bool setMouseGrabEnabled(bool grab) Q_DECL_OVERRIDE;
|
||||||
static QWaylandWindow *mouseGrab() { return mMouseGrab; }
|
static QWaylandWindow *mouseGrab() { return mMouseGrab; }
|
||||||
|
|
||||||
void sendProperty(const QString &name, const QVariant &value);
|
void sendProperty(const QString &name, const QVariant &value);
|
||||||
|
@ -77,10 +77,10 @@ public:
|
|||||||
explicit QWaylandWindowManagerIntegration(QWaylandDisplay *waylandDisplay);
|
explicit QWaylandWindowManagerIntegration(QWaylandDisplay *waylandDisplay);
|
||||||
virtual ~QWaylandWindowManagerIntegration();
|
virtual ~QWaylandWindowManagerIntegration();
|
||||||
|
|
||||||
QByteArray desktopEnvironment() const;
|
QByteArray desktopEnvironment() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
bool openUrl(const QUrl &url);
|
bool openUrl(const QUrl &url) Q_DECL_OVERRIDE;
|
||||||
bool openDocument(const QUrl &url);
|
bool openDocument(const QUrl &url) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
bool showIsFullScreen() const;
|
bool showIsFullScreen() const;
|
||||||
|
|
||||||
|
@ -62,7 +62,6 @@ QWaylandXdgSurface::QWaylandXdgSurface(struct ::xdg_surface *xdg_surface, QWayla
|
|||||||
{
|
{
|
||||||
if (window->display()->windowExtension())
|
if (window->display()->windowExtension())
|
||||||
m_extendedWindow = new QWaylandExtendedSurface(window);
|
m_extendedWindow = new QWaylandExtendedSurface(window);
|
||||||
m_size = m_window->window()->geometry().size();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QWaylandXdgSurface::~QWaylandXdgSurface()
|
QWaylandXdgSurface::~QWaylandXdgSurface()
|
||||||
@ -193,10 +192,7 @@ void QWaylandXdgSurface::xdg_surface_configure(int32_t width, int32_t height, st
|
|||||||
aboutToFullScreen = true;
|
aboutToFullScreen = true;
|
||||||
break;
|
break;
|
||||||
case XDG_SURFACE_STATE_RESIZING:
|
case XDG_SURFACE_STATE_RESIZING:
|
||||||
m_margins = m_window->frameMargins();
|
m_normalSize = QSize(width, height);
|
||||||
width -= m_margins.left() + m_margins.right();
|
|
||||||
height -= m_margins.top() + m_margins.bottom();
|
|
||||||
m_size = m_window->window()->geometry().size();
|
|
||||||
break;
|
break;
|
||||||
case XDG_SURFACE_STATE_ACTIVATED:
|
case XDG_SURFACE_STATE_ACTIVATED:
|
||||||
// TODO: here about the missing window activation
|
// TODO: here about the missing window activation
|
||||||
@ -207,6 +203,8 @@ void QWaylandXdgSurface::xdg_surface_configure(int32_t width, int32_t height, st
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!m_fullscreen && aboutToFullScreen) {
|
if (!m_fullscreen && aboutToFullScreen) {
|
||||||
|
if (!m_maximized)
|
||||||
|
m_normalSize = m_window->window()->frameGeometry().size();
|
||||||
m_fullscreen = true;
|
m_fullscreen = true;
|
||||||
m_window->window()->showFullScreen();
|
m_window->window()->showFullScreen();
|
||||||
} else if (m_fullscreen && !aboutToFullScreen) {
|
} else if (m_fullscreen && !aboutToFullScreen) {
|
||||||
@ -217,6 +215,8 @@ void QWaylandXdgSurface::xdg_surface_configure(int32_t width, int32_t height, st
|
|||||||
m_window->window()->showNormal();
|
m_window->window()->showNormal();
|
||||||
}
|
}
|
||||||
} else if (!m_maximized && aboutToMaximize) {
|
} else if (!m_maximized && aboutToMaximize) {
|
||||||
|
if (!m_fullscreen)
|
||||||
|
m_normalSize = m_window->window()->frameGeometry().size();
|
||||||
m_maximized = true;
|
m_maximized = true;
|
||||||
m_window->window()->showMaximized();
|
m_window->window()->showMaximized();
|
||||||
} else if (m_maximized && !aboutToMaximize) {
|
} else if (m_maximized && !aboutToMaximize) {
|
||||||
@ -224,14 +224,11 @@ void QWaylandXdgSurface::xdg_surface_configure(int32_t width, int32_t height, st
|
|||||||
m_window->window()->showNormal();
|
m_window->window()->showNormal();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (width == 0 || height == 0) {
|
if (width <= 0 || height <= 0) {
|
||||||
width = m_size.width();
|
if (!m_normalSize.isEmpty())
|
||||||
height = m_size.height();
|
m_window->configure(0, m_normalSize.width(), m_normalSize.height());
|
||||||
}
|
} else {
|
||||||
|
m_window->configure(0, width, height);
|
||||||
if (width > 0 && height > 0) {
|
|
||||||
m_margins = m_window->frameMargins();
|
|
||||||
m_window->configure(0, width + m_margins.left() + m_margins.right(), height + m_margins.top() + m_margins.bottom());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ack_configure(serial);
|
ack_configure(serial);
|
||||||
|
@ -112,7 +112,7 @@ private:
|
|||||||
bool m_maximized;
|
bool m_maximized;
|
||||||
bool m_minimized;
|
bool m_minimized;
|
||||||
bool m_fullscreen;
|
bool m_fullscreen;
|
||||||
QSize m_size;
|
QSize m_normalSize;
|
||||||
QMargins m_margins;
|
QMargins m_margins;
|
||||||
QWaylandExtendedSurface *m_extendedWindow;
|
QWaylandExtendedSurface *m_extendedWindow;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user