-
Notifications
You must be signed in to change notification settings - Fork 27.9k
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
Dragging the window border to resize the window randomly fails #84315
Comments
I'm having trouble reproducing this. Can you confirm a few settings:
|
@sbatten I don't know if this is just a "feature" that feels like a hack, or if it is an actual bug. If this is really what's supposed to happen, how would I ever know this without feeling annoyed or without having some UI hint in the window, like a drag handle or a cursor change or some visual indicator that these are actually different things, or something else. This really just feels like it shouldn't work to me.
|
can reproduce with native titlebar |
@pedrogarcia Please mind your manners, there's no need for that kind of language. As you can tell, you're getting direct support from the actual engineers on the project within hours of you filling the issue. Please try to show some appreciation simply by behaving cordially. Thanks. @sbatten I wonder if we should disable the snapping out mechanism on the far edges of the window? Works fine for sidebar due to activity bar and for panel due to status bar. |
@joaomoreno I updated the comments to remove the lack of cordiality. |
@joaomoreno I thought it was disabled. I think it should be. |
@sbatten It's not... The splitview doesn't know anything about the far edges of the window. Needs thought on how it should be implemented. Maybe something to disable snapping on far edges of the grid, which for the workbench that means the window itself. |
@joaomoreno remind me why the edges of a grid or splitview would have sashes. In cases I can think of, they are always within some other view that has its own sashes, right? |
They are snapping sashes. |
I thought we discussed that snapping sashes should not work if touching the edge of the containing view. |
That can't be the rule, otherwise the panel sash wouldn't work at all, since it's the last sash of that splitview. The rule must be set at the grid level and state something like snapping sashes should not work if at the edge of the grid. And even then it must be an option, since not all grids would behave in such a way (imagine @bpasero introduces snapping in his layer). I'm sketching something up. 👍 |
Ah that's what I was trying to recall, thanks. Snapping in the editor grid could get pretty dicey. What would happen if you snapped an editor away next to the sidebar? What would that sash represent? I think at that point we would need some multi sash disambig UX. But this is all theoretical. |
Let's write a paper for it first! |
OK that was a lot more work than expected, #85698, since basically I had to propagate dimensions and positions down the grid node tree in order for each splitview to know whether it is at an edge of the grid. On top of that I had to have properties to disable snapping on each end of any given splitview. So, if a view is snapped right at the one of the edges of the grid's full dimensions, it won't be possible to drag it out into view using the mouse any more. This is now hard coded for every grid since we only have two grids in the workbench and only the outer one uses snapping; this grid happens to span the full Electron window. The behavior can easily be turned into grid settings (one boolean per edge) in case we ever require snapping out at edges again. |
Issue Type: Bug
Another issue that only ever happens because this is an electron app.
Gif demonstrating the issue:
VS Code version: Code 1.40.0 (86405ea, 2019-11-06T17:02:13.381Z)
OS version: Windows_NT x64 10.0.18362
System Info
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
oop_rasterization: disabled_off
protected_video_decode: enabled
rasterization: enabled
skia_renderer: disabled_off
surface_control: disabled_off
surface_synchronization: enabled_on
video_decode: enabled
viz_display_compositor: enabled_on
viz_hit_test_surface_layer: disabled_off
webgl: enabled
webgl2: enabled
Extensions (14)
(1 theme extensions excluded)
The text was updated successfully, but these errors were encountered: