void QWaylandWindow::setWindowState(Qt::WindowState state) { if (state == Qt::WindowFullScreen || state == Qt::WindowMaximized) { QScreen *screen = window()->screen(); QRect geometry = screen->mapBetween(window()->windowOrientation(), screen->primaryOrientation(), screen->geometry()); setGeometry(geometry); QWindowSystemInterface::handleGeometryChange(window(), geometry); } }
void Surface::surface_set_buffer_transform(Resource *resource, int32_t orientation) { Q_UNUSED(resource); QScreen *screen = QGuiApplication::primaryScreen(); bool isPortrait = screen->primaryOrientation() == Qt::PortraitOrientation; Qt::ScreenOrientation oldOrientation = m_contentOrientation; switch (orientation) { case WL_OUTPUT_TRANSFORM_90: m_contentOrientation = isPortrait ? Qt::InvertedLandscapeOrientation : Qt::PortraitOrientation; break; case WL_OUTPUT_TRANSFORM_180: m_contentOrientation = isPortrait ? Qt::InvertedPortraitOrientation : Qt::InvertedLandscapeOrientation; break; case WL_OUTPUT_TRANSFORM_270: m_contentOrientation = isPortrait ? Qt::LandscapeOrientation : Qt::InvertedPortraitOrientation; break; default: m_contentOrientation = Qt::PrimaryOrientation; } if (m_contentOrientation != oldOrientation) emit waylandSurface()->contentOrientationChanged(); }
bool ReticleHandler::eventFilter(QObject *, QEvent *event) { static bool show = true; switch (event->type()) { case QEvent::TouchBegin: show = true; break; case QEvent::TouchUpdate: show = false; break; case QEvent::TouchCancel: show = false; break; case QEvent::TouchEnd: { if (show) { QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event); const QTouchEvent::TouchPoint &touchPoint = touchEvent->touchPoints().first(); QPointF fpoint = touchPoint.pos(); int x = static_cast<int>(fpoint.x()); int y = static_cast<int>(fpoint.y()); QScreen *primaryScreen = QGuiApplication::primaryScreen(); QTransform lOrientationTranform = primaryScreen->transformBetween(primaryScreen->orientation(), primaryScreen->primaryOrientation(), primaryScreen->geometry()).inverted(); emit reticleEvent(lOrientationTranform.map(QPoint(x,y))); }; show = false; } break; } return false; }