1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-03 20:32:07 -04:00

widgets: fix moddedAppID consistency

This commit is contained in:
bbedward
2026-02-24 11:11:38 -05:00
parent 5052e71c31
commit fb66effa51
3 changed files with 37 additions and 40 deletions

View File

@@ -584,8 +584,7 @@ BasePill {
property string tooltipText: {
root._desktopEntriesUpdateTrigger;
const moddedId = Paths.moddedAppId(appId);
const desktopEntry = moddedId ? DesktopEntries.heuristicLookup(moddedId) : null;
const desktopEntry = appId ? DesktopEntries.heuristicLookup(appId) : null;
const appName = appId ? Paths.getAppName(appId, desktopEntry) : "Unknown";
if (modelData.type === "grouped" && windowCount > 1) {
@@ -690,9 +689,8 @@ BasePill {
if (!appItem.appId)
return "";
if (modelData.isCoreApp)
return ""; // Explicitly skip if core app to avoid flickering or wrong look ups
const moddedId = Paths.moddedAppId(appItem.appId);
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
return "";
const desktopEntry = DesktopEntries.heuristicLookup(appItem.appId);
return Paths.getAppIcon(appItem.appId, desktopEntry);
}
smooth: true
@@ -749,8 +747,7 @@ BasePill {
root._desktopEntriesUpdateTrigger;
if (!appItem.appId)
return "?";
const moddedId = Paths.moddedAppId(appItem.appId);
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
const desktopEntry = DesktopEntries.heuristicLookup(appItem.appId);
const appName = Paths.getAppName(appItem.appId, desktopEntry);
return appName.charAt(0).toUpperCase();
}

View File

@@ -241,14 +241,17 @@ BasePill {
property var toplevelData: isGrouped ? (modelData.windows.length > 0 ? modelData.windows[0].toplevel : null) : modelData
property bool isFocused: isGrouped ? (root.focusedAppId === appId) : (toplevelData ? toplevelData.activated : false)
property string appId: isGrouped ? modelData.appId : (modelData.appId || "")
readonly property string effectiveAppId: {
root._appIdSubstitutionsTrigger;
return Paths.moddedAppId(appId);
}
property string windowTitle: toplevelData ? (toplevelData.title || "(Unnamed)") : "(Unnamed)"
property var toplevelObject: toplevelData
property int windowCount: isGrouped ? modelData.windows.length : 1
property string tooltipText: {
root._desktopEntriesUpdateTrigger;
const moddedId = Paths.moddedAppId(appId);
const desktopEntry = moddedId ? DesktopEntries.heuristicLookup(moddedId) : null;
const appName = appId ? Paths.getAppName(appId, desktopEntry) : "Unknown";
const desktopEntry = effectiveAppId ? DesktopEntries.heuristicLookup(effectiveAppId) : null;
const appName = effectiveAppId ? Paths.getAppName(effectiveAppId, desktopEntry) : "Unknown";
if (isGrouped && windowCount > 1) {
return appName + " (" + windowCount + " windows)";
@@ -284,11 +287,10 @@ BasePill {
source: {
root._desktopEntriesUpdateTrigger;
root._appIdSubstitutionsTrigger;
if (!appId)
if (!effectiveAppId)
return "";
const moddedId = Paths.moddedAppId(appId);
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
return Paths.getAppIcon(appId, desktopEntry);
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
return Paths.getAppIcon(effectiveAppId, desktopEntry);
}
smooth: true
mipmap: true
@@ -311,20 +313,18 @@ BasePill {
size: Theme.barIconSize(root.barThickness, undefined, root.barConfig?.maximizeWidgetIcons, root.barConfig?.iconScale)
name: "sports_esports"
color: Theme.widgetTextColor
visible: !iconImg.visible && Paths.isSteamApp(appId)
visible: !iconImg.visible && Paths.isSteamApp(effectiveAppId)
}
Text {
anchors.centerIn: parent
visible: !iconImg.visible && !Paths.isSteamApp(appId)
visible: !iconImg.visible && !Paths.isSteamApp(effectiveAppId)
text: {
root._desktopEntriesUpdateTrigger;
if (!appId)
if (!effectiveAppId)
return "?";
const moddedId = Paths.moddedAppId(appId);
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
const appName = Paths.getAppName(appId, desktopEntry);
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
const appName = Paths.getAppName(effectiveAppId, desktopEntry);
return appName.charAt(0).toUpperCase();
}
font.pixelSize: 10
@@ -496,14 +496,17 @@ BasePill {
property var toplevelData: isGrouped ? (modelData.windows.length > 0 ? modelData.windows[0].toplevel : null) : modelData
property bool isFocused: isGrouped ? (root.focusedAppId === appId) : (toplevelData ? toplevelData.activated : false)
property string appId: isGrouped ? modelData.appId : (modelData.appId || "")
readonly property string effectiveAppId: {
root._appIdSubstitutionsTrigger;
return Paths.moddedAppId(appId);
}
property string windowTitle: toplevelData ? (toplevelData.title || "(Unnamed)") : "(Unnamed)"
property var toplevelObject: toplevelData
property int windowCount: isGrouped ? modelData.windows.length : 1
property string tooltipText: {
root._desktopEntriesUpdateTrigger;
const moddedId = Paths.moddedAppId(appId);
const desktopEntry = moddedId ? DesktopEntries.heuristicLookup(moddedId) : null;
const appName = appId ? Paths.getAppName(appId, desktopEntry) : "Unknown";
const desktopEntry = effectiveAppId ? DesktopEntries.heuristicLookup(effectiveAppId) : null;
const appName = effectiveAppId ? Paths.getAppName(effectiveAppId, desktopEntry) : "Unknown";
if (isGrouped && windowCount > 1) {
return appName + " (" + windowCount + " windows)";
@@ -538,11 +541,10 @@ BasePill {
source: {
root._desktopEntriesUpdateTrigger;
root._appIdSubstitutionsTrigger;
if (!appId)
if (!effectiveAppId)
return "";
const moddedId = Paths.moddedAppId(appId);
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
return Paths.getAppIcon(appId, desktopEntry);
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
return Paths.getAppIcon(effectiveAppId, desktopEntry);
}
smooth: true
mipmap: true
@@ -565,20 +567,18 @@ BasePill {
size: Theme.barIconSize(root.barThickness, undefined, root.barConfig?.maximizeWidgetIcons, root.barConfig?.iconScale)
name: "sports_esports"
color: Theme.widgetTextColor
visible: !iconImg.visible && Paths.isSteamApp(appId)
visible: !iconImg.visible && Paths.isSteamApp(effectiveAppId)
}
Text {
anchors.centerIn: parent
visible: !iconImg.visible && !Paths.isSteamApp(appId)
visible: !iconImg.visible && !Paths.isSteamApp(effectiveAppId)
text: {
root._desktopEntriesUpdateTrigger;
if (!appId)
if (!effectiveAppId)
return "?";
const moddedId = Paths.moddedAppId(appId);
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
const appName = Paths.getAppName(appId, desktopEntry);
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
const appName = Paths.getAppName(effectiveAppId, desktopEntry);
return appName.charAt(0).toUpperCase();
}
font.pixelSize: 10

View File

@@ -282,15 +282,15 @@ Item {
}
const keyBase = (w.app_id || w.appId || w.class || w.windowClass || "unknown");
const key = isActiveWs || !SettingsData.groupWorkspaceApps ? `${keyBase}_${i}` : keyBase;
const moddedId = Paths.moddedAppId(keyBase);
const key = isActiveWs || !SettingsData.groupWorkspaceApps ? `${moddedId}_${i}` : moddedId;
if (!byApp[key]) {
const isQuickshell = keyBase === "org.quickshell";
const isSteamApp = Paths.isSteamApp(keyBase);
const moddedId = Paths.moddedAppId(keyBase);
const isSteamApp = Paths.isSteamApp(moddedId);
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
const icon = Paths.getAppIcon(keyBase, desktopEntry);
const appName = Paths.getAppName(keyBase, desktopEntry);
const icon = Paths.getAppIcon(moddedId, desktopEntry);
const appName = Paths.getAppName(moddedId, desktopEntry);
byApp[key] = {
"type": "icon",
"icon": icon,