From b1cc4e7de641a9e6ef866744d7775d45813bad8d Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周一, 11 12月 2023 23:47:11 +0800 Subject: [PATCH] clean codes --- src/widgets/widgetwindowagent.cpp | 25 +++++++++++++++++++++++-- 1 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/widgets/widgetwindowagent.cpp b/src/widgets/widgetwindowagent.cpp index 578ab83..ea8f6df 100644 --- a/src/widgets/widgetwindowagent.cpp +++ b/src/widgets/widgetwindowagent.cpp @@ -12,15 +12,26 @@ class WidgetBorderHandler : public QObject { public: WidgetBorderHandler(QWidget *widget, AbstractWindowContext *ctx) - : widget(widget), ctx(ctx) { + : widget(widget), ctx(ctx), m_thickness(0) { + updateThickness(); widget->installEventFilter(this); + } + + void updateThickness() { + // Query thickness + bool native = false; + void *a[] = { + &native, + &m_thickness, + }; + ctx->virtual_hook(AbstractWindowContext::BorderThicknessHook, &a); } void updateMargins() { if (widget->windowState() & (Qt::WindowMaximized | Qt::WindowFullScreen)) { widget->setContentsMargins({}); } else { - widget->setContentsMargins({0, 1, 0, 0}); + widget->setContentsMargins({0, int(m_thickness), 0, 0}); } } @@ -48,6 +59,15 @@ updateMargins(); break; } + + case QEvent::WindowActivate: + case QEvent::WindowDeactivate: { + widget->update(); + break; + } + + // TODO: Handle DPI Change + default: break; } @@ -56,6 +76,7 @@ QWidget *widget; AbstractWindowContext *ctx; + quint32 m_thickness; }; WidgetWindowAgentPrivate::WidgetWindowAgentPrivate() { -- Gitblit v1.9.1