diff options
Diffstat (limited to 'src/plugins/platforms/wayland_common/qwaylandextendedoutput.cpp')
-rw-r--r-- | src/plugins/platforms/wayland_common/qwaylandextendedoutput.cpp | 53 |
1 files changed, 10 insertions, 43 deletions
diff --git a/src/plugins/platforms/wayland_common/qwaylandextendedoutput.cpp b/src/plugins/platforms/wayland_common/qwaylandextendedoutput.cpp index 7b6f9f3ca..ce80d4874 100644 --- a/src/plugins/platforms/wayland_common/qwaylandextendedoutput.cpp +++ b/src/plugins/platforms/wayland_common/qwaylandextendedoutput.cpp @@ -43,44 +43,17 @@ #include "qwaylandscreen.h" -#include "wayland-output-extension-client-protocol.h" - #include <qpa/qwindowsysteminterface.h> #include <QtCore/QDebug> QT_USE_NAMESPACE -QWaylandOutputExtension::QWaylandOutputExtension(QWaylandDisplay *display, uint32_t id) -{ - m_output_extension = static_cast<struct wl_output_extension *>( - wl_registry_bind(display->wl_registry(), id, &wl_output_extension_interface, 1)); - - QList<QPlatformScreen *> platformScreens = display->screens(); - for (int i = 0; i < platformScreens.size(); i++) { - QWaylandScreen *waylandScreen = static_cast<QWaylandScreen *>(platformScreens.at(i)); - if (!waylandScreen->extendedOutput()) { - QWaylandExtendedOutput *extendedOutput = getExtendedOutput(waylandScreen); - waylandScreen->setExtendedOutput(extendedOutput); - qDebug() << "extended output enabled"; - } - } -} - -QWaylandExtendedOutput *QWaylandOutputExtension::getExtendedOutput(QWaylandScreen *screen) -{ - qDebug() << "getExtendedOutput"; - struct wl_extended_output *extended_output = - wl_output_extension_get_extended_output(m_output_extension,screen->output()); - return new QWaylandExtendedOutput(screen,extended_output); -} - -QWaylandExtendedOutput::QWaylandExtendedOutput(QWaylandScreen *screen, wl_extended_output *extended_output) - : m_extended_output(extended_output) +QWaylandExtendedOutput::QWaylandExtendedOutput(QWaylandScreen *screen, struct ::wl_extended_output *extended_output) + : QtWayland::wl_extended_output(extended_output) , m_screen(screen) , m_orientation(m_screen->orientation()) { - wl_extended_output_add_listener(m_extended_output,&extended_output_listener,this); } Qt::ScreenOrientation QWaylandExtendedOutput::currentOrientation() const @@ -99,33 +72,27 @@ void QWaylandExtendedOutput::setOrientationUpdateMask(Qt::ScreenOrientations ori mask |= WL_EXTENDED_OUTPUT_ROTATION_INVERTEDPORTRAITORIENTATION; if (orientations & Qt::InvertedLandscapeOrientation) mask |= WL_EXTENDED_OUTPUT_ROTATION_INVERTEDLANDSCAPEORIENTATION; - wl_extended_output_set_orientation_update_mask(m_extended_output, mask); + set_orientation_update_mask(mask); } -void QWaylandExtendedOutput::set_screen_rotation(void *data, wl_extended_output *wl_extended_output, int32_t rotation) +void QWaylandExtendedOutput::extended_output_set_screen_rotation(int32_t rotation) { - Q_UNUSED(wl_extended_output); - QWaylandExtendedOutput *extended_output = static_cast<QWaylandExtendedOutput *>(data); switch (rotation) { case WL_EXTENDED_OUTPUT_ROTATION_PORTRAITORIENTATION: - extended_output->m_orientation = Qt::PortraitOrientation; + m_orientation = Qt::PortraitOrientation; break; case WL_EXTENDED_OUTPUT_ROTATION_LANDSCAPEORIENTATION: - extended_output->m_orientation = Qt::LandscapeOrientation; + m_orientation = Qt::LandscapeOrientation; break; case WL_EXTENDED_OUTPUT_ROTATION_INVERTEDPORTRAITORIENTATION: - extended_output->m_orientation = Qt::InvertedPortraitOrientation; + m_orientation = Qt::InvertedPortraitOrientation; break; case WL_EXTENDED_OUTPUT_ROTATION_INVERTEDLANDSCAPEORIENTATION: - extended_output->m_orientation = Qt::InvertedLandscapeOrientation; + m_orientation = Qt::InvertedLandscapeOrientation; break; default: - extended_output->m_orientation = Qt::PortraitOrientation; + m_orientation = Qt::PortraitOrientation; break; } - QWindowSystemInterface::handleScreenOrientationChange(extended_output->m_screen->screen(), extended_output->m_orientation); + QWindowSystemInterface::handleScreenOrientationChange(m_screen->screen(), m_orientation); } - -const struct wl_extended_output_listener QWaylandExtendedOutput::extended_output_listener = { - QWaylandExtendedOutput::set_screen_rotation -}; |