File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed
Sources/Runestone/TextView/Core/Mac Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -770,6 +770,27 @@ public extension TextView {
770770 override func selectAll( _ sender: Any ? ) {
771771 textViewController. selectedRange = NSRange ( location: 0 , length: textViewController. stringView. string. length)
772772 }
773+
774+ override func scrollPageUp( _ sender: Any ? ) {
775+ var newOffset = scrollView. contentOffset. applying ( . init( translationX: 0 , y: - frame. size. height) )
776+ if newOffset. y < 0 {
777+ newOffset. y = 0
778+ }
779+ textViewController. viewport = CGRect ( origin: newOffset, size: frame. size)
780+ textViewController. layoutIfNeeded ( )
781+ scrollView. contentOffset = newOffset
782+ }
783+
784+ override func scrollPageDown( _ sender: Any ? ) {
785+ let newOffset = scrollView. contentOffset. applying ( . init( translationX: 0 , y: frame. size. height) )
786+ var newViewPort = CGRect ( origin: newOffset, size: frame. size)
787+ if newViewPort. maxY > scrollView. contentSize. height {
788+ newViewPort = CGRect ( origin: CGPoint ( x: newOffset. x, y: scrollView. contentSize. height - frame. size. height) , size: frame. size)
789+ }
790+ textViewController. viewport = newViewPort
791+ textViewController. layoutIfNeeded ( )
792+ scrollView. contentOffset = newOffset
793+ }
773794}
774795
775796// MARK: - Window
You can’t perform that action at this time.
0 commit comments