fixes #8587
This commit is contained in:
parent
0ef867319d
commit
1915a06f6e
|
@ -102,19 +102,30 @@ namespace winrt::TerminalApp::implementation
|
||||||
{
|
{
|
||||||
MinMaxCloseControl().PressButton(button);
|
MinMaxCloseControl().PressButton(button);
|
||||||
}
|
}
|
||||||
void TitlebarControl::ClickButton(CaptionButton button)
|
winrt::fire_and_forget TitlebarControl::ClickButton(CaptionButton button)
|
||||||
{
|
{
|
||||||
switch (button)
|
// GH#8587: Handle this on the _next_ pass of the UI thread. If we
|
||||||
|
// handle this immediately, then we'll accidentally leave the button in
|
||||||
|
// the "Hovered" state when we minimize. This will leave the button
|
||||||
|
// visibly hovered in the taskbar preview for our window.
|
||||||
|
auto weakThis{ get_weak() };
|
||||||
|
co_await MinMaxCloseControl().Dispatcher();
|
||||||
|
if (auto self{ weakThis.get() })
|
||||||
{
|
{
|
||||||
case CaptionButton::Minimize:
|
// Just handle this in the same way we would if the button were
|
||||||
Minimize_Click(nullptr, nullptr);
|
// clicked normally.
|
||||||
break;
|
switch (button)
|
||||||
case CaptionButton::Maximize:
|
{
|
||||||
Maximize_Click(nullptr, nullptr);
|
case CaptionButton::Minimize:
|
||||||
break;
|
Minimize_Click(nullptr, nullptr);
|
||||||
case CaptionButton::Close:
|
break;
|
||||||
Close_Click(nullptr, nullptr);
|
case CaptionButton::Maximize:
|
||||||
break;
|
Maximize_Click(nullptr, nullptr);
|
||||||
|
break;
|
||||||
|
case CaptionButton::Close:
|
||||||
|
Close_Click(nullptr, nullptr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void TitlebarControl::ReleaseButtons()
|
void TitlebarControl::ReleaseButtons()
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace winrt::TerminalApp::implementation
|
||||||
|
|
||||||
void HoverButton(CaptionButton button);
|
void HoverButton(CaptionButton button);
|
||||||
void PressButton(CaptionButton button);
|
void PressButton(CaptionButton button);
|
||||||
void ClickButton(CaptionButton button);
|
winrt::fire_and_forget ClickButton(CaptionButton button);
|
||||||
void ReleaseButtons();
|
void ReleaseButtons();
|
||||||
|
|
||||||
IInspectable Content();
|
IInspectable Content();
|
||||||
|
|
Loading…
Reference in a new issue