Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ set_package_properties(Plasma PROPERTIES
TYPE RUNTIME
)

find_package(KDecoration2 ${KDE_PLASMA_VERSION}
find_package(KDecoration3 ${KDE_PLASMA_VERSION}
CONFIG REQUIRED
)

Expand Down
4 changes: 2 additions & 2 deletions como/input/device_redirect.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*/
#pragma once

#include <KDecoration2/Private/DecoratedClientPrivate>
#include <KDecoration3/Private/DecoratedWindowPrivate>
#include <QWindow>
#include <optional>

Expand Down Expand Up @@ -38,7 +38,7 @@ struct device_redirect_focus {
QWindow* internal_window{nullptr};

struct {
KDecoration2::DecoratedClientPrivate* client{nullptr};
KDecoration3::DecoratedWindowPrivate* client{nullptr};

// TODO(romangg): Make this unnecessary. Reuse instead the normal focus window.
std::optional<Window> window;
Expand Down
18 changes: 9 additions & 9 deletions como/render/deco_shadow.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,29 @@
#include <como/win/deco.h>
#include <como/win/scene.h>

#include <KDecoration2/Decoration>
#include <KDecoration2/DecorationShadow>
#include <KDecoration3/Decoration>
#include <KDecoration3/DecorationShadow>

namespace como::render
{

template<typename Shadow>
bool update_deco_shadow(Shadow& impl, KDecoration2::Decoration* decoration)
bool update_deco_shadow(Shadow& impl, KDecoration3::Decoration* decoration)
{
if (!std::visit(overload{[&](auto&& ref_win) {
if (impl.m_decorationShadow) {
// disconnect previous connections
QObject::disconnect(
impl.m_decorationShadow.get(),
&KDecoration2::DecorationShadow::innerShadowRectChanged,
&KDecoration3::DecorationShadow::innerShadowRectChanged,
ref_win->qobject.get(),
nullptr);
QObject::disconnect(impl.m_decorationShadow.get(),
&KDecoration2::DecorationShadow::shadowChanged,
&KDecoration3::DecorationShadow::shadowChanged,
ref_win->qobject.get(),
nullptr);
QObject::disconnect(impl.m_decorationShadow.get(),
&KDecoration2::DecorationShadow::paddingChanged,
&KDecoration3::DecorationShadow::paddingChanged,
ref_win->qobject.get(),
nullptr);
}
Expand All @@ -47,15 +47,15 @@ bool update_deco_shadow(Shadow& impl, KDecoration2::Decoration* decoration)
auto update_shadow = [ref_win]() { win::update_shadow(ref_win); };

QObject::connect(impl.m_decorationShadow.get(),
&KDecoration2::DecorationShadow::innerShadowRectChanged,
&KDecoration3::DecorationShadow::innerShadowRectChanged,
ref_win->qobject.get(),
update_shadow);
QObject::connect(impl.m_decorationShadow.get(),
&KDecoration2::DecorationShadow::shadowChanged,
&KDecoration3::DecorationShadow::shadowChanged,
ref_win->qobject.get(),
update_shadow);
QObject::connect(impl.m_decorationShadow.get(),
&KDecoration2::DecorationShadow::paddingChanged,
&KDecoration3::DecorationShadow::paddingChanged,
ref_win->qobject.get(),
update_shadow);
return true;
Expand Down
4 changes: 2 additions & 2 deletions como/render/effect/interface/effect_window.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include <QObject>
#include <QWindow>

namespace KDecoration2
namespace KDecoration3
{
class Decoration;
}
Expand Down Expand Up @@ -436,7 +436,7 @@ class COMO_EXPORT EffectWindow : public QObject
* Returns the decoration
* @since 5.25
*/
virtual KDecoration2::Decoration* decoration() const = 0;
virtual KDecoration3::Decoration* decoration() const = 0;
virtual QByteArray readProperty(long atom, long type, int format) const = 0;
virtual void deleteProperty(long atom) const = 0;

Expand Down
2 changes: 1 addition & 1 deletion como/render/effect/window_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,7 @@ class effects_window_impl : public EffectWindow
*window.ref_win);
}

KDecoration2::Decoration* decoration() const override
KDecoration3::Decoration* decoration() const override
{
return std::visit(overload{[](auto&& ref_win) { return win::decoration(ref_win); }},
*window.ref_win);
Expand Down
2 changes: 1 addition & 1 deletion como/render/effects.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
#include <como/render/gl/interface/framebuffer.h>
#include <como/render/gl/interface/platform.h>

#include <KDecoration2/DecorationSettings>
#include <KDecoration3/DecorationSettings>

namespace como::render
{
Expand Down
2 changes: 1 addition & 1 deletion como/render/effects.h
Original file line number Diff line number Diff line change
Expand Up @@ -981,7 +981,7 @@ class effects_handler_impl : public effects_handler_wrap
// TODO: this could become per window and be derived from the actual position in the
// deco
auto deco_settings = get_space().deco->settings();
auto close_enum = KDecoration2::DecorationButtonType::Close;
auto close_enum = KDecoration3::DecorationButtonType::Close;
return deco_settings && deco_settings->decorationButtonsLeft().contains(close_enum)
? Qt::TopLeftCorner
: Qt::TopRightCorner;
Expand Down
2 changes: 1 addition & 1 deletion como/render/gl/shadow.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class DecorationShadowTextureCache
QSharedPointer<GLTexture> texture;
QVector<Shadow*> shadows;
};
QHash<KDecoration2::DecorationShadow*, Data> m_cache;
QHash<KDecoration3::DecorationShadow*, Data> m_cache;
};

template<typename Window, typename Scene>
Expand Down
10 changes: 5 additions & 5 deletions como/render/shadow.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

#include <como/render/effect/interface/window_quad.h>

#include <KDecoration2/DecorationShadow>
#include <KDecoration3/DecorationShadow>
#include <QObject>
#include <QPixmap>
#include <functional>
Expand Down Expand Up @@ -110,7 +110,7 @@ class shadow : public QObject
return m_decorationShadow->shadow();
}

std::weak_ptr<KDecoration2::DecorationShadow> decorationShadow() const
std::weak_ptr<KDecoration3::DecorationShadow> decorationShadow() const
{
return m_decorationShadow;
}
Expand Down Expand Up @@ -267,7 +267,7 @@ class shadow : public QObject
int m_leftOffset;

// Decoration based shadows
std::shared_ptr<KDecoration2::DecorationShadow> m_decorationShadow;
std::shared_ptr<KDecoration3::DecorationShadow> m_decorationShadow;

Window* window;

Expand All @@ -290,7 +290,7 @@ class shadow : public QObject
return m_shadowElements[static_cast<size_t>(element)];
}

QSize elementSize(shadow_element element) const
QSizeF elementSize(shadow_element element) const
{
if (m_decorationShadow) {
switch (element) {
Expand All @@ -311,7 +311,7 @@ class shadow : public QObject
case shadow_element::top_left:
return m_decorationShadow->topLeftGeometry().size();
default:
return QSize();
return QSizeF();
}
} else {
return m_shadowElements[enum_index(element)].size();
Expand Down
4 changes: 2 additions & 2 deletions como/win/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ add_library(win SHARED)

target_link_libraries(win
PUBLIC
KDecoration2::KDecoration
KDecoration2::KDecoration2Private
KDecoration3::KDecoration
KDecoration3::KDecoration3Private
KF6::ColorScheme
KF6::ConfigCore
KF6::ConfigGui
Expand Down
4 changes: 2 additions & 2 deletions como/win/dbus/appmenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ SPDX-License-Identifier: GPL-2.0-or-later

#include <como/win/appmenu.h>

#include <KDecoration2/DecorationSettings>
#include <KDecoration3/DecorationSettings>
#include <QObject>
#include <functional>
#include <memory>
Expand Down Expand Up @@ -52,7 +52,7 @@ appmenu_callbacks create_appmenu_callbacks(Space const& space)
callbacks.show_request = [&space](appmenu_address const& addr, int action_id) {
if (auto deco_settings = space.deco->settings()) {
// Ignore request when user has not configured appmenu title bar button.
auto menu_enum = KDecoration2::DecorationButtonType::ApplicationMenu;
auto menu_enum = KDecoration3::DecorationButtonType::ApplicationMenu;
auto const& lbtn = deco_settings->decorationButtonsLeft();
auto const& rbtn = deco_settings->decorationButtonsRight();
if (!lbtn.contains(menu_enum) && !rbtn.contains(menu_enum)) {
Expand Down
4 changes: 2 additions & 2 deletions como/win/deco.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@

#include "structs.h"

#include <KDecoration2/Decoration>
#include <KDecoration3/Decoration>
#include <QObject>

namespace como::win
{

template<typename Win>
KDecoration2::Decoration* decoration(Win* win)
KDecoration3::Decoration* decoration(Win* win)
{
if (win->control) {
return win->control->deco.decoration;
Expand Down
48 changes: 26 additions & 22 deletions como/win/deco/bridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,23 @@ SPDX-License-Identifier: GPL-2.0-or-later

#include <como/win/deco.h>

#include <KDecoration2/DecoratedClient>
#include <KDecoration2/Decoration>
#include <KDecoration2/DecorationSettings>
#include <KDecoration2/Private/DecorationBridge>
#include <KDecoration3/DecoratedWindow>
#include <KDecoration3/Decoration>
#include <KDecoration3/Private/DecorationBridge>
#include <KPluginFactory>
#include <KPluginMetaData>
#include <QMetaProperty>

namespace KDecoration2
namespace KDecoration3
{
class DecorationSettings;
class DecorataionSettings;
}

namespace como::win::deco
{

static const QString s_aurorae = QStringLiteral("org.kde.kwin.aurorae");
static const QString s_pluginName = QStringLiteral("org.kde.kdecoration2");
static const QString s_pluginName = QStringLiteral("org.kde.kdecoration3");

#if HAVE_BREEZE_DECO
static const QString s_defaultPlugin = QStringLiteral(BREEZE_KDECORATION_PLUGIN_ID);
Expand All @@ -42,7 +41,7 @@ static const QString s_defaultPlugin = s_aurorae;
#endif

template<typename Space>
class bridge : public KDecoration2::DecorationBridge
class bridge : public KDecoration3::DecorationBridge
{
public:
bridge(Space& space)
Expand All @@ -69,7 +68,7 @@ class bridge : public KDecoration2::DecorationBridge
return;
}
m_plugin = readPlugin();
m_settings = std::make_shared<KDecoration2::DecorationSettings>(this);
m_settings = std::make_shared<KDecoration3::DecorationSettings>(this);
initPlugin();
if (!m_factory) {
if (m_plugin != s_defaultPlugin) {
Expand All @@ -86,7 +85,7 @@ class bridge : public KDecoration2::DecorationBridge
}

template<typename Win>
KDecoration2::Decoration* createDecoration(deco::window<Win>* window)
KDecoration3::Decoration* createDecoration(deco::window<Win>* window)
{
if (m_noPlugin) {
return nullptr;
Expand All @@ -99,28 +98,33 @@ class bridge : public KDecoration2::DecorationBridge
if (!m_theme.isEmpty()) {
args.insert(QStringLiteral("theme"), m_theme);
}
auto deco = m_factory->create<KDecoration2::Decoration>(window, QVariantList{args});
auto deco = m_factory->create<KDecoration3::Decoration>(window, QVariantList{args});
connect(deco, &KDecoration3::Decoration::nextStateChanged, this, [this,deco](auto state) {
deco->apply(state->clone());
});

deco->setSettings(m_settings);
deco->create();
deco->init();
return deco;
}

std::unique_ptr<KDecoration2::DecoratedClientPrivate>
createClient(KDecoration2::DecoratedClient* client,
KDecoration2::Decoration* decoration) override
std::unique_ptr<KDecoration3::DecoratedWindowPrivate>
createClient(KDecoration3::DecoratedWindow* client,
KDecoration3::Decoration* decoration) override
{
using window_t = typename Space::window_t;

return std::visit(
overload{[&](auto win) -> std::unique_ptr<KDecoration2::DecoratedClientPrivate> {
overload{[&](auto win) -> std::unique_ptr<KDecoration3::DecoratedWindowPrivate> {
using win_t = std::remove_pointer_t<decltype(win)>;
return std::make_unique<client_impl<win_t>>(win, client, decoration);
}},
static_cast<window<window_t>*>(decoration->parent())->win);
}

std::unique_ptr<KDecoration2::DecorationSettingsPrivate>
settings(KDecoration2::DecorationSettings* parent) override
std::unique_ptr<KDecoration3::DecorationSettingsPrivate>
settings(KDecoration3::DecorationSettings* parent) override
{
return std::make_unique<deco::settings<Space>>(space, parent);
}
Expand Down Expand Up @@ -181,7 +185,7 @@ class bridge : public KDecoration2::DecorationBridge
}
}

std::shared_ptr<KDecoration2::DecorationSettings> const& settings() const
std::shared_ptr<KDecoration3::DecorationSettings> const& settings() const
{
return m_settings;
}
Expand Down Expand Up @@ -302,11 +306,11 @@ class bridge : public KDecoration2::DecorationBridge

static QString settingsProperty(const QVariant& variant)
{
if (QLatin1String(variant.typeName()) == QLatin1String("KDecoration2::BorderSize")) {
if (QLatin1String(variant.typeName()) == QLatin1String("KDecoration3::BorderSize")) {
return QString::number(variant.toInt());
} else if (QLatin1String(variant.typeName())
== QLatin1String("QVector<KDecoration2::DecorationButtonType>")) {
const auto& b = variant.value<QVector<KDecoration2::DecorationButtonType>>();
== QLatin1String("QVector<KDecoration3::DecorationButtonType>")) {
const auto& b = variant.value<QVector<KDecoration3::DecorationButtonType>>();
QString buffer;
for (auto it = b.begin(); it != b.end(); ++it) {
if (it != b.begin()) {
Expand All @@ -325,7 +329,7 @@ class bridge : public KDecoration2::DecorationBridge
QString m_plugin;
QString m_defaultTheme;
QString m_theme;
std::shared_ptr<KDecoration2::DecorationSettings> m_settings;
std::shared_ptr<KDecoration3::DecorationSettings> m_settings;
bool m_noPlugin{false};
Space& space;
};
Expand Down
Loading