Skip to content

Commit 3cb46eb

Browse files
committed
fix: Boxshadow displays abnormally in fractional scaling scenarios
- Temporary solution
1 parent ef664f1 commit 3cb46eb

File tree

3 files changed

+58
-1
lines changed

3 files changed

+58
-1
lines changed

src/private/dquickborderimage.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// SPDX-FileCopyrightText: 2024 - 2025 UnionTech Software Technology Co., Ltd.
2+
//
3+
// SPDX-License-Identifier: LGPL-3.0-or-later
4+
5+
#include "dquickborderimage.h"
6+
7+
#include <private/qquickitem_p.h>
8+
#include <private/qquickborderimage_p_p.h>
9+
10+
DQUICK_BEGIN_NAMESPACE
11+
12+
DQuickBorderImage::DQuickBorderImage(QQuickItem *parent)
13+
:QQuickBorderImage(parent)
14+
{
15+
}
16+
17+
void DQuickBorderImage::itemChange(ItemChange change, const ItemChangeData &value)
18+
{
19+
if (change == ItemDevicePixelRatioHasChanged &&
20+
value.realValue != static_cast<QQuickBorderImagePrivate *>(QQuickItemPrivate::get(this))->devicePixelRatio) {
21+
return;
22+
}
23+
24+
QQuickBorderImage::itemChange(change, value);
25+
}
26+
27+
DQUICK_END_NAMESPACE

src/private/dquickborderimage.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// SPDX-FileCopyrightText: 2024 - 2025 UnionTech Software Technology Co., Ltd.
2+
//
3+
// SPDX-License-Identifier: LGPL-3.0-or-later
4+
5+
#ifndef DQUICKBORDERIMAGE_H
6+
#define DQUICKBORDERIMAGE_H
7+
8+
#include <dtkdeclarative_global.h>
9+
10+
#include <private/qquickimagebase_p.h>
11+
#include <private/qquickborderimage_p.h>
12+
13+
DQUICK_BEGIN_NAMESPACE
14+
15+
class DQuickBorderImage : public QQuickBorderImage
16+
{
17+
Q_OBJECT
18+
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
19+
QML_NAMED_ELEMENT(DBorderImage)
20+
#endif
21+
public:
22+
DQuickBorderImage(QQuickItem *parent=nullptr);
23+
24+
protected:
25+
void itemChange(ItemChange change, const ItemChangeData &value) override;
26+
};
27+
28+
DQUICK_END_NAMESPACE
29+
30+
#endif // DQUICKBORDERIMAGE_H

src/qml/BoxShadow.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Item {
2626
readonly property real __minImageSize: 2 * __borderBase
2727
readonly property real __boxSize: __minImageSize - 2 * shadowBlur - 2 * __spread + 1
2828

29-
BorderImage {
29+
D.DBorderImage {
3030
id: image
3131

3232
anchors {

0 commit comments

Comments
 (0)