* Fix the WAP packaging project
This commits fixes the centennial package by:
* Forcing XBF (XAML binary format) files to be embedded in project
PRI files.
* Moving package content generation to before PRI generation
* Collecting all of the package's PRI files to merge into resources.pri
* Fixing the hardcoded resource paths to reflect the new reality.
It also includes a magic value that fixes the bug where the project is
autodetected as a Mixed (CLR + Native) project.
Fixes#1816.
* This definitely works for getting shadow, pointy corners back
Don't do anything in NCPAINT. If you do, you have to do everything. But the
whole point of DwmExtendFrameIntoClientArea is to let you paint the NC area in
your normal paint. So just do that dummy.
* This doesn't transition across monitors.
* This has a window style change I think is wrong.
* I'm not sure the margins change is important.
* The window style was _not_ important
* Still getting a black xaml islands area (the HRGN) when we switch to high DPI
* I don't know if this affects anything.
* heyo this works.
I'm not entirely sure why. But if we only update the titlebar drag region when
that actually changes, it's a _lot_ smoother. I'm not super happy with the
duplicated work in _UpdateDragRegion and OnSize, but checking this in in case
I can't figure that out.
* Add more comments and cleanup
* Some PR nits, fix the titlebar painting on maximize
Certain DirectX features are unavailable on windows 7. The important ones as they are used in the DX renderer are color font rendering and fallback font support. Color fonts did not exist at all on windows 7 so running basic glyphrun rendering should work just fine.
Fallback font support was not exposed to the user in windows 7, making dealing with them difficult. Rather than try to get some workarounds to properly enable it I have opted to just conditionally disable the support on windows 7.
The overhang of a maximized window is currently calculated with this:
```cpp
auto offset = 0;
if (rcMaximum.left == 0)
{
offset = windowPos->x;
}
else if (rcMaximum.top == 0)
{
offset = windowPos->y;
}
```
This always works on the primary monitor but on a non primary monitor, it isn't always the case that `left` or `top` can be 0. Examples are when you offset a monitor. In those cases, `offset` will be 0 and the window will be cut off.
Instead I've changed the calculation to calculate the width of the windows frame which is how much it would overhang. Admittedly, the old calculation could be kept and take into consideration the current monitor.
* Obstruct the user when they try to run under WOW
* Move strings to resource file, add comments to methods, remove extraneous wil include.
* remove excess newline
* output of formatter.
* Fix DECSTBM parameter interpretation to ignore invalid ranges, and clear the margins on all full screen ranges.
* Add additional scroll margin adapter tests to verify the parameter configurations that were previously incorrect.
* Fix scroll margin adapter tests that weren't actually verifying the conditions that they claimed to be testing.
* Fix margin boundary tests in the RI, DL, and IL sequences.
* Refactor the margin boundary tests into a reusable SCREEN_INFORMATION method.
* Add screen buffer unit tests for the RI, DL, and IL sequences.
Testing done: All manual tests:
- Deleted profiles.json, started Terminal.
- Verified that the output "Vintage" color scheme existed.
- Verified that "Vintage" diffed equal to the "Classic" scheme
in the issue, apart from the name and the addition of
"background" and "foreground" colors, which I made equal
to the "black" and "white" ones respectively.
- Verified that I could set a profile to use Vintage
and that the colors changed accordingly.
Adds the ability to resize panes with the keyboard.
This is accomplished by making the Column/RowDefinitions for a Pane use `GridLengthHelper::FromPixels` to set their size. We store a pair of floats that represents the relative amount that each pane takes out of the parent pane. When the window is resized, we use that percentage to figure out the new size of each child in pixels, and manually size each column.
Then, when the user presses the keybindings for resizePane{Left/Right/Up/Down}, we'll adjust those percentages, and resize the rows/cols as appropriate.
Currently, each pane adjusts the width/height by 5% of the total size at a time. I am not in love with this, but it works for now. I think when we get support for keybindings with arbitrary arg blobs, then we could do either a percent movement, or a number of characters at a time. The number of characters one would be trickier, because we'd have to get the focused control, and get the number of pixels per character, as adjacent panes might not have the same font sizes.
* Added fontSize and acrylicOpacity changing tip
Added Terminal tip about changing the font size and acrylic opacity using keyboard shortcuts.
* Update index.md
* Make opening the settings file more robust
This fixes two issues.
* Opens the assigned default application regardless of its configuration.
Gvim for example only reacts to the "edit" verb so when selected as default application won't open.
Using nullptr results in using the first specified application.
This fixes#1789
* If no application is assigned for json files fall back to notepad
See https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutea for more details
especially why the result code checking is so horrific.
* Fix c-style cast
* Propose banner at top of issue templates
Getting tired of obvious low quality issues and I want to provide the warning that we may start closing things without further explanation as our volume is too high to deal with junk issues.
* Add bot rule information too.
* Add support for origin mode (DECOM).
* Added a state machine unit test for the origin mode.
* Prevent the cursor position moving below the bottom margin of the scrolling region if the origin mode is relative.
* Only adjust the relative cursor position for origin mode if the scrolling region is actually set.
* Add some screenbuffer unit tests for the origin mode.
* Enhance the soft reset screenbuffer tests to verify the origin mode is reset.
* Move the origin mode flag constructor assignments into the intializer list.
* Implement XTerm's private mode escape sequence for enabling DECCOLM support.
* Add output engine and screen buffer units test for the private mode 40 escape sequence.
* Add a new console target that writes the color scheme to stdout in JSON format for copying into a Windows Terminal profiles.json file.
* Update src/tools/ColorTool/ColorTool/ConsoleTargets/TerminalSchemeConsoleTarget.cs
Co-Authored-By: Michael Niksa <miniksa@microsoft.com>
* Create a base class for scheme parsers for common code and helpers. Fix string formatting according to review comments.