diff --git a/abstract_backend.h b/abstract_backend.h index 1d1d73a94a..8f531cea20 100644 --- a/abstract_backend.h +++ b/abstract_backend.h @@ -61,6 +61,9 @@ public: bool isReady() const { return m_ready; } + void setInitialWindowSize(const QSize &size) { + m_initialWindowSize = size; + } void pointerMotion(const QPointF &position, quint32 time); void pointerButtonPressed(quint32 button, quint32 time); @@ -93,6 +96,9 @@ protected: } void repaint(const QRect &rect); void setReady(bool ready); + QSize initialWindowSize() const { + return m_initialWindowSize; + } private Q_SLOTS: void installThemeCursor(quint32 id, const QPoint &hotspot); @@ -108,6 +114,7 @@ private: WaylandCursorTheme *m_cursorTheme = nullptr; bool m_handlesOutputs = false; bool m_ready = false; + QSize m_initialWindowSize; }; } diff --git a/backends/x11/x11windowed_backend.cpp b/backends/x11/x11windowed_backend.cpp index e3f853d9b7..029ffb511f 100644 --- a/backends/x11/x11windowed_backend.cpp +++ b/backends/x11/x11windowed_backend.cpp @@ -45,10 +45,9 @@ along with this program. If not, see . namespace KWin { -X11WindowedBackend::X11WindowedBackend(const QByteArray &display, const QSize &size, QObject *parent) +X11WindowedBackend::X11WindowedBackend(const QByteArray &display, QObject *parent) : AbstractBackend(parent) , m_displayName(display) - , m_size(size) { } @@ -123,6 +122,7 @@ void X11WindowedBackend::createWindow() XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_EXPOSURE }; + m_size = initialWindowSize(); xcb_create_window(m_connection, XCB_COPY_FROM_PARENT, m_window, m_screen->root, 0, 0, m_size.width(), m_size.height(), 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, mask, values); diff --git a/backends/x11/x11windowed_backend.h b/backends/x11/x11windowed_backend.h index 900b34b57f..87491435f0 100644 --- a/backends/x11/x11windowed_backend.h +++ b/backends/x11/x11windowed_backend.h @@ -39,7 +39,7 @@ class KWIN_EXPORT X11WindowedBackend : public AbstractBackend Q_OBJECT Q_PROPERTY(QSize size READ size NOTIFY sizeChanged) public: - X11WindowedBackend(const QByteArray &display, const QSize &size, QObject *parent); + X11WindowedBackend(const QByteArray &display, QObject *parent); virtual ~X11WindowedBackend(); void init() override; diff --git a/main_wayland.cpp b/main_wayland.cpp index 4fdbca6313..f03366a50a 100644 --- a/main_wayland.cpp +++ b/main_wayland.cpp @@ -105,7 +105,7 @@ void ApplicationWayland::createBackend() backend = b; } if (!backend && !m_x11Display.isEmpty()) { - KWin::X11WindowedBackend *x11Backend = new KWin::X11WindowedBackend(m_x11Display, m_backendSize, this); + KWin::X11WindowedBackend *x11Backend = new KWin::X11WindowedBackend(m_x11Display, this); backend = x11Backend; } } @@ -129,6 +129,7 @@ void ApplicationWayland::createBackend() ::exit(1); } ); + backend->setInitialWindowSize(m_backendSize); backend->init(); } else { std::cerr << "FATAL ERROR: could not create a backend, exiting now" << std::endl;