scripting: Fix registration of some types
We need to register data types such as QVector<KWin::VirtualDesktop *> both for QML and JavaScript scripts. If you have no JavaScript scripts enabled, those container types won't be registered and QML will fail to read properties such as Window.desktops, which can result in already visible windows animating opacity from 0 to 1 when opening overview effect. To fix that, register all accessible data types in scripting apis in Scripting::init().
This commit is contained in:
parent
99b2e6072c
commit
5942c13eba
1 changed files with 4 additions and 4 deletions
|
@ -150,10 +150,6 @@ KWin::Script::Script(int id, QString scriptName, QString pluginName, QObject *pa
|
|||
if (!QMetaType::hasRegisteredConverterFunction<QJSValue, QSizeF>()) {
|
||||
QMetaType::registerConverter<QJSValue, QSizeF>(scriptValueToSizeF);
|
||||
}
|
||||
|
||||
qRegisterMetaType<QList<KWin::Output *>>();
|
||||
qRegisterMetaType<QList<KWin::Window *>>();
|
||||
qRegisterMetaType<QVector<KWin::VirtualDesktop *>>();
|
||||
}
|
||||
|
||||
KWin::Script::~Script()
|
||||
|
@ -673,6 +669,10 @@ KWin::Scripting::Scripting(QObject *parent)
|
|||
|
||||
void KWin::Scripting::init()
|
||||
{
|
||||
qRegisterMetaType<QList<KWin::Output *>>();
|
||||
qRegisterMetaType<QList<KWin::Window *>>();
|
||||
qRegisterMetaType<QVector<KWin::VirtualDesktop *>>();
|
||||
|
||||
qmlRegisterType<DesktopBackgroundItem>("org.kde.kwin", 3, 0, "DesktopBackground");
|
||||
qmlRegisterType<WindowThumbnailItem>("org.kde.kwin", 3, 0, "WindowThumbnail");
|
||||
qmlRegisterType<DBusCall>("org.kde.kwin", 3, 0, "DBusCall");
|
||||
|
|
Loading…
Reference in a new issue