Community
Participate
Working Groups
When I close my Editor, it gets resized for no reason as it is being closed. this of course causes the Editor's Control to layout, which can be pretty expensive and can cause unnecessary painting. Thread [main] (Suspended (breakpoint at line 103 in org.eclipse.draw2d.LightweightSystem)) org.eclipse.draw2d.LightweightSystem.controlResized() line: 103 org.eclipse.draw2d.LightweightSystem$1.controlResized (org.eclipse.swt.events.ControlEvent) line: 88 org.eclipse.swt.widgets.TypedListener.handleEvent (org.eclipse.swt.widgets.Event) line: 140 org.eclipse.swt.widgets.EventTable.sendEvent (org.eclipse.swt.widgets.Event) line: 75 org.eclipse.swt.widgets.Canvas(org.eclipse.swt.widgets.Widget).sendEvent (int, org.eclipse.swt.widgets.Event) line: 841 org.eclipse.swt.widgets.Canvas(org.eclipse.swt.widgets.Widget).sendEvent (int) line: 846 org.eclipse.swt.widgets.Canvas(org.eclipse.swt.widgets.Control).WM_SIZE (int, int) line: 3776 org.eclipse.swt.widgets.Canvas (org.eclipse.swt.widgets.Scrollable).WM_SIZE(int, int) line: 303 org.eclipse.swt.widgets.Canvas (org.eclipse.swt.widgets.Composite).WM_SIZE(int, int) line: 700 org.eclipse.swt.widgets.Canvas (org.eclipse.swt.widgets.Control).windowProc(int, int, int) line: 2721 org.eclipse.swt.widgets.Display.windowProc(int, int, int, int) line: 1990 org.eclipse.swt.internal.win32.OS.DefWindowProcW(int, int, int, int) line: not available [native method] org.eclipse.swt.internal.win32.OS.DefWindowProc(int, int, int, int) line: 1214 org.eclipse.swt.widgets.Canvas (org.eclipse.swt.widgets.Scrollable).callWindowProc(int, int, int) line: 71 org.eclipse.swt.widgets.Canvas (org.eclipse.swt.widgets.Control).windowProc(int, int, int) line: 2733 org.eclipse.swt.widgets.Display.windowProc(int, int, int, int) line: 1990 org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(int) line: not available [native method] org.eclipse.gef.ui.parts.Splitter (org.eclipse.swt.widgets.Composite).WM_SIZE(int, int) line: 714 org.eclipse.gef.ui.parts.Splitter (org.eclipse.swt.widgets.Control).windowProc(int, int, int) line: 2721 org.eclipse.swt.widgets.Display.windowProc(int, int, int, int) line: 1990 org.eclipse.swt.internal.win32.OS.DefWindowProcW(int, int, int, int) line: not available [native method] org.eclipse.swt.internal.win32.OS.DefWindowProc(int, int, int, int) line: 1214 org.eclipse.gef.ui.parts.Splitter (org.eclipse.swt.widgets.Scrollable).callWindowProc(int, int, int) line: 71 org.eclipse.gef.ui.parts.Splitter (org.eclipse.swt.widgets.Control).windowProc(int, int, int) line: 2733 org.eclipse.swt.widgets.Display.windowProc(int, int, int, int) line: 1990 org.eclipse.swt.internal.win32.OS.SetWindowPos(int, int, int, int, int, int, int) line: not available [native method] org.eclipse.gef.ui.parts.Splitter (org.eclipse.swt.widgets.Control).setBounds(int, int, int, int, int) line: 1744 org.eclipse.gef.ui.parts.Splitter (org.eclipse.swt.widgets.Control).setBounds(int, int, int, int) line: 1729 org.eclipse.swt.layout.FillLayout.layout (org.eclipse.swt.widgets.Composite, boolean) line: 95 org.eclipse.swt.widgets.Composite.WM_SIZE(int, int) line: 699 org.eclipse.swt.widgets.Composite (org.eclipse.swt.widgets.Control).windowProc(int, int, int) line: 2721 org.eclipse.swt.widgets.Display.windowProc(int, int, int, int) line: 1990 org.eclipse.swt.internal.win32.OS.DefWindowProcW(int, int, int, int) line: not available [native method] org.eclipse.swt.internal.win32.OS.DefWindowProc(int, int, int, int) line: 1214 org.eclipse.swt.widgets.Composite (org.eclipse.swt.widgets.Scrollable).callWindowProc(int, int, int) line: 71 org.eclipse.swt.widgets.Composite (org.eclipse.swt.widgets.Control).windowProc(int, int, int) line: 2733 org.eclipse.swt.widgets.Display.windowProc(int, int, int, int) line: 1990 org.eclipse.swt.internal.win32.OS.SetWindowPos(int, int, int, int, int, int, int) line: not available [native method] org.eclipse.swt.widgets.Composite (org.eclipse.swt.widgets.Control).setBounds(int, int, int, int, int) line: 1744 org.eclipse.swt.widgets.Composite (org.eclipse.swt.widgets.Control).setBounds(int, int, int, int) line: 1729 org.eclipse.swt.custom.ViewForm.layout(boolean) line: 335 org.eclipse.swt.custom.ViewForm (org.eclipse.swt.widgets.Composite).layout() line: 272 org.eclipse.swt.custom.ViewForm.setBorderVisible(boolean) line: 591 org.eclipse.ui.internal.EditorPane (org.eclipse.ui.internal.PartPane).setContainer (org.eclipse.ui.internal.ILayoutContainer) line: 343 org.eclipse.ui.internal.EditorWorkbook.remove (org.eclipse.ui.internal.LayoutPart) line: 546 org.eclipse.ui.internal.EditorArea.removeEditor (org.eclipse.ui.internal.EditorPane) line: 184 org.eclipse.ui.internal.EditorPresentation.closeEditor (org.eclipse.ui.internal.EditorPane) line: 81 org.eclipse.ui.internal.EditorPresentation.closeEditor (org.eclipse.ui.IEditorPart) line: 71 org.eclipse.ui.internal.EditorManager.closeEditor (org.eclipse.ui.IEditorReference) line: 110 org.eclipse.ui.internal.WorkbenchPage.closeEditor (org.eclipse.ui.IEditorPart, boolean) line: 714 org.eclipse.ui.internal.CloseEditorAction.run() line: 31 org.eclipse.ui.internal.CloseEditorAction (org.eclipse.jface.action.Action).runWithEvent(org.eclipse.swt.widgets.Event) line: 749 org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (org.eclipse.swt.widgets.Event) line: 407 org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent (org.eclipse.swt.widgets.Event) line: 361 org.eclipse.jface.action.ActionContributionItem.access$0 (org.eclipse.jface.action.ActionContributionItem, org.eclipse.swt.widgets.Event) line: 352 org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEve nt(org.eclipse.swt.widgets.Event) line: 47 org.eclipse.swt.widgets.EventTable.sendEvent (org.eclipse.swt.widgets.Event) line: 75 org.eclipse.swt.widgets.MenuItem (org.eclipse.swt.widgets.Widget).sendEvent(org.eclipse.swt.widgets.Event) line: 825 org.eclipse.swt.widgets.Display.runDeferredEvents() line: 1527 org.eclipse.swt.widgets.Display.readAndDispatch() line: 1289 org.eclipse.ui.internal.Workbench.runEventLoop() line: 1256 org.eclipse.ui.internal.Workbench.run(java.lang.Object) line: 1239 org.eclipse.core.internal.boot.InternalBootLoader.run(java.lang.String, java.net.URL, java.lang.String, java.lang.String[], java.lang.Runnable) line: 739 org.eclipse.core.boot.BootLoader.run(java.lang.String, java.net.URL, java.lang.String, java.lang.String[]) line: 432 EclipseRuntimeLauncher.main(java.lang.String[]) line: 24
If you watch a Java editor as it closes, you will see the source code shift down and right 2 pixels.
Fix released in the HEAD stream (PartPane.java).