Skip to content

Commit

Permalink
Fix edit view tabbing (#141)
Browse files Browse the repository at this point in the history
  • Loading branch information
SergeyKuryanov authored and sindresorhus committed Nov 6, 2019
1 parent f68bd01 commit 04dcbd9
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
24 changes: 16 additions & 8 deletions Gifski/EditVideoViewController.swift
Expand Up @@ -94,16 +94,10 @@ final class EditVideoViewController: NSViewController {
override func viewDidAppear() {
super.viewDidAppear()

view.window?.makeFirstResponder(self)

dimensionsTypeDropdown.nextKeyView = frameRateSlider
widthTextField.nextKeyView = heightTextField
heightTextField.nextKeyView = dimensionsTypeDropdown
qualitySlider.nextKeyView = loopCheckbox
loopCheckbox.nextKeyView = cancelButton
view.window?.makeFirstResponder(playerViewController.playerView)
setUpTabOrder()

tooltip.show(from: widthTextField, preferredEdge: .maxX)
predefinedSizesDropdown.focus()
}

private func setUpDimensions() {
Expand Down Expand Up @@ -303,6 +297,20 @@ final class EditVideoViewController: NSViewController {
add(childController: playerViewController, to: playerViewWrapper)
}

private func setUpTabOrder() {
if let button = view.window?.firstResponder as? NSButton {
button.nextKeyView = predefinedSizesDropdown
}

predefinedSizesDropdown.nextKeyView = widthTextField
widthTextField.nextKeyView = heightTextField
heightTextField.nextKeyView = dimensionsTypeDropdown
dimensionsTypeDropdown.nextKeyView = frameRateSlider
frameRateSlider.nextKeyView = qualitySlider
qualitySlider.nextKeyView = loopCheckbox
loopCheckbox.nextKeyView = cancelButton
}

private func updateTextFieldsMinMax() {
let widthMinMax = resizableDimensions.widthMinMax
let heightMinMax = resizableDimensions.heightMinMax
Expand Down
1 change: 1 addition & 0 deletions Gifski/MenuPopUpButton.swift
Expand Up @@ -2,6 +2,7 @@ import AppKit

final class MenuPopUpButton: NSPopUpButton, NSMenuDelegate {
override var acceptsFirstResponder: Bool { true }
override var canBecomeKeyView: Bool { true }

/// `selectedIndex` is nil when the user didn't select any index this time (probably quit).
var onMenuDidClose: ((_ selectedIndex: Int?) -> Void)?
Expand Down
3 changes: 3 additions & 0 deletions Gifski/TrimmingAVPlayerViewController.swift
Expand Up @@ -137,4 +137,7 @@ final class TrimmingAVPlayerView: AVPlayerView {
let overlayView = CheckerboardView(frame: frame, clearRect: videoBounds)
contentOverlayView?.addSubview(overlayView)
}

/// Prevent user from dismissing trimming view
override func cancelOperation(_ sender: Any?) { }
}

0 comments on commit 04dcbd9

Please sign in to comment.