Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
add_subdirectory(org.kde.kdecoration3)
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
########################################################
|
||||
# FakeDecoWithShadows
|
||||
########################################################
|
||||
add_library(fakedecoshadows MODULE fakedecoration_with_shadows.cpp)
|
||||
set_target_properties(fakedecoshadows PROPERTIES
|
||||
PREFIX ""
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/fakes/org.kde.kdecoration3")
|
||||
target_link_libraries(fakedecoshadows
|
||||
PUBLIC
|
||||
Qt::Core
|
||||
Qt::Gui
|
||||
PRIVATE
|
||||
KDecoration3::KDecoration
|
||||
KF6::CoreAddons)
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
KWin - the KDE window manager
|
||||
This file is part of the KDE project.
|
||||
|
||||
SPDX-FileCopyrightText: 2018 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <QPainter>
|
||||
|
||||
#include <KDecoration3/Decoration>
|
||||
#include <KPluginFactory>
|
||||
|
||||
class FakeDecoWithShadows : public KDecoration3::Decoration
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit FakeDecoWithShadows(QObject *parent = nullptr, const QVariantList &args = QVariantList())
|
||||
: Decoration(parent, args)
|
||||
{
|
||||
}
|
||||
~FakeDecoWithShadows() override
|
||||
{
|
||||
}
|
||||
|
||||
void paint(QPainter *painter, const QRectF &repaintRegion) override
|
||||
{
|
||||
}
|
||||
|
||||
public Q_SLOTS:
|
||||
bool init() override
|
||||
{
|
||||
const int shadowSize = 128;
|
||||
const int offsetTop = 64;
|
||||
const int offsetLeft = 48;
|
||||
const QRect shadowRect(0, 0, 4 * shadowSize + 1, 4 * shadowSize + 1);
|
||||
|
||||
QImage shadowTexture(shadowRect.size(), QImage::Format_ARGB32_Premultiplied);
|
||||
shadowTexture.fill(Qt::transparent);
|
||||
|
||||
const QMargins padding(
|
||||
shadowSize - offsetLeft,
|
||||
shadowSize - offsetTop,
|
||||
shadowSize + offsetLeft,
|
||||
shadowSize + offsetTop);
|
||||
|
||||
auto decoShadow = std::make_shared<KDecoration3::DecorationShadow>();
|
||||
decoShadow->setPadding(padding);
|
||||
decoShadow->setInnerShadowRect(QRect(shadowRect.center(), QSize(1, 1)));
|
||||
decoShadow->setShadow(shadowTexture);
|
||||
|
||||
setShadow(decoShadow);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
K_PLUGIN_FACTORY_WITH_JSON(
|
||||
FakeDecoWithShadowsFactory,
|
||||
"fakedecoration_with_shadows.json",
|
||||
registerPlugin<FakeDecoWithShadows>();)
|
||||
|
||||
#include "fakedecoration_with_shadows.moc"
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"KPlugin": {
|
||||
"Description": "Window decoration to test shadow tile overlaps",
|
||||
"EnabledByDefault": false,
|
||||
"Id": "org.kde.test.fakedecowithshadows",
|
||||
"Name": "Fake Decoration With Shadows"
|
||||
},
|
||||
"org.kde.kdecoration2": {
|
||||
"blur": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user