Community
Participate
Working Groups
Created attachment 227731 [details] Progress view Build id: I20130219-1600 When Progress view is refreshed/updated, it is easy to see that "Cancel Operation" button is shown twice. It seems that it is first rendered at the end of the job label and then again on the right side of the view. The one at the end of the label is redundant and causes ugly flickering. The attachment shows how it looks like.
The bug was introduced by a fix for bug 242144. Flickering is caused by additional call to layout() which is called to soon. Here is the relevant stack: ProgressInfoItem.refresh(ProgressInfoItem.java:605) ProgressInfoItem.createChildren(ProgressInfoItem.java:304) ProgressInfoItem.<init>(ProgressInfoItem.java:204) DetailedProgressViewer.createNewItem(DetailedProgressViewer.java:203) DetailedProgressViewer.add(DetailedProgressViewer.java:177) ProgressViewerContentProvider.add(ProgressViewerContentProvider.java:224) ProgressViewUpdater$1.runInUIThread(ProgressViewUpdater.java:297) UIJob$1.run(UIJob.java:95) ... The layout method called on a parent widget uses layout data of child widgets to properly lay out. The above stack shows that getParent().layout(...) is called before setLayoutData(...). The fix is to move createChildren(...) after setLayoutData(...) so that refresh happens when layout data is already set.
Created attachment 228869 [details] Patch v.0.1
+1 for RC1, fix looks good and works.
Fixed with http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=0147f1b2f9c39a018b2844dc3f78cbbb4c0971eb
Verified in the build: I20130516-2200