Skip to content

Commit 6025ab3

Browse files
authored
Fix: Fixed issue where refocusing Details View would sometimes scroll (#14666)
1 parent 797b7ce commit 6025ab3

File tree

1 file changed

+0
-39
lines changed

1 file changed

+0
-39
lines changed

src/Files.App/Data/Behaviors/StickyHeaderBehavior.cs

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,6 @@ private bool AssignAnimation()
157157
headerElement.SizeChanged -= ScrollHeader_SizeChanged;
158158
headerElement.SizeChanged += ScrollHeader_SizeChanged;
159159

160-
_scrollViewer.GotFocus -= ScrollViewer_GotFocus;
161-
_scrollViewer.GotFocus += ScrollViewer_GotFocus;
162-
163160
var compositor = _scrollProperties.Compositor;
164161

165162
if (_animationProperties is null)
@@ -202,9 +199,6 @@ private void RemoveAnimation()
202199
if (HeaderElement is FrameworkElement element)
203200
element.SizeChanged -= ScrollHeader_SizeChanged;
204201

205-
if (_scrollViewer is not null)
206-
_scrollViewer.GotFocus -= ScrollViewer_GotFocus;
207-
208202
StopAnimation();
209203
}
210204

@@ -231,38 +225,5 @@ private void ScrollHeader_SizeChanged(object sender, SizeChangedEventArgs e)
231225
{
232226
AssignAnimation();
233227
}
234-
235-
private void ScrollViewer_GotFocus(object sender, RoutedEventArgs e)
236-
{
237-
var scroller = (ScrollViewer)sender;
238-
239-
object focusedElement;
240-
241-
if (IsXamlRootAvailable && scroller.XamlRoot is not null)
242-
{
243-
focusedElement = FocusManager.GetFocusedElement(scroller.XamlRoot);
244-
}
245-
else
246-
{
247-
focusedElement = FocusManager.GetFocusedElement();
248-
}
249-
250-
// To prevent Popups (Flyouts...) from triggering the autoscroll, we check if the focused element has a valid parent.
251-
// Popups have no parents, whereas a normal Item would have the ListView as a parent.
252-
if (focusedElement is UIElement element && VisualTreeHelper.GetParent(element) is not null)
253-
{
254-
// NOTE: Ignore if element is child of header
255-
if (!element.FindAscendants().Any(x => x == HeaderElement))
256-
{
257-
FrameworkElement header = (FrameworkElement)HeaderElement;
258-
259-
var point = element.TransformToVisual(scroller).TransformPoint(new Point(0, 0));
260-
261-
// NOTE: Do not change scroller horizontal offset
262-
if (point.Y < header.ActualHeight)
263-
scroller.ChangeView(scroller.HorizontalOffset, scroller.VerticalOffset - (header.ActualHeight - point.Y), 1, false);
264-
}
265-
}
266-
}
267228
}
268229
}

0 commit comments

Comments
 (0)