Merge pull request #7117 from vector-im/mauroromito/7116_fix_rich_text_dismiss_when_dragging_fullscreen

Fix Rich text Editor Fullscreen dragging through dismiss
This commit is contained in:
Velin92
2022-11-29 15:09:23 +01:00
committed by GitHub
3 changed files with 21 additions and 14 deletions
+2
View File
@@ -120,6 +120,8 @@ extern NSTimeInterval const kResizeComposerAnimationDuration;
@property (strong, nonatomic, nullable) UIView* maximisedToolbarDimmingView;
@property (nonatomic) CGFloat wysiwygTranslation;
/**
Retrieve the live data source in cases where the timeline is not live.
+18 -14
View File
@@ -169,11 +169,12 @@ extension RoomViewController {
return
}
var originalRect = roomInputToolbarContainer.convert(roomInputToolbarContainer.frame, to: view)
var textView: UITextView?
var optionalTextView: UITextView?
if wysiwygInputToolbar.isFocused {
textView = UITextView()
self.view.window?.addSubview(textView!)
textView?.becomeFirstResponder()
let textView = UITextView()
optionalTextView = textView
self.view.window?.addSubview(textView)
optionalTextView?.becomeFirstResponder()
originalRect = wysiwygInputToolbar.convert(wysiwygInputToolbar.frame, to: view)
}
wysiwygInputToolbar.showKeyboard()
@@ -203,14 +204,15 @@ extension RoomViewController {
}
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(didPanRoomToolbarContainer(_ :)))
roomInputToolbarContainer.addGestureRecognizer(panGesture)
textView?.removeFromSuperview()
optionalTextView?.removeFromSuperview()
} else {
let originalRect = wysiwygInputToolbar.convert(wysiwygInputToolbar.frame, to: view)
var textView: UITextView?
var optionalTextView: UITextView?
if wysiwygInputToolbar.isFocused {
textView = UITextView()
self.view.window?.addSubview(textView!)
textView?.becomeFirstResponder()
let textView = UITextView()
optionalTextView = textView
self.view.window?.addSubview(textView)
optionalTextView?.becomeFirstResponder()
wysiwygInputToolbar.showKeyboard()
}
self.roomInputToolbarContainer.removeFromSuperview()
@@ -224,7 +226,7 @@ extension RoomViewController {
self.view.layoutIfNeeded()
}
roomInputToolbarContainer.gestureRecognizers?.removeAll()
textView?.removeFromSuperview()
optionalTextView?.removeFromSuperview()
}
}
@@ -249,23 +251,25 @@ private extension RoomViewController {
guard let wysiwygInputToolbar = wysiwygInputToolbar else { return }
switch sender.state {
case .began:
break
wysiwygTranslation = wysiwygInputToolbar.maxExpandedHeight
case .changed:
let translation = sender.translation(in: view)
let translation = sender.translation(in: view.window)
let translatedValue = wysiwygInputToolbar.maxExpandedHeight - translation.y
wysiwygTranslation = translatedValue
guard translatedValue <= wysiwygInputToolbar.maxExpandedHeight, translatedValue >= wysiwygInputToolbar.compressedHeight else { return }
wysiwygInputToolbar.idealHeight = translatedValue
case .ended:
if wysiwygInputToolbar.idealHeight <= wysiwygInputToolbar.maxCompressedHeight {
if wysiwygTranslation <= wysiwygInputToolbar.maxCompressedHeight {
wysiwygInputToolbar.minimise()
} else {
wysiwygTranslation = wysiwygInputToolbar.maxExpandedHeight
wysiwygInputToolbar.idealHeight = wysiwygInputToolbar.maxExpandedHeight
}
case .cancelled:
wysiwygTranslation = wysiwygInputToolbar.maxExpandedHeight
wysiwygInputToolbar.idealHeight = wysiwygInputToolbar.maxExpandedHeight
default:
break
}
}
}
+1
View File
@@ -0,0 +1 @@
Rich Text Editor: Fixed a bug that prevented the drag gesture to dismiss the fullscreen mode when there is a lot of text.