Projects
Eulaceura:Factory
deepin-system-monitor
_service:obs_scm:0003-feat-add-build-option-to-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0003-feat-add-build-option-to-disable-wayland-support.patch of Package deepin-system-monitor
From 982cf2a7b7a60843f17b103ecafa150dd4f557da Mon Sep 17 00:00:00 2001 From: leeffo <liweiganga@uniontech.com> Date: Tue, 25 Jul 2023 11:33:00 +0800 Subject: [PATCH] feat: add build option to disable wayland support --- .../gui/xwin_kill_preview_widget.cpp | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/deepin-system-monitor-main/gui/xwin_kill_preview_widget.cpp b/deepin-system-monitor-main/gui/xwin_kill_preview_widget.cpp index 077aa1e..26ec724 100644 --- a/deepin-system-monitor-main/gui/xwin_kill_preview_widget.cpp +++ b/deepin-system-monitor-main/gui/xwin_kill_preview_widget.cpp @@ -37,12 +37,14 @@ XWinKillPreviewWidget::XWinKillPreviewWidget(QWidget *parent) : QWidget(parent) { // new window manager instance m_wminfo = new WMInfo(); -//不再使用CMakeList开关宏的方式,改用全局变量运行时控制 -//WaylandCentered定义在common/common.h中,在main函数开头进行初始化判断 +// 如果在编译时选择支持Wayland,运行时会由全局变量WaylandCentered控制 +// WaylandCentered定义在common/common.h中,在main函数开头进行初始化判断 +#ifdef USE_DEEPIN_WAYLAND if (WaylandCentered) { m_connectionThread = new QThread(this); m_connectionThreadObject = new ConnectionThread(); } +#endif // USE_DEEPIN_WAYLAND // init ui components & connections initUI(); @@ -66,11 +68,13 @@ XWinKillPreviewWidget::~XWinKillPreviewWidget() releaseMouse(); releaseKeyboard(); delete m_wminfo; +#ifdef USE_DEEPIN_WAYLAND if (WaylandCentered) { m_connectionThread->quit(); m_connectionThread->wait(); m_connectionThreadObject->deleteLater(); } +#endif // USE_DEEPIN_WAYLAND } // mouse press event @@ -82,6 +86,7 @@ void XWinKillPreviewWidget::mousePressEvent(QMouseEvent *event) } // get the list of windows under cursor in stacked order when mouse pressed auto pos = QCursor::pos(); +#ifdef USE_DEEPIN_WAYLAND if (WaylandCentered) { double ratio = QGuiApplication::primaryScreen()->devicePixelRatio(); // 获得当前的缩放比例 QRect screenRect; @@ -119,7 +124,9 @@ void XWinKillPreviewWidget::mousePressEvent(QMouseEvent *event) break; } } - } else { + } +#endif // USE_DEEPIN_WAYLAND + if (!WaylandCentered) { double ratio = QGuiApplication::primaryScreen()->devicePixelRatio(); // 获得当前的缩放比例 QRect screenRect; for (auto screen : QApplication::screens()) { @@ -165,6 +172,7 @@ void XWinKillPreviewWidget::mousePressEvent(QMouseEvent *event) // mouse move event handler void XWinKillPreviewWidget::mouseMoveEvent(QMouseEvent *) { +#ifdef USE_DEEPIN_WAYLAND if (WaylandCentered) { double ratio = QGuiApplication::primaryScreen()->devicePixelRatio(); // 获得当前的缩放比例 auto pos = QCursor::pos(); @@ -236,7 +244,9 @@ void XWinKillPreviewWidget::mouseMoveEvent(QMouseEvent *) bg->clearSelection(); emit cursorUpdated(m_defaultCursor); } - } else { + } +#endif // USE_DEEPIN_WAYLAND + if (!WaylandCentered) { double ratio = QGuiApplication::primaryScreen()->devicePixelRatio(); // 获得当前的缩放比例 auto pos = QCursor::pos(); QRect screenRect; @@ -351,9 +361,10 @@ void XWinKillPreviewWidget::initUI() // snapshot current scree auto pixmap = screen->grabWindow(m_wminfo->getRootWindow()); +#ifdef USE_DEEPIN_WAYLAND if (WaylandCentered) pixmap = screen->grabWindow(m_windowStates.end()->windowId); - +#endif // USE_DEEPIN_WAYLAND pixmap = pixmap.copy(geom.x(), geom.y(), static_cast<int>(geom.width() * devicePixelRatioF()), static_cast<int>(geom.height() * devicePixelRatioF())); // create preview background widget for each screen auto *background = new XWinKillPreviewBackgroundWidget(pixmap, this); @@ -378,6 +389,7 @@ void XWinKillPreviewWidget::initUI() // wayland协议下建立连接 void XWinKillPreviewWidget::initConnections() { +#ifdef USE_DEEPIN_WAYLAND if (WaylandCentered) { connect(m_connectionThreadObject, &ConnectionThread::connected, this, [this] { @@ -394,7 +406,10 @@ void XWinKillPreviewWidget::initConnections() m_connectionThreadObject->initConnection(); } +#endif // USE_DEEPIN_WAYLAND } + +#ifdef USE_DEEPIN_WAYLAND //打印当前窗口信息接口 void XWinKillPreviewWidget::print_window_states(const QVector<ClientManagement::WindowState> &m_windowStates) { @@ -447,3 +462,4 @@ void XWinKillPreviewWidget::setupRegistry(Registry *registry) } } +#endif // USE_DEEPIN_WAYLAND -- 2.20.1
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2