-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Bottom panels get messed up if they are resized to the maximum height #2015
Comments
Hi, A couple things I've noticed about this:
It looks like some css or layout changes might help here. For example, the Also limiting a maximum height while resizing the panels (on resizing and on showing) helps, but this would probably require a some API changes in |
Reviewed |
There are several intertwined bugs here:
So as far as fixes:
Here's the code I added to the "show" helper for (3): // Window size may have changed since panel last visible. Make sure it still fits
var maxSize = $("#editor-holder").height();
if (elementSize > maxSize) {
elementSize = maxSize;
elementSizeFunction.apply($element, [maxSize]);
} This isn't ideal since it hardcodes an assumption that the panel sits in the |
So for Sprint 17 since we're sort of in a crunch, I would suggest only doing my first bullet -- the simple fix in EditorManager that fixes the worst aspects of the bug. |
The simple EditorManager fix sounds good for now. As you say, this will resolve the situation where you can't get the panel back unless you trash prefs, which is the most important aspect to fix. |
Leaving open for the simple fix for sprint 17. We can do more later. |
…height). When panel size > the available area (which can happen several ways, including a bug in Resizer that allows drags to overshoot the max size that would fit), we were computing a negative size for the #editor-holder. This was a problem because jQuery no-ops on negative sizes; clipping to 0 gives much better results. #2015 should remain open to track the other panel-oversize-related bugs mentioned there.
Partial fix for #2015 (Bottom panels get messed up if resized to max height)
Yes, the worst case is now fixed. Removing FBNC and Sprint 17. Keeping Medium Priority since the remaining issues are still pretty bad. |
Nominating for sprint 19. |
Moving out to sprint 20--doesn't seem as high pri as other sprint 19 bugs and we're getting low on time. |
Moving to sprint 21 after discussion -- not as important as the ongoing CMv3 issues. |
Moving to sprint 22 since the new topcoat toolbar story will probably affect how panel layout is managed. |
Moving to Sprint 24 as per team's decision in today's standup. @peterflynn is going to write up a proposal for this case, we'll follow up on. |
Further punted. @peterflynn to write up proposal for fix |
- PanelManager provides APIs to create panels below the editor area. JSLint and Find in Files now use these APIs. - Move editor-holder ht calculations from EditorManager to PanelManager - EditorManager listens to PanelManager for resize notifications. PanelManager listens for window resize (moved from EditorManager) and for Resizer events on all bottom panels. The old EditorManager.resizeEditor() API is still used for edge cases such as status & search bar show/hide, extensions that add fixed top panels, and extensions that don't use Resizer APIs to hide/show panels. - Since PanelManager is listening, Resizer no longer pings EditorManager directly about show/hide/resize. Resizer emits events to notify PanelManager about any panels it may have missed (legacy extensions that add panels via Resizer instead of PanelManager). - Add max-size support to Resizer in anticipation of PanelManager helping to fix bug #2015.
…panels resize or overall available `.content` height changes (window resize). Change resizer min/max limits to operate in terms of panel outer height.
PR #3943 fully fixes (1) above. Here's a rough sketch of the remaining work:
|
- PanelManager provides APIs to create panels below the editor area. JSLint and Find in Files now use these APIs. - Move editor-holder ht calculations from EditorManager to PanelManager - EditorManager listens to PanelManager for resize notifications. PanelManager listens for window resize (moved from EditorManager) and for Resizer events on all bottom panels. The old EditorManager.resizeEditor() API is still used for edge cases such as status & search bar show/hide, extensions that add fixed top panels, and extensions that don't use Resizer APIs to hide/show panels. - Since PanelManager is listening, Resizer no longer pings EditorManager directly about show/hide/resize. Resizer emits events to notify PanelManager about any panels it may have missed (legacy extensions that add panels via Resizer instead of PanelManager). - Add max-size support to Resizer in anticipation of PanelManager helping to fix bug adobe#2015.
…ther panels resize or overall available `.content` height changes (window resize). Change resizer min/max limits to operate in terms of panel outer height.
Reviewed. Since the worst issues here are fixed, and panels were never an official feature anyway, we decided that we should call this "move to backlog", and create a card for creating an official panel API that includes things like whether we want tabs in panels, what their sizing behavior should be, etc. |
Created a backlog card for bottom panel UI and linked this bug from it: https://trello.com/c/eVoQHUJj. Closing as move to backlog. |
[Edit: The behavior as described in these steps was fixed in #2223. However, there are related issues that still remain. Please read all bug comments before closing.]
Steps to repro:
Results:
The search results panel ends up overlapping the status bar and cannot be resized. The only way to get the panel back is to trash prefs.
The text was updated successfully, but these errors were encountered: