mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
iPad trackpad and key shortcuts improvements
This commit is contained in:
@@ -21,6 +21,9 @@ public protocol ContextControllerActionsStackItemNode: ASDisplayNode {
|
||||
|
||||
func highlightGestureMoved(location: CGPoint)
|
||||
func highlightGestureFinished(performAction: Bool)
|
||||
|
||||
func decreaseHighlightedIndex()
|
||||
func increaseHighlightedIndex()
|
||||
}
|
||||
|
||||
public protocol ContextControllerActionsStackItem: AnyObject {
|
||||
@@ -585,6 +588,34 @@ final class ContextControllerActionsListStackItem: ContextControllerActionsStack
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func decreaseHighlightedIndex() {
|
||||
let previousHighlightedItemNode: Item? = self.highlightedItemNode
|
||||
if let highlightedItemNode = self.highlightedItemNode, let index = self.itemNodes.firstIndex(where: { $0 === highlightedItemNode }) {
|
||||
self.highlightedItemNode = self.itemNodes[max(0, index - 1)]
|
||||
} else {
|
||||
self.highlightedItemNode = self.itemNodes.first
|
||||
}
|
||||
|
||||
if previousHighlightedItemNode !== self.highlightedItemNode {
|
||||
previousHighlightedItemNode?.node.updateIsHighlighted(isHighlighted: false)
|
||||
self.highlightedItemNode?.node.updateIsHighlighted(isHighlighted: true)
|
||||
}
|
||||
}
|
||||
|
||||
func increaseHighlightedIndex() {
|
||||
let previousHighlightedItemNode: Item? = self.highlightedItemNode
|
||||
if let highlightedItemNode = self.highlightedItemNode, let index = self.itemNodes.firstIndex(where: { $0 === highlightedItemNode }) {
|
||||
self.highlightedItemNode = self.itemNodes[min(self.itemNodes.count - 1, index + 1)]
|
||||
} else {
|
||||
self.highlightedItemNode = self.itemNodes.first
|
||||
}
|
||||
|
||||
if previousHighlightedItemNode !== self.highlightedItemNode {
|
||||
previousHighlightedItemNode?.node.updateIsHighlighted(isHighlighted: false)
|
||||
self.highlightedItemNode?.node.updateIsHighlighted(isHighlighted: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private let items: [ContextMenuItem]
|
||||
@@ -663,6 +694,12 @@ final class ContextControllerActionsCustomStackItem: ContextControllerActionsSta
|
||||
|
||||
func highlightGestureFinished(performAction: Bool) {
|
||||
}
|
||||
|
||||
func decreaseHighlightedIndex() {
|
||||
}
|
||||
|
||||
func increaseHighlightedIndex() {
|
||||
}
|
||||
}
|
||||
|
||||
private let content: ContextControllerItemsContent
|
||||
@@ -925,6 +962,14 @@ final class ContextControllerActionsStackNode: ASDisplayNode {
|
||||
}
|
||||
self.node.highlightGestureFinished(performAction: performAction)
|
||||
}
|
||||
|
||||
func decreaseHighlightedIndex() {
|
||||
self.node.decreaseHighlightedIndex()
|
||||
}
|
||||
|
||||
func increaseHighlightedIndex() {
|
||||
self.node.increaseHighlightedIndex()
|
||||
}
|
||||
}
|
||||
|
||||
private let getController: () -> ContextControllerProtocol?
|
||||
@@ -1229,6 +1274,18 @@ final class ContextControllerActionsStackNode: ASDisplayNode {
|
||||
}
|
||||
}
|
||||
|
||||
func decreaseHighlightedIndex() {
|
||||
if let topItemContainer = self.itemContainers.last {
|
||||
topItemContainer.decreaseHighlightedIndex()
|
||||
}
|
||||
}
|
||||
|
||||
func increaseHighlightedIndex() {
|
||||
if let topItemContainer = self.itemContainers.last {
|
||||
topItemContainer.increaseHighlightedIndex()
|
||||
}
|
||||
}
|
||||
|
||||
func updatePanSelection(isEnabled: Bool) {
|
||||
if let selectionPanGesture = self.selectionPanGesture {
|
||||
selectionPanGesture.isEnabled = isEnabled
|
||||
|
||||
Reference in New Issue
Block a user