TaskbarGrouped: BugFix + simplifications

- fixed workspace switching, when workspace is empty.
- moved some logic to the compositor service
- removed unecessary Qt.createQmlObject
This commit is contained in:
ItsLemmy
2025-10-20 20:14:24 -04:00
parent 6c195be180
commit ae8a309c54
2 changed files with 16 additions and 27 deletions
+5 -27
View File
@@ -35,17 +35,6 @@ Item {
readonly property bool hideUnoccupied: (widgetSettings.hideUnoccupied !== undefined) ? widgetSettings.hideUnoccupied : false
property ListModel localWorkspaces: ListModel {}
function getWindowsForWorkspace(workspaceId) {
var windowsInWs = []
for (var i = 0; i < CompositorService.windows.count; i++) {
var window = CompositorService.windows.get(i)
if (window.workspaceId === workspaceId) {
windowsInWs.push(window)
}
}
return windowsInWs
}
function refreshWorkspaces() {
localWorkspaces.clear()
if (screen !== null) {
@@ -56,21 +45,10 @@ Item {
continue
}
var windowsInWs = getWindowsForWorkspace(ws.id)
var windowsModel = Qt.createQmlObject('import QtQuick 2.0; ListModel {}', root)
for (var j = 0; j < windowsInWs.length; j++) {
windowsModel.append(windowsInWs[j])
}
localWorkspaces.append({
"id": ws.id,
"name": ws.name,
"output": ws.output,
"isFocused": ws.isFocused,
"isOccupied": ws.isOccupied,
"isActive": ws.isActive,
"isUrgent": ws.isUrgent,
"windows": windowsModel
})
// Copy all properties from ws and add windows
var workspaceData = Object.assign({}, ws)
workspaceData.windows = CompositorService.getWindowsForWorkspace(ws.id)
localWorkspaces.append(workspaceData)
}
}
}
@@ -253,4 +231,4 @@ Item {
delegate: workspaceRepeaterDelegate
}
}
}
}
+11
View File
@@ -256,6 +256,17 @@ Singleton {
return ""
}
function getWindowsForWorkspace(workspaceId) {
var windowsInWs = []
for (var i = 0; i < windows.count; i++) {
var window = windows.get(i)
if (window.workspaceId === workspaceId) {
windowsInWs.push(window)
}
}
return windowsInWs
}
// Generic workspace switching
function switchToWorkspace(workspace) {
if (backend && backend.switchToWorkspace) {