debugViewlet: listen on pane size changes to update the breakpoints max size
fixes #25384
This commit is contained in:
parent
df57723097
commit
840b74974b
1 changed files with 28 additions and 1 deletions
|
@ -10,7 +10,7 @@ import { Action, IAction } from 'vs/base/common/actions';
|
|||
import * as DOM from 'vs/base/browser/dom';
|
||||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { IActionItem } from 'vs/base/browser/ui/actionbar/actionbar';
|
||||
import { PersistentViewsViewlet } from 'vs/workbench/browser/parts/views/viewsViewlet';
|
||||
import { PersistentViewsViewlet, ViewsViewletPanel } from 'vs/workbench/browser/parts/views/viewsViewlet';
|
||||
import { IDebugService, VIEWLET_ID, State, VARIABLES_VIEW_ID, WATCH_VIEW_ID, CALLSTACK_VIEW_ID, BREAKPOINTS_VIEW_ID } from 'vs/workbench/parts/debug/common/debug';
|
||||
import { StartAction, ToggleReplAction, ConfigureAction } from 'vs/workbench/parts/debug/browser/debugActions';
|
||||
import { StartDebugActionItem } from 'vs/workbench/parts/debug/browser/debugActionItems';
|
||||
|
@ -25,11 +25,15 @@ import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
|
|||
import { ViewLocation } from 'vs/workbench/browser/parts/views/viewsRegistry';
|
||||
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
|
||||
import { Constants } from 'vs/editor/common/core/uint';
|
||||
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||
|
||||
export class DebugViewlet extends PersistentViewsViewlet {
|
||||
|
||||
private startDebugActionItem: StartDebugActionItem;
|
||||
private progressRunner: IProgressRunner;
|
||||
private breakpointView: ViewsViewletPanel;
|
||||
private panelListeners = new Map<string, IDisposable>();
|
||||
|
||||
constructor(
|
||||
@ITelemetryService telemetryService: ITelemetryService,
|
||||
|
@ -56,6 +60,7 @@ export class DebugViewlet extends PersistentViewsViewlet {
|
|||
|
||||
const el = parent.getHTMLElement();
|
||||
DOM.addClass(el, 'debug-viewlet');
|
||||
this.updateBreakpointsMaxSize();
|
||||
}
|
||||
|
||||
public focus(): void {
|
||||
|
@ -105,6 +110,28 @@ export class DebugViewlet extends PersistentViewsViewlet {
|
|||
this.progressRunner = null;
|
||||
}
|
||||
}
|
||||
|
||||
addPanel(panel: ViewsViewletPanel, size: number, index?: number): void {
|
||||
super.addPanel(panel, size, index);
|
||||
|
||||
// attach event listener to
|
||||
if (panel.id === BREAKPOINTS_VIEW_ID) {
|
||||
this.breakpointView = panel;
|
||||
} else {
|
||||
this.panelListeners.set(panel.id, panel.onDidChange(() => this.updateBreakpointsMaxSize()));
|
||||
}
|
||||
}
|
||||
|
||||
removePanel(panel: ViewsViewletPanel): void {
|
||||
super.removePanel(panel);
|
||||
dispose(this.panelListeners.get(panel.id));
|
||||
this.panelListeners.delete(panel.id);
|
||||
}
|
||||
|
||||
private updateBreakpointsMaxSize(): void {
|
||||
const allOtherCollapsed = this.views.every(view => !view.isExpanded() || view === this.breakpointView);
|
||||
this.breakpointView.maximumBodySize = allOtherCollapsed ? Constants.MAX_SAFE_SMALL_INTEGER : this.breakpointView.minimumBodySize;
|
||||
}
|
||||
}
|
||||
|
||||
export class FocusVariablesViewAction extends Action {
|
||||
|
|
Loading…
Reference in a new issue