65b22b9abb
This adds support for the `desktop` param to the `globalSummon` action. It accepts 3 values: * `toCurrent` (default): The window moves to the current desktop when it's summoned * `any`: We don't care what desktop the window is on. We'll go to the desktop the window is on when we summon it. * `onCurrent`: We'll only try to summon the MRU window on this desktop when summoning a window. * When combined with `name`, if there's a window matching `name`, we'll move it to this desktop. * If there's not a window on this desktop, and `name` is omitted, then we'll make a new window. `quakeMode` was also updated to use `toCurrent` behavior by default. ## References * Original thread: #653 * Spec: #9274 * megathread: #8888 ## PR Checklist * [x] Checks some boxes in #8888 * [x] closes https://github.com/microsoft/terminal/projects/5#card-59030845 * [x] I work here * [x] Tests added * [n/a] Requires documentation to be updated ## Detailed Description of the Pull Request / Additional comments S/O to https://github.com/microsoft/PowerToys, who graciously let us use `VirtualDesktopUtils` for figuring out what desktop is the current desktop. Yea, that's all we needed that entire file for. No, there isn't an API for this (_surprised-pikachu.png_) ## Validation Steps Performed Played with this for a while, and it's amazing.
36 lines
820 B
C++
36 lines
820 B
C++
/*++
|
|
Copyright (c) Microsoft Corporation
|
|
Licensed under the MIT license.
|
|
|
|
Class Name:
|
|
- SummonWindowBehavior.h
|
|
|
|
Abstract:
|
|
- TODO!
|
|
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#include "SummonWindowBehavior.g.h"
|
|
#include "../cascadia/inc/cppwinrt_utils.h"
|
|
|
|
namespace winrt::Microsoft::Terminal::Remoting::implementation
|
|
{
|
|
struct SummonWindowBehavior : public SummonWindowBehaviorT<SummonWindowBehavior>
|
|
{
|
|
public:
|
|
SummonWindowBehavior() = default;
|
|
WINRT_PROPERTY(bool, MoveToCurrentDesktop, true);
|
|
|
|
public:
|
|
SummonWindowBehavior(const Remoting::SummonWindowBehavior& other) :
|
|
_MoveToCurrentDesktop{ other.MoveToCurrentDesktop() } {};
|
|
};
|
|
}
|
|
|
|
namespace winrt::Microsoft::Terminal::Remoting::factory_implementation
|
|
{
|
|
BASIC_FACTORY(SummonWindowBehavior);
|
|
}
|