-
Notifications
You must be signed in to change notification settings - Fork 8.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Process Model v3 / Tab tear-out ship list #14957
Comments
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This is a feature I've been wanting for a while; I'd be happy to give it a test if possible and see if I run into any issues.. However, I'm not quite eager enough to do anything such as building the sources myself. If there's any sort of Beta/RC containing this feature, that'd be great - I already am running the I do use quite a few screens with multiple dGPUs+iGPU, fancy-zones and such, not sure if my setup would be considered any more trying towards testing (eg. dragging tabs onto other screens, across different GPUs or dropping right into a fancyzone or something - I've seen issues w/other things like browsers handling this in the past though it seems like most of those issues have been solved in those apps) Otherwise, I'll just thank everyone for their hard work and wait for it to drop and test it then and hopefully not have to report any issues. :) |
Dustin's thing about contentSpawned from this discussion:
|
Fixes a bug where you'd drag across the boundary and the new window would be at the wrong size related to #14957
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
MSFT:43995981 - the
|
…AppHost (#15231) See #14957 (comment). I think there's a race here that lets the WindowEmperor muck around with the window after it's done, but before we remove it from our list of threads. This _should_ remove the thread from the list, _then_ null out the AppHost, then flush the XAML queue, preventing the A/V. Closes MSFT:43995981
…5175) This bug causes AtlasEngine to render buffer contents with an incorrect `cellCount`, which may either cause it to draw the contents only partially, or potentially access the TextBuffer contents out of bounds. `EnablePainting` sets the `_viewport` to the current viewport for some unfortunate (and quite buggy/incorrect) caching purposes, which causes `_CheckViewportAndScroll()` to think that the viewport hasn't changed in the new window. We can ensure `_CheckViewportAndScroll()` works by also setting `_forceUpdateViewport` to `true`. Part of #14957 ## PR Checklist * Tear out a tab from a smaller window to a larger window * Renderer contents adept to the larger window size ✅ --------- Co-authored-by: Mike Griese <[email protected]> Co-authored-by: Dustin L. Howett <[email protected]>
We had a report in a mail thread that someone's Terminal windows were getting created hidden, and never showing themselves. As a theory, I'm guessing that dwFlags didn't say that we should actually use `wShowWindow`. So, to be more correct, let's actually obey that. I'm gonna send this package to them to see if it fixes them. Related to #14957. Likely regressed in #13838.
If you were really fast, and closed one window, and then tried to drag the only tab out of the last remaining window, the Terminal could explode. It'd attempt to restore the previous window state, and explode. Easy way to stop this (also, be more robust): just don't attempt to restore windows during tear-out. That's obvious. This is a part of #14957
If you were really fast, and closed one window, and then tried to drag the only tab out of the last remaining window, the Terminal could explode. It'd attempt to restore the previous window state, and explode. Easy way to stop this (also, be more robust): just don't attempt to restore windows during tear-out. That's obvious. This is a part of #14957
As on the tin. Blocking for 1.18. Tracked in #14957
[Just don't go](https://youtu.be/jmIFwSKnuRM?t=102) Tracked in #14957
As on the tin. Blocking for 1.18. Tracked in #14957
Before process model v3, each Terminal window was running in its own process, each with its own CWD. This allowed `startingDirectory: .` to work relative to the terminal's own CWD. However, now all windows share the same process, so there can only be one CWD. That's not great - folks who right-click "open in terminal", then "Use parent process directory" are only ever going to be able to use the CWD of the _first_ terminal opened. This PR remedies this issue, with a theory we had for another issue. Essentially, we'll give each Terminal window a "virtual" CWD. The Terminal isn't actually in that CWD, the terminal is in `system32`. This also will prevent the Terminal from locking the directory it was originally opened in. * Closes #5506 * There wasn't a 1.18 issue for "Use parent process directory is broken" yet, presumably selfhosters aren't using that feature * Related to #14957 Many more notes on this topic in #4637 (comment) > **Warning** > ## Breaking change‼️ This will break a profile like ```json { "commandline": "media-test.exe", "name": "Use CWD for media-test", "startingDirectory": "." }, ``` if the user right-clicks "open in terminal", then attempts to open that profile. There's some theoretical work we could do in a follow up to fix this, but I'm inclined to say that relative paths for `commandline`s were already dangerous and should have been avoided.
Before process model v3, each Terminal window was running in its own process, each with its own CWD. This allowed `startingDirectory: .` to work relative to the terminal's own CWD. However, now all windows share the same process, so there can only be one CWD. That's not great - folks who right-click "open in terminal", then "Use parent process directory" are only ever going to be able to use the CWD of the _first_ terminal opened. This PR remedies this issue, with a theory we had for another issue. Essentially, we'll give each Terminal window a "virtual" CWD. The Terminal isn't actually in that CWD, the terminal is in `system32`. This also will prevent the Terminal from locking the directory it was originally opened in. * Closes #5506 * There wasn't a 1.18 issue for "Use parent process directory is broken" yet, presumably selfhosters aren't using that feature * Related to #14957 Many more notes on this topic in #4637 (comment) > **Warning** > ## Breaking change‼️ This will break a profile like ```json { "commandline": "media-test.exe", "name": "Use CWD for media-test", "startingDirectory": "." }, ``` if the user right-clicks "open in terminal", then attempts to open that profile. There's some theoretical work we could do in a follow up to fix this, but I'm inclined to say that relative paths for `commandline`s were already dangerous and should have been avoided. (cherry picked from commit 5c08a86) Service-Card-Id: 89180224 Service-Version: 1.18
omgomgomg I just tried tab tear out after a recent update andddddddddd it works!!!!!! finally! so glad to have this feature. <3 <3 for your hard works!! |
Moving this to separate from #14900. I want that to SPECIFICALLY track tag dragging UX issues (which could apply to us or maybe anyone else using TabView).
For general tab tear-out &U drag drop UX issues, see: ---> #14900 <---
This is a list of things we need to fix to get #5000 / #1256 out the door.
Original PRs:
AppLogic
into "App logic" and "Window logic" #14825PR Blockers
We shouldn't even merge these to
main
like thisPR bugs
Ship blockers
We can merge these, but iterate in post
Follow-ups
see discussion in #14843 (comment)
Let's just do it in post
In post
Did we fix it?
Things we may have accidentally fixed on the way?
Fixed?
The text was updated successfully, but these errors were encountered: