From d934b936f0fd33f79278ed02bb997dc625d9448d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20La=C5=A1t=C5=AFvka?= Date: Fri, 29 Nov 2024 20:55:34 +0100 Subject: [PATCH 01/17] Fix: Init --- src/Files.App/UserControls/TabBar/TabBar.xaml | 5 +++-- .../UserControls/TabBar/TabBar.xaml.cs | 21 ++++++++++++++----- src/Files.App/Views/MainPage.xaml.cs | 12 +++++++++-- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml b/src/Files.App/UserControls/TabBar/TabBar.xaml index 33f8fdc41b03..cca024d4aa3c 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml @@ -228,7 +228,7 @@ - + @@ -260,7 +260,8 @@ Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" - Fill="Transparent" /> + Fill="Transparent" + Loaded="DragAreaRectangle_Loaded" /> diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 9ce963a44fff..59b0d813a213 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -28,6 +28,8 @@ public sealed partial class TabBar : BaseTabBar, INotifyPropertyChanged private bool _lockDropOperation = false; + private static int _gap = 6; + // Starting position when dragging a tab private System.Drawing.Point dragStartPoint; @@ -51,6 +53,14 @@ public bool AllowTabsDrag public Rectangle DragArea => DragAreaRectangle; + private GridLength _titleBarWidth; + + public GridLength TitleBarWidth + { + get => _titleBarWidth; + set => _titleBarWidth = new(value.Value + _gap); + } + // Events public static event EventHandler? SelectedTabItemChanged; @@ -66,12 +76,10 @@ public TabBar() var appWindow = MainWindow.Instance.AppWindow; - double rightPaddingColumnWidth = - FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft + TitleBarWidth = + new(FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft ? appWindow.TitleBar.LeftInset - : appWindow.TitleBar.RightInset; - - RightPaddingColumn.Width = new(rightPaddingColumnWidth >= 0 ? rightPaddingColumnWidth : 0); + : appWindow.TitleBar.RightInset); AppearanceSettingsService.PropertyChanged += (s, e) => { @@ -366,5 +374,8 @@ private void TabViewItem_Loaded(object sender, RoutedEventArgs e) }); } } + + private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) + => HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value, HorizontalTabView.ActualHeight)); } } diff --git a/src/Files.App/Views/MainPage.xaml.cs b/src/Files.App/Views/MainPage.xaml.cs index 81d6f68c4d7b..fbc12e1df3c7 100644 --- a/src/Files.App/Views/MainPage.xaml.cs +++ b/src/Files.App/Views/MainPage.xaml.cs @@ -126,7 +126,13 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs e) { - TabControl.DragArea.SizeChanged += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); + TabControl.SizeChanged += TabControlArea_SizeChanged; + TabControl.DragArea.SizeChanged += TabControlArea_SizeChanged; + } + + private void TabControlArea_SizeChanged(object sender, SizeChangedEventArgs e) + { + MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); if (ViewModel.MultitaskingControl is not TabBar) { ViewModel.MultitaskingControl = TabControl; @@ -138,7 +144,9 @@ private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs private int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) { var height = (int)TabControl.ActualHeight; - source.SetRegionRects(NonClientRegionKind.Passthrough, [getScaledRect(this, new RectInt32(0, 0, (int)(TabControl.ActualWidth + TabControl.Margin.Left - TabControl.DragArea.ActualWidth), height))]); + var width = (int)(TabControl.ActualWidth - TabControl.DragArea.ActualWidth); + + source.SetRegionRects(NonClientRegionKind.Passthrough, [getScaledRect(this, new RectInt32(0, 0, width, height))]); return height; } From 9918dfb692031fb609f57d6d7f51c58d9f75715a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20La=C5=A1t=C5=AFvka?= Date: Sat, 30 Nov 2024 00:05:23 +0100 Subject: [PATCH 02/17] Fix: Prevention of incorrect sizing --- src/Files.App/UserControls/TabBar/TabBar.xaml.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 59b0d813a213..fd781eae5a59 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -376,6 +376,10 @@ private void TabViewItem_Loaded(object sender, RoutedEventArgs e) } private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) - => HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value, HorizontalTabView.ActualHeight)); + { + var width = HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value; + var height = HorizontalTabView.ActualHeight; + HorizontalTabView.Measure(new(width >= 0 ? width : 0, height >= 0 ? height : 0)); + } } } From d25fc8e98758b50e11023443229fef80628160c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20La=C5=A1t=C5=AFvka?= Date: Sat, 30 Nov 2024 01:03:21 +0100 Subject: [PATCH 03/17] CQ: Move to TabBar --- src/Files.App/UserControls/TabBar/TabBar.xaml | 1 + .../UserControls/TabBar/TabBar.xaml.cs | 20 +++++++++++++++++++ src/Files.App/Views/MainPage.xaml.cs | 17 +--------------- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml b/src/Files.App/UserControls/TabBar/TabBar.xaml index cca024d4aa3c..2cbcecf064ee 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml @@ -11,6 +11,7 @@ xmlns:root="using:Files.App" xmlns:uc="using:Files.App.UserControls" xmlns:wctconverters="using:CommunityToolkit.WinUI.UI.Converters" + Loaded="BaseTabBar_Loaded" mc:Ignorable="d"> diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index fd781eae5a59..ae8a9b82e952 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -2,11 +2,13 @@ // Licensed under the MIT License. See the LICENSE. using CommunityToolkit.WinUI.UI; +using Microsoft.UI.Input; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Input; using Microsoft.UI.Xaml.Shapes; using Windows.ApplicationModel.DataTransfer; +using Windows.Graphics; using Windows.Storage; using Windows.Win32; @@ -65,6 +67,8 @@ public GridLength TitleBarWidth public static event EventHandler? SelectedTabItemChanged; + public event EventHandler? TabControlAreaSizeChanged; + // Constructor public TabBar() @@ -92,6 +96,9 @@ public TabBar() }; } + private void BaseTabBar_Loaded(object sender, RoutedEventArgs e) + => MainWindow.Instance.AppWindow.Changed += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); + private void TabView_TabItemsChanged(TabView sender, Windows.Foundation.Collections.IVectorChangedEventArgs args) { if (args.CollectionChange == Windows.Foundation.Collections.CollectionChange.ItemRemoved) @@ -380,6 +387,19 @@ private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) var width = HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value; var height = HorizontalTabView.ActualHeight; HorizontalTabView.Measure(new(width >= 0 ? width : 0, height >= 0 ? height : 0)); + + MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); + SizeChanged += (s, e) => TabControlAreaSizeChanged?.Invoke(s, e); + DragArea.SizeChanged += (s, e) => TabControlAreaSizeChanged?.Invoke(s, e); + } + + private int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) + { + var height = (int)ActualHeight; + var width = (int)(ActualWidth - DragArea.ActualWidth); + + source.SetRegionRects(NonClientRegionKind.Passthrough, [getScaledRect(this, new RectInt32(0, 0, width, height))]); + return height; } } } diff --git a/src/Files.App/Views/MainPage.xaml.cs b/src/Files.App/Views/MainPage.xaml.cs index fbc12e1df3c7..ce39a2a7839b 100644 --- a/src/Files.App/Views/MainPage.xaml.cs +++ b/src/Files.App/Views/MainPage.xaml.cs @@ -125,14 +125,10 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh } private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs e) - { - TabControl.SizeChanged += TabControlArea_SizeChanged; - TabControl.DragArea.SizeChanged += TabControlArea_SizeChanged; - } + => TabControl.TabControlAreaSizeChanged += TabControlArea_SizeChanged; private void TabControlArea_SizeChanged(object sender, SizeChangedEventArgs e) { - MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); if (ViewModel.MultitaskingControl is not TabBar) { ViewModel.MultitaskingControl = TabControl; @@ -141,15 +137,6 @@ private void TabControlArea_SizeChanged(object sender, SizeChangedEventArgs e) } } - private int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) - { - var height = (int)TabControl.ActualHeight; - var width = (int)(TabControl.ActualWidth - TabControl.DragArea.ActualWidth); - - source.SetRegionRects(NonClientRegionKind.Passthrough, [getScaledRect(this, new RectInt32(0, 0, width, height))]); - return height; - } - public async void TabItemContent_ContentChanged(object? sender, TabBarItemParameter e) { if (SidebarAdaptiveViewModel.PaneHolder is null) @@ -287,8 +274,6 @@ protected override void OnLostFocus(RoutedEventArgs e) private void Page_Loaded(object sender, RoutedEventArgs e) { - MainWindow.Instance.AppWindow.Changed += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); - // Defers the status bar loading until after the page has loaded to improve startup perf FindName(nameof(StatusBar)); FindName(nameof(InnerNavigationToolbar)); From a13dc4cfba48d96a468012f3a9bc0603034af1dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20La=C5=A1t=C5=AFvka?= Date: Sat, 30 Nov 2024 01:43:28 +0100 Subject: [PATCH 04/17] CQ: set drag area in TabBar --- .../UserControls/TabBar/TabBar.xaml.cs | 17 ++--------------- src/Files.App/Views/MainPage.xaml.cs | 8 +++++++- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index ae8a9b82e952..b60b03d96b72 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -67,8 +67,6 @@ public GridLength TitleBarWidth public static event EventHandler? SelectedTabItemChanged; - public event EventHandler? TabControlAreaSizeChanged; - // Constructor public TabBar() @@ -96,9 +94,6 @@ public TabBar() }; } - private void BaseTabBar_Loaded(object sender, RoutedEventArgs e) - => MainWindow.Instance.AppWindow.Changed += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); - private void TabView_TabItemsChanged(TabView sender, Windows.Foundation.Collections.IVectorChangedEventArgs args) { if (args.CollectionChange == Windows.Foundation.Collections.CollectionChange.ItemRemoved) @@ -383,17 +378,9 @@ private void TabViewItem_Loaded(object sender, RoutedEventArgs e) } private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) - { - var width = HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value; - var height = HorizontalTabView.ActualHeight; - HorizontalTabView.Measure(new(width >= 0 ? width : 0, height >= 0 ? height : 0)); - - MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); - SizeChanged += (s, e) => TabControlAreaSizeChanged?.Invoke(s, e); - DragArea.SizeChanged += (s, e) => TabControlAreaSizeChanged?.Invoke(s, e); - } + => HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value, HorizontalTabView.ActualHeight)); - private int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) + public int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) { var height = (int)ActualHeight; var width = (int)(ActualWidth - DragArea.ActualWidth); diff --git a/src/Files.App/Views/MainPage.xaml.cs b/src/Files.App/Views/MainPage.xaml.cs index ce39a2a7839b..4065d9947c27 100644 --- a/src/Files.App/Views/MainPage.xaml.cs +++ b/src/Files.App/Views/MainPage.xaml.cs @@ -125,10 +125,14 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh } private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs e) - => TabControl.TabControlAreaSizeChanged += TabControlArea_SizeChanged; + { + TabControl.SizeChanged += TabControlArea_SizeChanged; + TabControl.DragArea.SizeChanged += TabControlArea_SizeChanged; + } private void TabControlArea_SizeChanged(object sender, SizeChangedEventArgs e) { + MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); if (ViewModel.MultitaskingControl is not TabBar) { ViewModel.MultitaskingControl = TabControl; @@ -274,6 +278,8 @@ protected override void OnLostFocus(RoutedEventArgs e) private void Page_Loaded(object sender, RoutedEventArgs e) { + MainWindow.Instance.AppWindow.Changed += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); + // Defers the status bar loading until after the page has loaded to improve startup perf FindName(nameof(StatusBar)); FindName(nameof(InnerNavigationToolbar)); From 460af7841791c4f1e4caa8f7825a9625adfba306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20La=C5=A1t=C5=AFvka?= Date: Sat, 30 Nov 2024 01:46:09 +0100 Subject: [PATCH 05/17] Fix --- src/Files.App/UserControls/TabBar/TabBar.xaml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml b/src/Files.App/UserControls/TabBar/TabBar.xaml index 2cbcecf064ee..cca024d4aa3c 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml @@ -11,7 +11,6 @@ xmlns:root="using:Files.App" xmlns:uc="using:Files.App.UserControls" xmlns:wctconverters="using:CommunityToolkit.WinUI.UI.Converters" - Loaded="BaseTabBar_Loaded" mc:Ignorable="d"> From 8dee768b3b5932701c77097353025ef0649c8858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20La=C5=A1t=C5=AFvka?= Date: Sat, 30 Nov 2024 02:25:40 +0100 Subject: [PATCH 06/17] CQ: Revert --- src/Files.App/Views/MainPage.xaml.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/Files.App/Views/MainPage.xaml.cs b/src/Files.App/Views/MainPage.xaml.cs index 4065d9947c27..88b27b02d10a 100644 --- a/src/Files.App/Views/MainPage.xaml.cs +++ b/src/Files.App/Views/MainPage.xaml.cs @@ -126,13 +126,7 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs e) { - TabControl.SizeChanged += TabControlArea_SizeChanged; - TabControl.DragArea.SizeChanged += TabControlArea_SizeChanged; - } - - private void TabControlArea_SizeChanged(object sender, SizeChangedEventArgs e) - { - MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); + TabControl.DragArea.SizeChanged += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); if (ViewModel.MultitaskingControl is not TabBar) { ViewModel.MultitaskingControl = TabControl; From 6baa2ed4ef60ed1fe8e0c16990f0c2ae1b104edf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20La=C5=A1t=C5=AFvka?= Date: Sat, 30 Nov 2024 02:40:50 +0100 Subject: [PATCH 07/17] Fix: Fix problem when opening many tabs without changing DragArea size --- src/Files.App/Views/MainPage.xaml.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Files.App/Views/MainPage.xaml.cs b/src/Files.App/Views/MainPage.xaml.cs index 88b27b02d10a..ab2a19e5b549 100644 --- a/src/Files.App/Views/MainPage.xaml.cs +++ b/src/Files.App/Views/MainPage.xaml.cs @@ -127,6 +127,8 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs e) { TabControl.DragArea.SizeChanged += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); + TabControl.SizeChanged += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); + if (ViewModel.MultitaskingControl is not TabBar) { ViewModel.MultitaskingControl = TabControl; From c4a84d2f61a748a63fd71b2912734ab5349b7c99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C5=A1t=C5=AFvka=20Luk=C3=A1=C5=A1?= Date: Sun, 1 Dec 2024 00:49:45 +0100 Subject: [PATCH 08/17] CQ: Displaying the correct gap size using different dpi --- src/Files.App.CsWin32/NativeMethods.txt | 2 ++ src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs | 2 ++ src/Files.App/MainWindow.xaml.cs | 13 +++++++++++++ src/Files.App/UserControls/TabBar/TabBar.xaml.cs | 2 +- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Files.App.CsWin32/NativeMethods.txt b/src/Files.App.CsWin32/NativeMethods.txt index 68837251b7f1..aa7a37ae60e1 100644 --- a/src/Files.App.CsWin32/NativeMethods.txt +++ b/src/Files.App.CsWin32/NativeMethods.txt @@ -160,3 +160,5 @@ IApplicationDocumentLists ApplicationDocumentLists IApplicationActivationManager MENU_ITEM_TYPE +GetDpiForMonitor +MonitorFromWindow diff --git a/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs b/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs index f1a573124ce9..8385bcfae85d 100644 --- a/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs +++ b/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs @@ -67,5 +67,7 @@ public static partial class Win32PInvoke public const string LOCALE_NAME_USER_DEFAULT = null; public const string LOCALE_NAME_INVARIANT = ""; public const string LOCALE_NAME_SYSTEM_DEFAULT = "!sys-default-locale"; + + public const int USER_DEFAULT_SCREEN_DPI = 96; } } diff --git a/src/Files.App/MainWindow.xaml.cs b/src/Files.App/MainWindow.xaml.cs index e80e55247649..4080892bb5e7 100644 --- a/src/Files.App/MainWindow.xaml.cs +++ b/src/Files.App/MainWindow.xaml.cs @@ -9,6 +9,9 @@ using System.Runtime.InteropServices; using Windows.ApplicationModel.Activation; using Windows.Storage; +using Windows.Win32; +using Windows.Win32.Graphics.Gdi; +using Windows.Win32.UI.HiDpi; using IO = System.IO; namespace Files.App @@ -339,5 +342,15 @@ x.tabItem.NavigationParameter.NavigationParameter is PaneNavigationArguments pan } } } + + public double GetDpiScale() + { + var hMonitor = PInvoke.MonitorFromWindow( + new(WinRT.Interop.WindowNative.GetWindowHandle(this)), + MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST); + + var res = PInvoke.GetDpiForMonitor(hMonitor, MONITOR_DPI_TYPE.MDT_EFFECTIVE_DPI, out var dpiX, out var _); + return res == 0 ? ((float)dpiX / Win32PInvoke.USER_DEFAULT_SCREEN_DPI) : 1; + } } } diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index b60b03d96b72..26a26f5ce231 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -60,7 +60,7 @@ public Rectangle DragArea public GridLength TitleBarWidth { get => _titleBarWidth; - set => _titleBarWidth = new(value.Value + _gap); + set => _titleBarWidth = new((value.Value / MainWindow.Instance.GetDpiScale()) + _gap); } // Events From 57b8edc25a80b90795cc4b04a0946e3d90a615aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C5=A1t=C5=AFvka=20Luk=C3=A1=C5=A1?= Date: Mon, 2 Dec 2024 10:04:04 +0100 Subject: [PATCH 09/17] Update: Get dpi from AppModel --- src/Files.App.CsWin32/NativeMethods.txt | 2 -- src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs | 2 -- src/Files.App/MainWindow.xaml.cs | 13 ------------- src/Files.App/UserControls/TabBar/TabBar.xaml.cs | 2 +- 4 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/Files.App.CsWin32/NativeMethods.txt b/src/Files.App.CsWin32/NativeMethods.txt index aa7a37ae60e1..68837251b7f1 100644 --- a/src/Files.App.CsWin32/NativeMethods.txt +++ b/src/Files.App.CsWin32/NativeMethods.txt @@ -160,5 +160,3 @@ IApplicationDocumentLists ApplicationDocumentLists IApplicationActivationManager MENU_ITEM_TYPE -GetDpiForMonitor -MonitorFromWindow diff --git a/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs b/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs index 8385bcfae85d..f1a573124ce9 100644 --- a/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs +++ b/src/Files.App/Helpers/Win32/Win32PInvoke.Consts.cs @@ -67,7 +67,5 @@ public static partial class Win32PInvoke public const string LOCALE_NAME_USER_DEFAULT = null; public const string LOCALE_NAME_INVARIANT = ""; public const string LOCALE_NAME_SYSTEM_DEFAULT = "!sys-default-locale"; - - public const int USER_DEFAULT_SCREEN_DPI = 96; } } diff --git a/src/Files.App/MainWindow.xaml.cs b/src/Files.App/MainWindow.xaml.cs index 4080892bb5e7..e80e55247649 100644 --- a/src/Files.App/MainWindow.xaml.cs +++ b/src/Files.App/MainWindow.xaml.cs @@ -9,9 +9,6 @@ using System.Runtime.InteropServices; using Windows.ApplicationModel.Activation; using Windows.Storage; -using Windows.Win32; -using Windows.Win32.Graphics.Gdi; -using Windows.Win32.UI.HiDpi; using IO = System.IO; namespace Files.App @@ -342,15 +339,5 @@ x.tabItem.NavigationParameter.NavigationParameter is PaneNavigationArguments pan } } } - - public double GetDpiScale() - { - var hMonitor = PInvoke.MonitorFromWindow( - new(WinRT.Interop.WindowNative.GetWindowHandle(this)), - MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST); - - var res = PInvoke.GetDpiForMonitor(hMonitor, MONITOR_DPI_TYPE.MDT_EFFECTIVE_DPI, out var dpiX, out var _); - return res == 0 ? ((float)dpiX / Win32PInvoke.USER_DEFAULT_SCREEN_DPI) : 1; - } } } diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 26a26f5ce231..2b6d76459e25 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -60,7 +60,7 @@ public Rectangle DragArea public GridLength TitleBarWidth { get => _titleBarWidth; - set => _titleBarWidth = new((value.Value / MainWindow.Instance.GetDpiScale()) + _gap); + set => _titleBarWidth = new((value.Value / App.AppModel.AppWindowDPI) + _gap); } // Events From b2e8305a1ef5c85b51a73370441457f0b501c7b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C5=A1t=C5=AFvka=20Luk=C3=A1=C5=A1?= Date: Mon, 2 Dec 2024 10:11:17 +0100 Subject: [PATCH 10/17] CQ: Change size gap --- src/Files.App/UserControls/TabBar/TabBar.xaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 2b6d76459e25..70503aafdfd6 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -30,7 +30,7 @@ public sealed partial class TabBar : BaseTabBar, INotifyPropertyChanged private bool _lockDropOperation = false; - private static int _gap = 6; + private static int _gap = 40; // Starting position when dragging a tab private System.Drawing.Point dragStartPoint; From ea9dabc3a861df3ebc94a517afa45aa289604c5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C5=A1t=C5=AFvka=20Luk=C3=A1=C5=A1?= Date: Mon, 2 Dec 2024 23:31:07 +0100 Subject: [PATCH 11/17] CQ: Fix possible error when loading TitleBar property --- .../UserControls/TabBar/TabBar.xaml.cs | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 70503aafdfd6..e779696562f6 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -76,12 +76,7 @@ public TabBar() tabHoverTimer.Interval = TimeSpan.FromMilliseconds(Constants.DragAndDrop.HoverToOpenTimespan); tabHoverTimer.Tick += TabHoverSelected; - var appWindow = MainWindow.Instance.AppWindow; - - TitleBarWidth = - new(FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft - ? appWindow.TitleBar.LeftInset - : appWindow.TitleBar.RightInset); + InitializeTitleBarAsync(); AppearanceSettingsService.PropertyChanged += (s, e) => { @@ -94,6 +89,40 @@ public TabBar() }; } + /// + /// Initializes the title bar asynchronously. This method attempts to get the title bar's left and right insets. + /// If the values are properly initialized, it sets the property. If the initialization fails, + /// it falls back to a default width. + /// + private async void InitializeTitleBarAsync() + { + const int maxAttempts = 10; // Maximum number of attempts (1 second total wait) + const int delayInterval = 100; // Delay interval in milliseconds + const double defaultWidth = 138; // Default width if initialization fails + + var appWindow = MainWindow.Instance.AppWindow; + + for (int attempt = 0; attempt < maxAttempts; attempt++) + { + // If TitleBar values are properly initialized, set TitleBarWidth + if (appWindow?.TitleBar.LeftInset != appWindow?.TitleBar.RightInset) + { + TitleBarWidth = new GridLength( + FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft + ? appWindow!.TitleBar.LeftInset + : appWindow!.TitleBar.RightInset + ); + return; + } + + // Wait for the next attempt + await Task.Delay(delayInterval); + } + + // Fallback to default width if initialization fails + TitleBarWidth = new GridLength(defaultWidth); + } + private void TabView_TabItemsChanged(TabView sender, Windows.Foundation.Collections.IVectorChangedEventArgs args) { if (args.CollectionChange == Windows.Foundation.Collections.CollectionChange.ItemRemoved) From 8fed82851b21df4c9adceb6daa85e45c2105d594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C5=A1t=C5=AFvka=20Luk=C3=A1=C5=A1?= Date: Tue, 3 Dec 2024 20:08:54 +0100 Subject: [PATCH 12/17] CQ: Fix wrong calculating --- src/Files.App/UserControls/TabBar/TabBar.xaml.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index e779696562f6..4de07c7f48f7 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -407,7 +407,15 @@ private void TabViewItem_Loaded(object sender, RoutedEventArgs e) } private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) - => HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value, HorizontalTabView.ActualHeight)); + { + if (HorizontalTabView.ActualWidth > 0 && TabBarAddNewTabButton.Width > 0 && TitleBarWidth.Value > 0) + { + HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value, HorizontalTabView.ActualHeight)); + return; + } + + DispatcherQueue.TryEnqueue(() => DragAreaRectangle_Loaded(sender, e)); + } public int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) { From ad52076528b8d0e17d115c093033a0b9b5370265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C5=A1t=C5=AFvka=20Luk=C3=A1=C5=A1?= Date: Tue, 3 Dec 2024 20:09:32 +0100 Subject: [PATCH 13/17] Revert: `InitializeTitleBarAsync` --- .../UserControls/TabBar/TabBar.xaml.cs | 39 ++----------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 4de07c7f48f7..657ea7a4e99f 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -76,7 +76,10 @@ public TabBar() tabHoverTimer.Interval = TimeSpan.FromMilliseconds(Constants.DragAndDrop.HoverToOpenTimespan); tabHoverTimer.Tick += TabHoverSelected; - InitializeTitleBarAsync(); + var appWindow = MainWindow.Instance.AppWindow; + TitleBarWidth = new(FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft + ? appWindow!.TitleBar.LeftInset + : appWindow!.TitleBar.RightInset); AppearanceSettingsService.PropertyChanged += (s, e) => { @@ -89,40 +92,6 @@ public TabBar() }; } - /// - /// Initializes the title bar asynchronously. This method attempts to get the title bar's left and right insets. - /// If the values are properly initialized, it sets the property. If the initialization fails, - /// it falls back to a default width. - /// - private async void InitializeTitleBarAsync() - { - const int maxAttempts = 10; // Maximum number of attempts (1 second total wait) - const int delayInterval = 100; // Delay interval in milliseconds - const double defaultWidth = 138; // Default width if initialization fails - - var appWindow = MainWindow.Instance.AppWindow; - - for (int attempt = 0; attempt < maxAttempts; attempt++) - { - // If TitleBar values are properly initialized, set TitleBarWidth - if (appWindow?.TitleBar.LeftInset != appWindow?.TitleBar.RightInset) - { - TitleBarWidth = new GridLength( - FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft - ? appWindow!.TitleBar.LeftInset - : appWindow!.TitleBar.RightInset - ); - return; - } - - // Wait for the next attempt - await Task.Delay(delayInterval); - } - - // Fallback to default width if initialization fails - TitleBarWidth = new GridLength(defaultWidth); - } - private void TabView_TabItemsChanged(TabView sender, Windows.Foundation.Collections.IVectorChangedEventArgs args) { if (args.CollectionChange == Windows.Foundation.Collections.CollectionChange.ItemRemoved) From 183cd42d0be0ff94cb4d877e47a4a941d03d9849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C5=A1t=C5=AFvka=20Luk=C3=A1=C5=A1?= Date: Sun, 8 Dec 2024 13:27:16 +0100 Subject: [PATCH 14/17] CQ: Grouping into the single method --- src/Files.App/UserControls/TabBar/TabBar.xaml | 2 +- .../UserControls/TabBar/TabBar.xaml.cs | 35 +++++++++---------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml b/src/Files.App/UserControls/TabBar/TabBar.xaml index cca024d4aa3c..dc361d1470fd 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml @@ -228,7 +228,7 @@ - + diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 657ea7a4e99f..87055dc40631 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -30,8 +30,6 @@ public sealed partial class TabBar : BaseTabBar, INotifyPropertyChanged private bool _lockDropOperation = false; - private static int _gap = 40; - // Starting position when dragging a tab private System.Drawing.Point dragStartPoint; @@ -55,14 +53,6 @@ public bool AllowTabsDrag public Rectangle DragArea => DragAreaRectangle; - private GridLength _titleBarWidth; - - public GridLength TitleBarWidth - { - get => _titleBarWidth; - set => _titleBarWidth = new((value.Value / App.AppModel.AppWindowDPI) + _gap); - } - // Events public static event EventHandler? SelectedTabItemChanged; @@ -76,11 +66,6 @@ public TabBar() tabHoverTimer.Interval = TimeSpan.FromMilliseconds(Constants.DragAndDrop.HoverToOpenTimespan); tabHoverTimer.Tick += TabHoverSelected; - var appWindow = MainWindow.Instance.AppWindow; - TitleBarWidth = new(FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft - ? appWindow!.TitleBar.LeftInset - : appWindow!.TitleBar.RightInset); - AppearanceSettingsService.PropertyChanged += (s, e) => { switch (e.PropertyName) @@ -377,10 +362,24 @@ private void TabViewItem_Loaded(object sender, RoutedEventArgs e) private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) { - if (HorizontalTabView.ActualWidth > 0 && TabBarAddNewTabButton.Width > 0 && TitleBarWidth.Value > 0) + if (HorizontalTabView.ActualWidth > 0 && TabBarAddNewTabButton.Width > 0) { - HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - TitleBarWidth.Value, HorizontalTabView.ActualHeight)); - return; + var appWindow = MainWindow.Instance.AppWindow; + var titleBarInset = (FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft + ? appWindow.TitleBar.LeftInset + : appWindow.TitleBar.RightInset) / DragAreaRectangle.XamlRoot.RasterizationScale; + + if (titleBarInset > 0) + { + titleBarInset += 40; // Add 40px gap + RightPaddingColumn.Width = new(titleBarInset); + + HorizontalTabView.Measure(new( + HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - titleBarInset, + HorizontalTabView.ActualHeight)); + + return; + } } DispatcherQueue.TryEnqueue(() => DragAreaRectangle_Loaded(sender, e)); From 86a339a795d83e8f204354be0fe2b2916e180871 Mon Sep 17 00:00:00 2001 From: Yair <39923744+yaira2@users.noreply.github.com> Date: Mon, 9 Dec 2024 18:44:15 -0500 Subject: [PATCH 15/17] Update src/Files.App/UserControls/TabBar/TabBar.xaml.cs --- .../UserControls/TabBar/TabBar.xaml.cs | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index 87055dc40631..a81be655e3f0 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -362,25 +362,14 @@ private void TabViewItem_Loaded(object sender, RoutedEventArgs e) private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) { - if (HorizontalTabView.ActualWidth > 0 && TabBarAddNewTabButton.Width > 0) - { - var appWindow = MainWindow.Instance.AppWindow; - var titleBarInset = (FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft - ? appWindow.TitleBar.LeftInset - : appWindow.TitleBar.RightInset) / DragAreaRectangle.XamlRoot.RasterizationScale; - - if (titleBarInset > 0) - { - titleBarInset += 40; // Add 40px gap - RightPaddingColumn.Width = new(titleBarInset); - - HorizontalTabView.Measure(new( - HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - titleBarInset, - HorizontalTabView.ActualHeight)); + double scaleAdjustment = DragAreaRectangle.XamlRoot.RasterizationScale; + double titleBarInset = ((FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft + ? MainWindow.Instance.AppWindow.TitleBar.LeftInset + : MainWindow.Instance.AppWindow.TitleBar.RightInset) / scaleAdjustment) + 40; - return; - } - } + HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - titleBarInset, HorizontalTabView.ActualHeight)); + RightPaddingColumn.Width = new(titleBarInset >= 0 ? titleBarInset : 0); + } DispatcherQueue.TryEnqueue(() => DragAreaRectangle_Loaded(sender, e)); } From 379782d63150fd4249fc1518b3910c8522407a43 Mon Sep 17 00:00:00 2001 From: Yair <39923744+yaira2@users.noreply.github.com> Date: Mon, 9 Dec 2024 18:45:22 -0500 Subject: [PATCH 16/17] Revert changes to mainpage --- src/Files.App/Views/MainPage.xaml.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Files.App/Views/MainPage.xaml.cs b/src/Files.App/Views/MainPage.xaml.cs index ab2a19e5b549..a98ef622795b 100644 --- a/src/Files.App/Views/MainPage.xaml.cs +++ b/src/Files.App/Views/MainPage.xaml.cs @@ -126,9 +126,7 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs e) { - TabControl.DragArea.SizeChanged += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); - TabControl.SizeChanged += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); - + TabControl.DragArea.SizeChanged += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); if (ViewModel.MultitaskingControl is not TabBar) { ViewModel.MultitaskingControl = TabControl; @@ -137,6 +135,13 @@ private void HorizontalMultitaskingControl_Loaded(object sender, RoutedEventArgs } } + private int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) + { + var height = (int)TabControl.ActualHeight; + source.SetRegionRects(NonClientRegionKind.Passthrough, [getScaledRect(this, new RectInt32(0, 0, (int)(TabControl.ActualWidth + TabControl.Margin.Left - TabControl.DragArea.ActualWidth), height))]); + return height; + } + public async void TabItemContent_ContentChanged(object? sender, TabBarItemParameter e) { if (SidebarAdaptiveViewModel.PaneHolder is null) @@ -274,7 +279,7 @@ protected override void OnLostFocus(RoutedEventArgs e) private void Page_Loaded(object sender, RoutedEventArgs e) { - MainWindow.Instance.AppWindow.Changed += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(TabControl.SetTitleBarDragRegion); + MainWindow.Instance.AppWindow.Changed += (_, _) => MainWindow.Instance.RaiseSetTitleBarDragRegion(SetTitleBarDragRegion); // Defers the status bar loading until after the page has loaded to improve startup perf FindName(nameof(StatusBar)); @@ -482,4 +487,4 @@ private void PaneSplitter_ManipulationStarted(object sender, ManipulationStarted InputSystemCursorShape.SizeWestEast : InputSystemCursorShape.SizeNorthSouth)); } } -} +} \ No newline at end of file From e6f7f977b5fd7a78479248ffed7570c3ab43fd96 Mon Sep 17 00:00:00 2001 From: Yair <39923744+yaira2@users.noreply.github.com> Date: Mon, 9 Dec 2024 18:46:15 -0500 Subject: [PATCH 17/17] Update TabBar.xaml.cs --- .../UserControls/TabBar/TabBar.xaml.cs | 26 +++++-------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index a81be655e3f0..249103dda4a0 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -2,13 +2,11 @@ // Licensed under the MIT License. See the LICENSE. using CommunityToolkit.WinUI.UI; -using Microsoft.UI.Input; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Input; using Microsoft.UI.Xaml.Shapes; using Windows.ApplicationModel.DataTransfer; -using Windows.Graphics; using Windows.Storage; using Windows.Win32; @@ -363,24 +361,12 @@ private void TabViewItem_Loaded(object sender, RoutedEventArgs e) private void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) { double scaleAdjustment = DragAreaRectangle.XamlRoot.RasterizationScale; - double titleBarInset = ((FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft - ? MainWindow.Instance.AppWindow.TitleBar.LeftInset - : MainWindow.Instance.AppWindow.TitleBar.RightInset) / scaleAdjustment) + 40; + double titleBarInset = ((FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft + ? MainWindow.Instance.AppWindow.TitleBar.LeftInset + : MainWindow.Instance.AppWindow.TitleBar.RightInset) / scaleAdjustment) + 40; - HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - titleBarInset, HorizontalTabView.ActualHeight)); - RightPaddingColumn.Width = new(titleBarInset >= 0 ? titleBarInset : 0); - } - - DispatcherQueue.TryEnqueue(() => DragAreaRectangle_Loaded(sender, e)); - } - - public int SetTitleBarDragRegion(InputNonClientPointerSource source, SizeInt32 size, double scaleFactor, Func getScaledRect) - { - var height = (int)ActualHeight; - var width = (int)(ActualWidth - DragArea.ActualWidth); - - source.SetRegionRects(NonClientRegionKind.Passthrough, [getScaledRect(this, new RectInt32(0, 0, width, height))]); - return height; + HorizontalTabView.Measure(new(HorizontalTabView.ActualWidth - TabBarAddNewTabButton.Width - titleBarInset, HorizontalTabView.ActualHeight)); + RightPaddingColumn.Width = new(titleBarInset >= 0 ? titleBarInset : 0); } } -} +} \ No newline at end of file