diff options
6 files changed, 27 insertions, 5 deletions
diff --git a/src/qt-compositor/compositor_api/waylandcompositor.cpp b/src/qt-compositor/compositor_api/waylandcompositor.cpp index 746ac57..ee3e949 100644 --- a/src/qt-compositor/compositor_api/waylandcompositor.cpp +++ b/src/qt-compositor/compositor_api/waylandcompositor.cpp @@ -146,3 +146,8 @@ void WaylandCompositor::setScreenOrientation(qint32 orientationInDegrees) { m_compositor->setScreenOrientation(orientationInDegrees); } + +void WaylandCompositor::setOutputGeometry(const QRect &geometry) +{ + m_compositor->setOutputGeometry(geometry); +} diff --git a/src/qt-compositor/compositor_api/waylandcompositor.h b/src/qt-compositor/compositor_api/waylandcompositor.h index 71ef657..1075265 100644 --- a/src/qt-compositor/compositor_api/waylandcompositor.h +++ b/src/qt-compositor/compositor_api/waylandcompositor.h @@ -85,6 +85,7 @@ public: const char *socketName() const; void setScreenOrientation(qint32 orientationInDegrees); + void setOutputGeometry(const QRect &outputGeometry); private: static void retainedSelectionChanged(QMimeData *mimeData, void *param); diff --git a/src/qt-compositor/wayland_wrapper/wlcompositor.cpp b/src/qt-compositor/wayland_wrapper/wlcompositor.cpp index f76701e..032e14d 100644 --- a/src/qt-compositor/wayland_wrapper/wlcompositor.cpp +++ b/src/qt-compositor/wayland_wrapper/wlcompositor.cpp @@ -456,6 +456,11 @@ void Compositor::setScreenOrientation(qint32 orientationInDegrees) } } +void Compositor::setOutputGeometry(const QRect &geometry) +{ + m_output.setGeometry(geometry); +} + } // namespace Wayland wl_input_device * Wayland::Compositor::defaultInputDevice() diff --git a/src/qt-compositor/wayland_wrapper/wlcompositor.h b/src/qt-compositor/wayland_wrapper/wlcompositor.h index 39404bc..647bdf6 100644 --- a/src/qt-compositor/wayland_wrapper/wlcompositor.h +++ b/src/qt-compositor/wayland_wrapper/wlcompositor.h @@ -108,6 +108,7 @@ public: QList<struct wl_client *> clients() const; void setScreenOrientation(qint32 orientationInDegrees); + void setOutputGeometry(const QRect &geometry); signals: void clientAdded(wl_client *client); diff --git a/src/qt-compositor/wayland_wrapper/wloutput.cpp b/src/qt-compositor/wayland_wrapper/wloutput.cpp index 6e7ea2d..39bf7c9 100644 --- a/src/qt-compositor/wayland_wrapper/wloutput.cpp +++ b/src/qt-compositor/wayland_wrapper/wloutput.cpp @@ -50,7 +50,7 @@ void output_post_geometry(struct wl_client *client, struct wl_object *global, ui Q_UNUSED(version); Output *output = wayland_cast<Output *>(global); - wl_client_post_event(client, global, WL_OUTPUT_GEOMETRY, 0, 0, + wl_client_post_event(client, global, WL_OUTPUT_GEOMETRY, output->x(), output->y(), output->size().width(), output->size().height(),0,"",""); wl_client_post_event(client,global,WL_OUTPUT_MODE, 0,output->size().width(),output->size().height()); @@ -58,10 +58,16 @@ void output_post_geometry(struct wl_client *client, struct wl_object *global, ui Output::Output() - : m_size(QApplication::desktop()->screenGeometry().size()) + : m_geometry(QPoint(0,0), QApplication::desktop()->screenGeometry().size()) , m_displayId(-1) , m_numQueued(0) { + } +void Output::setGeometry(const QRect &geometry) +{ + m_geometry = geometry; } + +} // namespace Wayland diff --git a/src/qt-compositor/wayland_wrapper/wloutput.h b/src/qt-compositor/wayland_wrapper/wloutput.h index cd899a5..cf64955 100644 --- a/src/qt-compositor/wayland_wrapper/wloutput.h +++ b/src/qt-compositor/wayland_wrapper/wloutput.h @@ -43,7 +43,7 @@ #include "waylandobject.h" -#include <QtCore/QSize> +#include <QtCore/QRect> namespace Wayland { @@ -52,10 +52,14 @@ class Output : public Object<struct wl_object> public: Output(); - QSize size() const { return m_size; } + void setGeometry(const QRect &geometry); + + int x() const { return m_geometry.x(); } + int y() const { return m_geometry.y(); } + QSize size() const { return m_geometry.size(); } private: - QSize m_size; + QRect m_geometry; int m_displayId; int m_numQueued; }; |