[wayland] Add an initialWindowSize to AbstractBackend
Useful for windowed backends like X11 and Wayland.
This commit is contained in:
parent
17d5839580
commit
d45cf6ee8d
4 changed files with 12 additions and 4 deletions
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -45,10 +45,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue