diff --git a/src/logic/Applications.swift b/src/logic/Applications.swift index 80130dab..41f88abf 100644 --- a/src/logic/Applications.swift +++ b/src/logic/Applications.swift @@ -95,10 +95,9 @@ class Applications { let bundleId = app.runningApplication.bundleIdentifier, let url = NSWorkspace.shared.urlForApplication(withBundleIdentifier: bundleId), let matchingItem = (items.first { $0.0 == url }), - let label = matchingItem.1, - let labelInt = Int(label) { + let label = matchingItem.1 { app.dockLabel = label - view.updateDockLabelIcon(labelInt) + view.updateDockLabelIcon(label) } else { app.dockLabel = nil assignIfDifferent(&view.dockLabelIcon.isHidden, true) diff --git a/src/logic/Window.swift b/src/logic/Window.swift index fd1b84cb..42340e42 100644 --- a/src/logic/Window.swift +++ b/src/logic/Window.swift @@ -10,7 +10,7 @@ class Window { var shouldShowTheUser = true var isTabbed: Bool = false var isHidden: Bool { get { application.isHidden } } - var dockLabel: Int? { get { application.dockLabel.flatMap { Int($0) } } } + var dockLabel: String? { get { application.dockLabel } } var isFullscreen = false var isMinimized = false var isOnAllSpaces = false diff --git a/src/ui/main-window/ThumbnailView.swift b/src/ui/main-window/ThumbnailView.swift index bdcb2441..3d2a4848 100644 --- a/src/ui/main-window/ThumbnailView.swift +++ b/src/ui/main-window/ThumbnailView.swift @@ -198,14 +198,15 @@ class ThumbnailView: NSStackView { } @discardableResult - func updateDockLabelIcon(_ dockLabel: Int?) -> Bool { + func updateDockLabelIcon(_ dockLabel: String?) -> Bool { assignIfDifferent(&dockLabelIcon.isHidden, dockLabel == nil || Preferences.hideAppBadges || Preferences.iconSize == 0) if !dockLabelIcon.isHidden, let dockLabel = dockLabel { let view = dockLabelIcon.subviews[1] as! ThumbnailFontIconView - if dockLabel > 30 { + let dockLabelInt = Int(dockLabel) + if dockLabelInt == nil || dockLabelInt! > 30 { view.setFilledStar() } else { - view.setNumber(dockLabel, true) + view.setNumber(dockLabelInt!, true) } dockLabelIcon.setFrameOrigin(NSPoint( x: appIcon.frame.maxX - (dockLabelIcon.fittingSize.width / 2) - (appIcon.frame.width / 7), @@ -216,14 +217,17 @@ class ThumbnailView: NSStackView { return false } - func getAccessibilityHelp(_ appName: String?, _ dockLabel: Int?) -> String { + func getAccessibilityHelp(_ appName: String?, _ dockLabel: String?) -> String { [appName, dockLabel.map { getAccessibilityTextForBadge($0) }] .compactMap { $0 } .joined(separator: " - ") } - func getAccessibilityTextForBadge(_ dockLabel: Int) -> String { - "Red badge with number \(dockLabel)" + func getAccessibilityTextForBadge(_ dockLabel: String) -> String { + if let dockLabelInt = Int(dockLabel) { + return "Red badge with number \(dockLabelInt)" + } + return "Red badge" } private func observeDragAndDrop() {