forked from openkylin/ukui-panel
feat(task-manager):适配wlcom下highlight window接口
This commit is contained in:
parent
91b72105df
commit
89f604bbf1
|
@ -19,3 +19,17 @@
|
|||
*/
|
||||
|
||||
#include "abstract-window-manager.h"
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusMessage>
|
||||
#include <QDBusPendingCall>
|
||||
|
||||
static const QString HIGHLIGHT_WINDOW_SERVICE = QStringLiteral("org.kde.KWin.HighlightWindow");
|
||||
static const QString HIGHLIGHT_WINDOW_PATH = QStringLiteral("/org/kde/KWin/HighlightWindow");
|
||||
static const QString &HIGHLIGHT_WINDOW_INTERFACE = HIGHLIGHT_WINDOW_SERVICE;
|
||||
|
||||
void AbstractWindowManager::activateWindowView(const QStringList &wids)
|
||||
{
|
||||
auto message = QDBusMessage::createMethodCall(HIGHLIGHT_WINDOW_SERVICE, HIGHLIGHT_WINDOW_PATH, HIGHLIGHT_WINDOW_INTERFACE, QStringLiteral("highlightWindows"));
|
||||
message << wids;
|
||||
QDBusConnection::sessionBus().asyncCall(message);
|
||||
}
|
||||
|
|
|
@ -62,6 +62,8 @@ public:
|
|||
virtual void setMinimizedGeometry(const QString& wid, QQuickItem *item) = 0;
|
||||
virtual void unsetMinimizedGeometry(const QString& wid, QQuickItem *item) = 0;
|
||||
|
||||
virtual void activateWindowView(const QStringList &wids);
|
||||
|
||||
|
||||
Q_SIGNALS:
|
||||
void currentDesktopChanged();
|
||||
|
|
|
@ -103,7 +103,7 @@ TaskManager {
|
|||
Items.Dialog {
|
||||
id: thumbnailView
|
||||
mainItem: viewContent
|
||||
type: Platform.WindowType.SystemWindow
|
||||
type: Platform.WindowType.AppletPopup
|
||||
flags: Qt.WindowDoesNotAcceptFocus | Qt.FramelessWindowHint
|
||||
|
||||
function updatePosition() {
|
||||
|
|
|
@ -253,7 +253,7 @@ MouseArea {
|
|||
activeTimer.start();
|
||||
} else {
|
||||
activeTimer.stop();
|
||||
UkuiTaskManager.TaskManager.activateWindowView("");
|
||||
UkuiTaskManager.TaskManager.activateWindowView([]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -43,9 +43,7 @@
|
|||
|
||||
static const QString QUICK_LAUNCHERS_KEY("quickLaunchers");
|
||||
|
||||
static const QString HIGHLIGHT_WINDOW_SERVICE = QStringLiteral("org.kde.KWin.HighlightWindow");
|
||||
static const QString HIGHLIGHT_WINDOW_PATH = QStringLiteral("/org/kde/KWin/HighlightWindow");
|
||||
static const QString &HIGHLIGHT_WINDOW_INTERFACE = HIGHLIGHT_WINDOW_SERVICE;
|
||||
|
||||
static const QString NOTIFICATION_SERVICE = QStringLiteral("org.freedesktop.Notifications");
|
||||
static const QString NOTIFICATION_PATH = QStringLiteral("/org/freedesktop/Notifications");
|
||||
static const QString NOTIFICATION_INTERFACE = QStringLiteral("org.ukui.NotificationServer");
|
||||
|
@ -570,9 +568,7 @@ void UkuiTaskManager::setOrder(const QModelIndex &index, int order)
|
|||
|
||||
void UkuiTaskManager::activateWindowView(const QStringList &winIds)
|
||||
{
|
||||
auto message = QDBusMessage::createMethodCall(HIGHLIGHT_WINDOW_SERVICE, HIGHLIGHT_WINDOW_PATH, HIGHLIGHT_WINDOW_INTERFACE, QStringLiteral("highlightWindows"));
|
||||
message << winIds;
|
||||
QDBusConnection::sessionBus().asyncCall(message);
|
||||
WindowManager::self()->activateWindowView(winIds);
|
||||
}
|
||||
|
||||
void UkuiTaskManager::activateWindow(const QString &winId)
|
||||
|
|
|
@ -315,3 +315,22 @@ void WaylandWindowManager::unsetMinimizedGeometry(const QString &wid, QQuickItem
|
|||
delete s;
|
||||
}
|
||||
|
||||
void WaylandWindowManager::activateWindowView(const QStringList &wids)
|
||||
{
|
||||
if(qgetenv("XDG_SESSION_DESKTOP") == "kylin-wlcom" || qgetenv("DESKTOP_SESSION") == "kylin-wlcom") {
|
||||
if(wids.isEmpty()) {
|
||||
for(auto window : m_windows) {
|
||||
if(window->isHighlight()) {
|
||||
window->unsetHightlight();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//wlcom只能高亮1个窗口
|
||||
if(m_uuidToWindow.contains(wids.first().toUtf8())) {
|
||||
return m_uuidToWindow.value(wids.first().toUtf8())->setHighlight();
|
||||
}
|
||||
}
|
||||
}
|
||||
AbstractWindowManager::activateWindowView(wids);
|
||||
}
|
||||
|
||||
|
|
|
@ -68,6 +68,8 @@ public:
|
|||
void setMinimizedGeometry(const QString& wid, QQuickItem *item) override;
|
||||
void unsetMinimizedGeometry(const QString& wid, QQuickItem *item) override;
|
||||
|
||||
void activateWindowView(const QStringList &wids) override;
|
||||
|
||||
private:
|
||||
void addWindow(UkuiWindow *window);
|
||||
void desktopCreated(const QString &id, quint32 position);
|
||||
|
|
|
@ -197,3 +197,8 @@ void WindowManager::setMinimizedGeometry(const QStringList &widList, QQuickItem
|
|||
WindowManagerPrivate::interface()->setMinimizedGeometry(wid, item);
|
||||
}
|
||||
}
|
||||
|
||||
void WindowManager::activateWindowView(const QStringList &wids)
|
||||
{
|
||||
WindowManagerPrivate::interface()->activateWindowView(wids);
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ public:
|
|||
Q_INVOKABLE void setMinimizedGeometry(const QString& wid, QQuickItem *item);
|
||||
Q_INVOKABLE void setMinimizedGeometry(const QStringList& winds, QQuickItem *item);
|
||||
Q_INVOKABLE void unsetMinimizedGeometry(const QString& wid, QQuickItem *item);
|
||||
Q_INVOKABLE void activateWindowView(const QStringList &wids);
|
||||
|
||||
Q_SIGNALS:
|
||||
void currentDesktopChanged();
|
||||
|
|
Loading…
Reference in New Issue