Bug 26490 - [Editor Mgmt] Unnecessary resize on EditorPart shutdown
Summary: [Editor Mgmt] Unnecessary resize on EditorPart shutdown
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.0.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 2.1 M4   Edit
Assignee: Eduardo Pereira CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2002-11-15 11:24 EST by Randy Hudson CLA
Modified: 2002-11-29 16:12 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Randy Hudson CLA 2002-11-15 11:24:11 EST
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
Comment 1 Randy Hudson CLA 2002-11-18 15:39:22 EST
If you watch a Java editor as it closes, you will see the source code shift 
down and right 2 pixels.
Comment 2 Eduardo Pereira CLA 2002-11-29 16:12:32 EST
Fix released in the HEAD stream (PartPane.java).