From 0fa10cd3ef71ce63c6095302e97e5fd0629ed6bf Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Wed, 3 Nov 2021 15:15:43 -0500 Subject: [PATCH] Only one tooltip at a time please --- .../TerminalApp/MinMaxCloseControl.cpp | 55 +++++++++---------- src/cascadia/TerminalApp/MinMaxCloseControl.h | 3 - .../TerminalApp/MinMaxCloseControl.idl | 5 +- .../Resources/en-US/Resources.resw | 2 +- 4 files changed, 27 insertions(+), 38 deletions(-) diff --git a/src/cascadia/TerminalApp/MinMaxCloseControl.cpp b/src/cascadia/TerminalApp/MinMaxCloseControl.cpp index e4976fb6c..73f7b1d76 100644 --- a/src/cascadia/TerminalApp/MinMaxCloseControl.cpp +++ b/src/cascadia/TerminalApp/MinMaxCloseControl.cpp @@ -20,7 +20,6 @@ namespace winrt::TerminalApp::implementation MinMaxCloseControl::MinMaxCloseControl() { InitializeComponent(); - _MinimizeToolTip = RS_(L"WindowMinimizeButtonToolTipText"); } // These event handlers simply forward each buttons click events up to the @@ -97,6 +96,17 @@ namespace winrt::TerminalApp::implementation } } + void _openToolTipForButton(const Controls::Button& button, const bool isOpen) + { + if (auto tt{ Controls::ToolTipService::GetToolTip(button) }) + { + if (auto tooltip{ tt.try_as() }) + { + tooltip.IsOpen(isOpen); + } + } + } + void MinMaxCloseControl::HoverButton(CaptionButton button) { switch (button) @@ -105,48 +115,29 @@ namespace winrt::TerminalApp::implementation VisualStateManager::GoToState(MinimizeButton(), L"PointerOver", false); VisualStateManager::GoToState(MaximizeButton(), L"Normal", false); VisualStateManager::GoToState(CloseButton(), L"Normal", false); - if (auto tt{ Controls::ToolTipService::GetToolTip(MinimizeButton()) }) - { - if (auto tooltip{ tt.try_as() }) - { - tooltip.IsOpen(true); - } - } - + _openToolTipForButton(MinimizeButton(), true); + _openToolTipForButton(MaximizeButton(), false); + _openToolTipForButton(CloseButton(), false); break; case CaptionButton::Maximize: VisualStateManager::GoToState(MinimizeButton(), L"Normal", false); VisualStateManager::GoToState(MaximizeButton(), L"PointerOver", false); VisualStateManager::GoToState(CloseButton(), L"Normal", false); - if (auto tt{ Controls::ToolTipService::GetToolTip(MaximizeButton()) }) - { - if (auto tooltip{ tt.try_as() }) - { - tooltip.IsOpen(true); - } - } + _openToolTipForButton(MinimizeButton(), false); + _openToolTipForButton(MaximizeButton(), true); + _openToolTipForButton(CloseButton(), false); break; case CaptionButton::Close: VisualStateManager::GoToState(MinimizeButton(), L"Normal", false); VisualStateManager::GoToState(MaximizeButton(), L"Normal", false); VisualStateManager::GoToState(CloseButton(), L"PointerOver", false); - if (auto tt{ Controls::ToolTipService::GetToolTip(CloseButton()) }) - { - if (auto tooltip{ tt.try_as() }) - { - tooltip.IsOpen(true); - } - else if (auto s{winrt::unbox_value(tt)}; !s.empty()) - { - s; - int a = 0; - a++; - a; - } - } + _openToolTipForButton(MinimizeButton(), false); + _openToolTipForButton(MaximizeButton(), false); + _openToolTipForButton(CloseButton(), true); break; } } + void MinMaxCloseControl::PressButton(CaptionButton button) { switch (button) @@ -168,10 +159,14 @@ namespace winrt::TerminalApp::implementation break; } } + void MinMaxCloseControl::ReleaseButtons() { VisualStateManager::GoToState(MinimizeButton(), L"Normal", false); VisualStateManager::GoToState(MaximizeButton(), L"Normal", false); VisualStateManager::GoToState(CloseButton(), L"Normal", false); + _openToolTipForButton(MinimizeButton(), false); + _openToolTipForButton(MaximizeButton(), false); + _openToolTipForButton(CloseButton(), false); } } diff --git a/src/cascadia/TerminalApp/MinMaxCloseControl.h b/src/cascadia/TerminalApp/MinMaxCloseControl.h index 9bcd81def..e69616038 100644 --- a/src/cascadia/TerminalApp/MinMaxCloseControl.h +++ b/src/cascadia/TerminalApp/MinMaxCloseControl.h @@ -31,9 +31,6 @@ namespace winrt::TerminalApp::implementation void _CloseClick(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e); - WINRT_CALLBACK(PropertyChanged, Windows::UI::Xaml::Data::PropertyChangedEventHandler); - WINRT_OBSERVABLE_PROPERTY(winrt::hstring, MinimizeToolTip, _PropertyChangedHandlers); - TYPED_EVENT(MinimizeClick, TerminalApp::MinMaxCloseControl, winrt::Windows::UI::Xaml::RoutedEventArgs); TYPED_EVENT(MaximizeClick, TerminalApp::MinMaxCloseControl, winrt::Windows::UI::Xaml::RoutedEventArgs); TYPED_EVENT(CloseClick, TerminalApp::MinMaxCloseControl, winrt::Windows::UI::Xaml::RoutedEventArgs); diff --git a/src/cascadia/TerminalApp/MinMaxCloseControl.idl b/src/cascadia/TerminalApp/MinMaxCloseControl.idl index 06b481e4a..61600fe27 100644 --- a/src/cascadia/TerminalApp/MinMaxCloseControl.idl +++ b/src/cascadia/TerminalApp/MinMaxCloseControl.idl @@ -5,8 +5,7 @@ import "TitlebarControl.idl"; namespace TerminalApp { - [default_interface] runtimeclass MinMaxCloseControl : Windows.UI.Xaml.Controls.StackPanel, - Windows.UI.Xaml.Data.INotifyPropertyChanged + [default_interface] runtimeclass MinMaxCloseControl : Windows.UI.Xaml.Controls.StackPanel { MinMaxCloseControl(); @@ -16,8 +15,6 @@ namespace TerminalApp void PressButton(CaptionButton button); void ReleaseButtons(); - String MinimizeToolTip { get; }; - event Windows.Foundation.TypedEventHandler MinimizeClick; event Windows.Foundation.TypedEventHandler MaximizeClick; event Windows.Foundation.TypedEventHandler CloseClick; diff --git a/src/cascadia/TerminalApp/Resources/en-US/Resources.resw b/src/cascadia/TerminalApp/Resources/en-US/Resources.resw index a2da0841e..294ffce58 100644 --- a/src/cascadia/TerminalApp/Resources/en-US/Resources.resw +++ b/src/cascadia/TerminalApp/Resources/en-US/Resources.resw @@ -423,7 +423,7 @@ Minimize - + Minimize