From 1239e62bc9a88854e2a844716ef166e2acfef622 Mon Sep 17 00:00:00 2001 From: Pier Luigi Fiorini Date: Fri, 6 Mar 2015 23:17:26 +0100 Subject: Send done and scale events only when clients support wl_output >= 2 Those events were added with wl_output version 2 and we can't send them to clients supporting wl_output version 1. Change-Id: I4a673b8cc0476675532d31b4391a537d8473987b Reviewed-by: Giulio Camuffo --- src/compositor/wayland_wrapper/qwloutput.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/compositor/wayland_wrapper/qwloutput.cpp b/src/compositor/wayland_wrapper/qwloutput.cpp index 9cecff2a9..b01ffa59b 100644 --- a/src/compositor/wayland_wrapper/qwloutput.cpp +++ b/src/compositor/wayland_wrapper/qwloutput.cpp @@ -127,9 +127,10 @@ void Output::output_bind_resource(Resource *resource) m_mode.size.width(), m_mode.size.height(), m_mode.refreshRate); - send_scale(resource->handle, m_scaleFactor); - - send_done(resource->handle); + if (resource->version() >= 2) { + send_scale(resource->handle, m_scaleFactor); + send_done(resource->handle); + } } void Output::setManufacturer(const QString &manufacturer) @@ -163,7 +164,8 @@ void Output::setMode(const QWaylandOutput::Mode &mode) send_mode(resource->handle, mode_current, m_mode.size.width(), m_mode.size.height(), m_mode.refreshRate * 1000); - send_done(resource->handle); + if (resource->version() >= 2) + send_done(resource->handle); } } @@ -189,7 +191,8 @@ void Output::setGeometry(const QRect &geometry) send_mode(resource->handle, mode_current, m_mode.size.width(), m_mode.size.height(), m_mode.refreshRate * 1000); - send_done(resource->handle); + if (resource->version() >= 2) + send_done(resource->handle); } } @@ -236,8 +239,10 @@ void Output::setScaleFactor(int scale) m_scaleFactor = scale; Q_FOREACH (Resource *resource, resourceMap().values()) { - send_scale(resource->handle, m_scaleFactor); - send_done(resource->handle); + if (resource->version() >= 2) { + send_scale(resource->handle, m_scaleFactor); + send_done(resource->handle); + } } } @@ -254,7 +259,8 @@ void Output::sendGeometryInfo() m_physicalSize.width(), m_physicalSize.height(), toWlSubpixel(m_subpixel), m_manufacturer, m_model, toWlTransform(m_transform)); - send_done(resource->handle); + if (resource->version() >= 2) + send_done(resource->handle); } } -- cgit v1.2.3