diff --git a/dev/TabView/TabView.cpp b/dev/TabView/TabView.cpp index a72cb85eff..7407350f40 100755 --- a/dev/TabView/TabView.cpp +++ b/dev/TabView/TabView.cpp @@ -691,31 +691,11 @@ void TabView::OnItemsPresenterSizeChanged(const winrt::IInspectable& sender, con // Presenter size didn't change because of item being removed, so update manually UpdateScrollViewerDecreaseAndIncreaseButtonsViewState(); UpdateTabWidths(); - // Make sure that the selected tab is fully in view and not cut off - BringSelectedTabIntoView(); - } -} - -void TabView::BringSelectedTabIntoView() -{ - if(SelectedItem()) - { - auto tvi = SelectedItem().try_as(); - if (!tvi) - { - tvi = ContainerFromItem(SelectedItem()).try_as(); - } - winrt::get_self(tvi)->StartBringTabIntoView(); } } void TabView::OnItemsChanged(winrt::IInspectable const& item) { - if(m_isDragging) - { - return; - } - if (auto args = item.as()) { m_tabItemsChangedEventSource(*this, args); @@ -786,6 +766,8 @@ void TabView::OnItemsChanged(winrt::IInspectable const& item) void TabView::OnListViewSelectionChanged(const winrt::IInspectable& sender, const winrt::SelectionChangedEventArgs& args) { + + if (auto&& listView = m_listView.get()) { SelectedIndex(listView.SelectedIndex()); @@ -854,13 +836,6 @@ void TabView::OnListViewDragItemsCompleted(const winrt::IInspectable& sender, co { m_isDragging = false; - // Selection change was disabled during drag, update SelectedIndex now - if (auto&& listView = m_listView.get()) - { - SelectedIndex(listView.SelectedIndex()); - SelectedItem(listView.SelectedItem()); - } - auto item = args.Items().GetAt(0); auto tab = FindTabViewItemFromDragItem(item); auto myArgs = winrt::make_self(args, item, tab); diff --git a/dev/TabView/TabView.h b/dev/TabView/TabView.h index 5130e23ac0..adb0092314 100755 --- a/dev/TabView/TabView.h +++ b/dev/TabView/TabView.h @@ -148,7 +148,6 @@ class TabView : bool RequestCloseCurrentTab(); bool SelectNextTab(int increment); - void BringSelectedTabIntoView(); void UpdateSelectedItem(); void UpdateSelectedIndex(); diff --git a/dev/TabView/TabViewItem.cpp b/dev/TabView/TabViewItem.cpp index f308225378..b8685e8d2a 100644 --- a/dev/TabView/TabViewItem.cpp +++ b/dev/TabView/TabViewItem.cpp @@ -11,7 +11,6 @@ #include "SharedHelpers.h" static constexpr auto c_overlayCornerRadiusKey = L"OverlayCornerRadius"sv; -static constexpr int c_targetRectWidthIncrement = 2; TabViewItem::TabViewItem() { @@ -152,7 +151,7 @@ void TabViewItem::OnIsSelectedPropertyChanged(const winrt::DependencyObject& sen if (IsSelected()) { SetValue(winrt::Canvas::ZIndexProperty(), box_value(20)); - StartBringTabIntoView(); + StartBringIntoView(); } else { @@ -502,11 +501,3 @@ void TabViewItem::OnIconSourceChanged() winrt::VisualStateManager::GoToState(*this, L"NoIcon"sv, false); } } - -void TabViewItem::StartBringTabIntoView() -{ - // we need to set the TargetRect to be slightly wider than the TabViewItem size in order to avoid cutting off the end of the Tab - winrt::BringIntoViewOptions options; - options.TargetRect(winrt::Rect{ 0, 0, DesiredSize().Width + c_targetRectWidthIncrement, DesiredSize().Height}); - StartBringIntoView(options); -} diff --git a/dev/TabView/TabViewItem.h b/dev/TabView/TabViewItem.h index 98ef944c01..cb21e9d942 100755 --- a/dev/TabView/TabViewItem.h +++ b/dev/TabView/TabViewItem.h @@ -44,8 +44,6 @@ class TabViewItem : winrt::TabView GetParentTabView(); void SetParentTabView(winrt::TabView const& tabView); - void StartBringTabIntoView(); - private: tracker_ref m_closeButton{ this }; tracker_ref m_toolTip{ this };