Repo // Close all panels of the previous session.

This commit is contained in:
ShikiSuen 2023-12-20 00:01:38 +08:00
parent c5ce9199bd
commit 2a4b01c234
5 changed files with 28 additions and 3 deletions

View File

@ -24,6 +24,7 @@ private extension NSUserInterfaceLayoutOrientation {
}
public class CtlCandidateTDK: CtlCandidate, NSWindowDelegate {
@objc var observation: NSKeyValueObservation?
public var maxLinesPerPage: Int = 0
public var useCocoa: Bool = false
public var useMouseScrolling: Bool = true
@ -72,6 +73,10 @@ public class CtlCandidateTDK: CtlCandidate, NSWindowDelegate {
Self.currentWindow = panel
window?.delegate = self
currentLayout = layout
observation = Broadcaster.shared.observe(\.eventForClosingAllPanels, options: [.new]) { _, _ in
self.visible = false
}
}
@available(*, unavailable)

View File

@ -26,6 +26,8 @@ import TooltipUI
/// IMKInputController
@objc(SessionCtl) // ObjC IMK ObjC
public class SessionCtl: IMKInputController {
public weak static var current: SessionCtl?
///
public static var areWeNerfing = false
@ -219,6 +221,9 @@ public class SessionCtl: IMKInputController {
private func construct(client theClient: (IMKTextInput & NSObjectProtocol)? = nil) {
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }
//
Self.current?.hidePalettes()
Self.current = self
self.inputHandler = InputHandler(
lm: LMMgr.currentLM, uom: LMMgr.currentUOM, pref: PrefMgr.shared
)
@ -479,8 +484,12 @@ public extension SessionCtl {
///
override func hidePalettes() {
candidateUI?.visible = false
popupCompositionBuffer.hide()
tooltipInstance.hide()
Broadcaster.shared.eventForClosingAllPanels = .init()
//
//
//
// candidateUI?.visible = false
// popupCompositionBuffer.hide()
// tooltipInstance.hide()
}
}

View File

@ -13,4 +13,5 @@ import AppKit
@objcMembers public class Broadcaster: NSObject {
public static var shared = Broadcaster()
public dynamic var eventForReloadingPhraseEditor = UUID()
public dynamic var eventForClosingAllPanels = UUID()
}

View File

@ -10,6 +10,7 @@ import AppKit
import Shared
public class TooltipUI_EarlyCocoa: NSWindowController, TooltipUIProtocol {
@objc var observation: NSKeyValueObservation?
private var messageText: NSTextField
private var tooltip: String = "" {
didSet {
@ -100,6 +101,10 @@ public class TooltipUI_EarlyCocoa: NSWindowController, TooltipUIProtocol {
panel.contentView?.addSubview(messageText)
Self.currentWindow = panel
super.init(window: panel)
observation = Broadcaster.shared.observe(\.eventForClosingAllPanels, options: [.new]) { _, _ in
self.hide()
}
}
@available(*, unavailable)

View File

@ -12,6 +12,7 @@ import NSAttributedTextView
import Shared
public class TooltipUI_LateCocoa: NSWindowController, TooltipUIProtocol {
@objc var observation: NSKeyValueObservation?
private var messageText: NSAttributedTooltipTextView
private var tooltip: String = "" {
didSet {
@ -55,6 +56,10 @@ public class TooltipUI_LateCocoa: NSWindowController, TooltipUIProtocol {
panel.contentView?.addSubview(messageText)
Self.currentWindow = panel
super.init(window: panel)
observation = Broadcaster.shared.observe(\.eventForClosingAllPanels, options: [.new]) { _, _ in
self.hide()
}
}
@available(*, unavailable)