Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 338816

Summary: Resetting a perspective with multiple minimized stacks causes 'widget is disposed' errors
Product: [Eclipse Project] e4 Reporter: Eric Moffatt <emoffatt>
Component: UIAssignee: Project Inbox <e4.ui-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3    
Version: unspecified   
Target Milestone: 4.1 M6   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Defer the TrimBar layouts using 'asynchExec' none

Description Eric Moffatt CLA 2011-03-03 09:43:29 EST
Found when testing the new min/max work...

This is a bad one; open a fresh session, maximize the editor area and then reset the perspective...whamo !

The workbench is left in an unusable state...
Comment 1 Eric Moffatt CLA 2011-03-03 10:51:25 EST
Created attachment 190278 [details]
Defer the TrimBar layouts using 'asynchExec'


The basic issue was that the TrimBarRenderer would attempt to layout every time one of its children was removed (removeGui calls 'hideChild'). This meant that while the 'resetPerspective' code was removing the trim associated with the perspective it was recursively calling the trimbar's layout...

This patch gathers up all the trim that needs to be adjusted and the layouts happen in a single, deferred, pass.
Comment 2 Eric Moffatt CLA 2011-03-03 10:53:00 EST
Committed in >20110303. Applied the patch.