Skip to content

Commit 854a575

Browse files
committed
fix: resolve master rebase build regressions
1 parent 3191b92 commit 854a575

3 files changed

Lines changed: 39 additions & 8 deletions

File tree

frame/layershell/x11dlayershellemulation.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include <xcb/xcb.h>
1818
#include <xcb/xcb_ewmh.h>
1919
#include <xcb/xcb_icccm.h>
20+
#include <xcb/shape.h>
2021

2122
DS_BEGIN_NAMESPACE
2223

@@ -316,6 +317,38 @@ void LayerShellEmulation::onScopeChanged()
316317
qCDebug(layershell) << "Set WM_CLASS for window" << m_window->winId() << " wm_class:" << wmClassData;
317318
}
318319

320+
void LayerShellEmulation::onInputRegionChanged()
321+
{
322+
auto *x11Application = qGuiApp->nativeInterface<QNativeInterface::QX11Application>();
323+
if (!x11Application || !m_window->winId() || !m_dlayerShellWindow) {
324+
return;
325+
}
326+
327+
if (m_dlayerShellWindow->inputRegion().isNull()) {
328+
xcb_shape_mask(x11Application->connection(), XCB_SHAPE_SO_SET, XCB_SHAPE_SK_INPUT, m_window->winId(), 0, 0, XCB_NONE);
329+
xcb_flush(x11Application->connection());
330+
return;
331+
}
332+
333+
QRegion region = m_dlayerShellWindow->inputRegion();
334+
qreal scaleFactor = qGuiApp->devicePixelRatio();
335+
336+
QVector<xcb_rectangle_t> rects;
337+
for (const QRect &r : region) {
338+
xcb_rectangle_t rect;
339+
rect.x = r.x() * scaleFactor;
340+
rect.y = r.y() * scaleFactor;
341+
rect.width = r.width() * scaleFactor;
342+
rect.height = r.height() * scaleFactor;
343+
rects.append(rect);
344+
}
345+
346+
xcb_shape_rectangles(x11Application->connection(), XCB_SHAPE_SO_SET, XCB_SHAPE_SK_INPUT,
347+
XCB_CLIP_ORDERING_UNSORTED, m_window->winId(), 0, 0,
348+
rects.size(), rects.data());
349+
xcb_flush(x11Application->connection());
350+
}
351+
319352
// void X11Emulation::onKeyboardInteractivityChanged()
320353
// {
321354
// // kwin no implentation on wayland

panels/dock/taskmanager/dockglobalelementmodel.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -951,14 +951,6 @@ QVariant DockGlobalElementModel::data(const QModelIndex &index, int role) const
951951
QModelIndex groupIndex = model->index(row, 0);
952952
return groupIndex.data(TaskManager::WindowsRole).toStringList();
953953
}
954-
case TaskManager::ActiveRole:
955-
case TaskManager::AttentionRole: {
956-
if (model == m_activeAppModel) {
957-
return model->index(row, 0).data(role);
958-
}
959-
return false;
960-
}
961-
962954
case TaskManager::MenusRole: {
963955
return getMenus(index);
964956
}

panels/dock/taskmanager/taskmanager.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,7 @@ TaskManager::TaskManager(QObject *parent)
10071007
qmlRegisterUncreatableType<TextCalculatorAttached>("org.deepin.ds.dock.taskmanager", 1, 0, "TextCalculatorAttached", "TextCalculator Attached");
10081008

10091009
connect(Settings, &TaskManagerSettings::allowedForceQuitChanged, this, &TaskManager::allowedForceQuitChanged);
1010+
connect(Settings, &TaskManagerSettings::showAttentionAnimationChanged, this, &TaskManager::showAttentionAnimationChanged);
10101011
connect(Settings, &TaskManagerSettings::windowSplitChanged, this, &TaskManager::windowSplitChanged);
10111012

10121013
if (auto *thumbnailProvider = Dtk::Gui::DThumbnailProvider::instance()) {
@@ -1291,6 +1292,11 @@ bool TaskManager::allowForceQuit()
12911292
return Settings->isAllowedForceQuit();
12921293
}
12931294

1295+
bool TaskManager::showAttentionAnimation()
1296+
{
1297+
return Settings->showAttentionAnimation();
1298+
}
1299+
12941300
QString TaskManager::desktopIdToAppId(const QString& desktopId) const
12951301
{
12961302
return Q_LIKELY(desktopId.endsWith(".desktop")) ? desktopId.chopped(8) : desktopId;

0 commit comments

Comments
 (0)