|
|
@@ -165,6 +165,8 @@ enum PrintContactsService {
|
|
|
final class PrintContactsOverlayView: NSView, AppearanceRefreshable {
|
|
|
var onDismiss: (() -> Void)?
|
|
|
|
|
|
+ override var mouseDownCanMoveWindow: Bool { false }
|
|
|
+
|
|
|
private let backButton = PrintContactsToolbarButton(symbolName: "chevron.left", accessibilityLabel: "Back")
|
|
|
private let sortButton = PrintContactsSortButton()
|
|
|
private let searchContainer = NSView()
|
|
|
@@ -229,22 +231,27 @@ final class PrintContactsOverlayView: NSView, AppearanceRefreshable {
|
|
|
}
|
|
|
|
|
|
func present(in parent: NSView) {
|
|
|
- guard superview == nil else { return }
|
|
|
- parent.addSubview(self)
|
|
|
- NSLayoutConstraint.activate([
|
|
|
- leadingAnchor.constraint(equalTo: parent.leadingAnchor),
|
|
|
- trailingAnchor.constraint(equalTo: parent.trailingAnchor),
|
|
|
- topAnchor.constraint(equalTo: parent.topAnchor),
|
|
|
- bottomAnchor.constraint(equalTo: parent.bottomAnchor),
|
|
|
- ])
|
|
|
- alphaValue = 0
|
|
|
- NSAnimationContext.runAnimationGroup { context in
|
|
|
- context.duration = 0.2
|
|
|
- animator().alphaValue = 1
|
|
|
+ if superview == nil {
|
|
|
+ parent.addSubview(self)
|
|
|
+ NSLayoutConstraint.activate([
|
|
|
+ leadingAnchor.constraint(equalTo: parent.leadingAnchor),
|
|
|
+ trailingAnchor.constraint(equalTo: parent.trailingAnchor),
|
|
|
+ topAnchor.constraint(equalTo: parent.topAnchor),
|
|
|
+ bottomAnchor.constraint(equalTo: parent.bottomAnchor),
|
|
|
+ ])
|
|
|
+ alphaValue = 1
|
|
|
+ } else {
|
|
|
+ parent.addSubview(self, positioned: .above, relativeTo: nil)
|
|
|
}
|
|
|
window?.makeFirstResponder(searchField)
|
|
|
}
|
|
|
|
|
|
+ override func hitTest(_ point: NSPoint) -> NSView? {
|
|
|
+ let hit = super.hitTest(point)
|
|
|
+ if hit != nil { return hit }
|
|
|
+ return bounds.contains(point) ? self : nil
|
|
|
+ }
|
|
|
+
|
|
|
func dismiss(animated: Bool = true) {
|
|
|
let remove = { [weak self] in
|
|
|
self?.removeFromSuperview()
|