summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qt-compositor/compositor_api/waylandcompositor.cpp5
-rw-r--r--src/qt-compositor/compositor_api/waylandcompositor.h1
-rw-r--r--src/qt-compositor/wayland_wrapper/wlcompositor.cpp5
-rw-r--r--src/qt-compositor/wayland_wrapper/wlcompositor.h1
-rw-r--r--src/qt-compositor/wayland_wrapper/wloutput.cpp10
-rw-r--r--src/qt-compositor/wayland_wrapper/wloutput.h10
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;
};