summaryrefslogtreecommitdiff
path: root/macos/Sources/Helpers/Extensions/NSWindow+Extension.swift
blob: f9ed364aadfa61ebc3e66d9a3805828970ec3065 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import AppKit

extension NSWindow {
    /// Get the CGWindowID type for the window (used for low level CoreGraphics APIs).
    var cgWindowId: CGWindowID? {
        // "If the window doesn’t have a window device, the value of this
        // property is equal to or less than 0." - Docs. In practice I've
        // found this is true if a window is not visible.
        guard windowNumber > 0 else { return nil }
        return CGWindowID(windowNumber)
    }

    /// True if this is the first window in the tab group.
    var isFirstWindowInTabGroup: Bool {
        guard let firstWindow = tabGroup?.windows.first else { return true }
        return firstWindow === self
    }
}