Closed goxr3plus closed 4 years ago
Does this also occur if you run from command line and disable GPU?
code --disable-gpu
This might be related to the fact that after I hide/show bottom panel there is difference in width of div.terminal.xterm
Fresh terminal in bottom panel Click hide panel or switch to any other tab in panel and show terminal again
Which might explain issue with wrong outline in #90568 (and issues that I had when sometimes input line had line breaks early)
It looks funnier immediately after I switch from experimentalWebgl
renderer to auto
and terminal is hot-reloaded.
(after hot reload of renderer I also see that in this case I also see that .split-view-view.visible
will change it width, but doesn't happen in case described above)
VS Code version: Code - Insiders 1.43.0-insider (e6a45f4242ebddb7aa9a229f85555e8a3bd987e2, 2020-02-21T05:42:20.536Z) OS version: Windows_NT x64 10.0.18363
I suspect a race where viewport doesn't update when resize is fired multiple times in quick succession.
@sbatten I think the workbench view refactor caused this and https://github.com/microsoft/vscode/issues/91119. Are there additional resize events being fired now when the view is hidden?
initial layout calls, after initial layout no more calls to layout are made with terminal hidden.
/cc @joaomoreno
Not sure if directly related to this one (most likely same as second case in my example with renderer).
If I change editor.font
I'll get wrong dimensions for teriminal inside tab. No resizing or hiding tab in this case.
Solid repro: https://github.com/microsoft/vscode/issues/91135
@sbatten please review https://github.com/microsoft/vscode/commit/622ddc0d6794450de81bdd4fd020dd219be1b926, also why does layoutBody take height first then width? This is backwards to the standard and results in things like this happening?
not sure, @joaomoreno implemented it that way a long time ago.
What standard?
Historically, split views only had one dimension, so it was layout(size)
. Then, as panels appeared, they were forcibly vertical, so layout(size)
would call layoutBody(height)
. Then, it turns out we needed to pass in width as well, so then layoutBody(height, width)
was born. As far as the splitview is concerned, the method is layout(size, orthogonalSize)
, so we're agnostic there.
@sbatten This can easily be changed to a layoutBody(dimension)
at the panel layer.
@joaomoreno by standard I mean industry standard that it's almost always (x, y), (width, height), (horizontal, vertical), etc.
Gif attached below :
Also sometimes when i opper two terminals side by side and i close the second , the first one doesn't resize properly .
Version: 1.43.0-insider (system setup) Commit: e6a45f4242ebddb7aa9a229f85555e8a3bd987e2 Date: 2020-02-21T05:42:20.536Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.18363