diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift index fa0b9a97..eed996f0 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift @@ -339,25 +339,29 @@ private extension VwrCandidateTDKCocoa { action: #selector(menuActionOfBoosting(_:)), keyEquivalent: "" ) + boostMenuItem.target = self + newMenu.addItem(boostMenuItem) let nerfMenuItem = NSMenuItem( title: "↓ \(cellData.displayedText)", action: #selector(menuActionOfNerfing(_:)), keyEquivalent: "" ) - - let filterMenuItem = NSMenuItem( - title: "✖︎ \(cellData.displayedText)", - action: #selector(menuActionOfFiltering(_:)), - keyEquivalent: "" - ) - - boostMenuItem.target = self nerfMenuItem.target = self - filterMenuItem.target = self - newMenu.addItem(boostMenuItem) newMenu.addItem(nerfMenuItem) - newMenu.addItem(filterMenuItem) + + if let dataAll = (target as? VwrCandidateTDKCocoa)?.thePool.candidateDataAll, + dataAll.count > cellData.index, dataAll[cellData.index].spanLength > 1 + { + let filterMenuItem = NSMenuItem( + title: "✖︎ \(cellData.displayedText)", + action: #selector(menuActionOfFiltering(_:)), + keyEquivalent: "" + ) + filterMenuItem.target = self + newMenu.addItem(filterMenuItem) + } + theMenu = newMenu } diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift index b69953d3..15c14ded 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift @@ -168,10 +168,14 @@ extension VwrCandidateTDK { } label: { Text("↓ " + cell.displayedText) } - Button { - didRightClickCandidateAt(cell.index, action: .toFilter) - } label: { - Text("✖︎ " + cell.displayedText) + if thePool.candidateDataAll.count > cell.index, + thePool.candidateDataAll[cell.index].spanLength > 1 + { + Button { + didRightClickCandidateAt(cell.index, action: .toFilter) + } label: { + Text("✖︎ " + cell.displayedText) + } } } }