#include "lts_screen_base.h" #include "lts_dummy_widget.h" #include #include #include #include #include #include #ifdef Q_OS_WIN #include #endif class NoCloseWidget : public QWidget { void closeEvent(QCloseEvent *event) override { event->ignore(); } }; namespace LtsMultiMonitor { LtsScreenBase::LtsScreenBase(QRect screenGeo, int screenId, bool debugMargins, const QString &serial) : m_screenDialog(new NoCloseWidget()) , m_screenId(screenId) , m_serial(serial) , m_screenRect(screenGeo) { connect(this, &LtsScreenBase::destroyed, m_screenDialog, &QWidget::deleteLater); if (debugMargins) { qWarning() << "LtsScreenBase: screen rect adjusted for dev machines!"; m_screenRect.adjust(+50, +50, -100, -100); } m_screenDialog->setWindowFlags(Qt::FramelessWindowHint); m_screenDialog->setGeometry(m_screenRect); m_screenDialog->setMinimumSize(m_screenRect.width(), m_screenRect.height()); m_screenDialog->setMaximumSize(m_screenRect.width(), m_screenRect.height()); m_screenDialog->setContentsMargins(0, 0, 0, 0); m_screenDialog->setWindowFlag(Qt::WindowType::WindowStaysOnBottomHint); #ifdef Q_OS_WIN m_screenDialog->winId(); QWindowsWindowFunctions::setHasBorderInFullScreen(m_screenDialog->windowHandle(), true); #endif m_screenDialog->activateWindow(); m_screenDialog->show(); } }