Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 55871 Details for
Bug 146894
Update manager paints invalid figures
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
patch forcode review
Patch_146894 (text/plain), 2.62 KB, created by
Alex Boyko
on 2006-12-18 16:07:00 EST
(
hide
)
Description:
patch forcode review
Filename:
MIME Type:
Creator:
Alex Boyko
Created:
2006-12-18 16:07:00 EST
Size:
2.62 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.draw2d >Index: src/org/eclipse/draw2d/DeferredUpdateManager.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.draw2d/src/org/eclipse/draw2d/DeferredUpdateManager.java,v >retrieving revision 1.22 >diff -u -r1.22 DeferredUpdateManager.java >--- src/org/eclipse/draw2d/DeferredUpdateManager.java 5 Apr 2006 14:21:13 -0000 1.22 >+++ src/org/eclipse/draw2d/DeferredUpdateManager.java 18 Dec 2006 20:50:27 -0000 >@@ -52,9 +52,10 @@ > private GraphicsSource graphicsSource; > private List invalidFigures = new ArrayList(); > private IFigure root; >-private boolean updateQueued = false; >+private boolean updateQueued; > > private boolean updating; >+private boolean validating; > private RunnableChain afterUpdate; > > private static class RunnableChain { >@@ -136,19 +137,30 @@ > } > > void paint(GC gc) { >- SWTGraphics graphics = new SWTGraphics(gc); >- if (!updating) { >- /** >- * If a paint occurs not as part of an update, we should notify that the region >- * is being painted. Otherwise, notification already occurs in repairDamage(). >+ if (!validating) { >+ SWTGraphics graphics = new SWTGraphics(gc); >+ if (!updating) { >+ /** >+ * If a paint occurs not as part of an update, we should notify that the region >+ * is being painted. Otherwise, notification already occurs in repairDamage(). >+ */ >+ Rectangle rect = graphics.getClip(new Rectangle()); >+ HashMap map = new HashMap(); >+ map.put(root, rect); >+ firePainting(rect, map); >+ } >+ performValidation(); >+ root.paint(graphics); >+ graphics.dispose(); >+ } else { >+ /* >+ * If figures are being validated then we can simply >+ * add a dirty region here and update will repaint this region with other >+ * dirty regions when it gets to painting. We can't paint if we're not sure >+ * that all figures are valid. > */ >- HashMap map = new HashMap(); >- Rectangle rect = graphics.getClip(new Rectangle()); >- map.put(root, rect); >- firePainting(rect, map); >+ addDirtyRegion(root, new Rectangle(gc.getClipping())); > } >- root.paint(graphics); >- graphics.dispose(); > } > > /** >@@ -181,10 +193,11 @@ > * @see UpdateManager#performValidation() > */ > public void performValidation() { >- if (invalidFigures.isEmpty()) >+ if (invalidFigures.isEmpty() || validating) > return; > try { > IFigure fig; >+ validating = true; > fireValidating(); > for (int i = 0; i < invalidFigures.size(); i++) { > fig = (IFigure) invalidFigures.get(i); >@@ -193,6 +206,7 @@ > } > } finally { > invalidFigures.clear(); >+ validating = false; > } > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 146894
:
54360
|
54567
|
54963
|
55517
|
55530
|
55531
|
55559
|
55871
|
56843