You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by sm...@apache.org on 2012/05/09 12:40:28 UTC
svn commit: r1336061 - in /pivot/trunk:
tests/src/org/apache/pivot/tests/issues/pivot_738.bxml
wtk/src/org/apache/pivot/wtk/Viewport.java
wtk/src/org/apache/pivot/wtk/skin/ScrollPaneSkin.java
Author: smartini
Date: Wed May 9 10:40:27 2012
New Revision: 1336061
URL: http://svn.apache.org/viewvc?rev=1336061&view=rev
Log:
PIVOT-738, add the repaintAllViewport property as a workaround
Modified:
pivot/trunk/tests/src/org/apache/pivot/tests/issues/pivot_738.bxml
pivot/trunk/wtk/src/org/apache/pivot/wtk/Viewport.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ScrollPaneSkin.java
Modified: pivot/trunk/tests/src/org/apache/pivot/tests/issues/pivot_738.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/issues/pivot_738.bxml?rev=1336061&r1=1336060&r2=1336061&view=diff
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/issues/pivot_738.bxml (original)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/issues/pivot_738.bxml Wed May 9 10:40:27 2012
@@ -36,7 +36,7 @@ limitations under the License.
<ScrollPane horizontalScrollBarPolicy="fill_to_capacity" verticalScrollBarPolicy="fill_to_capacity">
<Border preferredHeight="220">
- <ScrollPane verticalScrollBarPolicy="always">
+ <ScrollPane verticalScrollBarPolicy="always" repaintAllViewport="true">
<TableView bxml:id="listTable">
<columns>
<TableView.Column name="i" width="80"/>
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Viewport.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Viewport.java?rev=1336061&r1=1336060&r2=1336061&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Viewport.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Viewport.java Wed May 9 10:40:27 2012
@@ -67,6 +67,7 @@ public abstract class Viewport extends C
private Component view;
private boolean consumeRepaint = false;
+ private boolean repaintAllViewport = false;
private ViewportListenerList viewportListeners = new ViewportListenerList();
@@ -191,4 +192,24 @@ public abstract class Viewport extends C
public ListenerList<ViewportListener> getViewportListeners() {
return viewportListeners;
}
+
+ /**
+ * Tell if the viewport mode is optimized (repaint only needed area, default), or repaint all
+ *
+ * @return true if optimized, otherwise false
+ */
+ public boolean isRepaintAllViewport() {
+ return repaintAllViewport;
+ }
+
+ /**
+ * Set the viewport mode
+ *
+ * @param repaintAllViewport
+ * true means optimized (repaint only needed area, default), while false means repaint all
+ */
+ public void setRepaintAllViewport(boolean repaintAllViewport) {
+ this.repaintAllViewport = repaintAllViewport;
+ }
+
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ScrollPaneSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ScrollPaneSkin.java?rev=1336061&r1=1336060&r2=1336061&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ScrollPaneSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ScrollPaneSkin.java Wed May 9 10:40:27 2012
@@ -27,17 +27,17 @@ import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.DesktopApplicationContext;
import org.apache.pivot.wtk.Dimensions;
import org.apache.pivot.wtk.Keyboard;
+import org.apache.pivot.wtk.Keyboard.KeyCode;
import org.apache.pivot.wtk.Mouse;
import org.apache.pivot.wtk.Orientation;
import org.apache.pivot.wtk.ScrollBar;
import org.apache.pivot.wtk.ScrollBarValueListener;
import org.apache.pivot.wtk.ScrollPane;
+import org.apache.pivot.wtk.ScrollPane.Corner;
+import org.apache.pivot.wtk.ScrollPane.ScrollBarPolicy;
import org.apache.pivot.wtk.ScrollPaneListener;
import org.apache.pivot.wtk.Viewport;
import org.apache.pivot.wtk.ViewportListener;
-import org.apache.pivot.wtk.Keyboard.KeyCode;
-import org.apache.pivot.wtk.ScrollPane.Corner;
-import org.apache.pivot.wtk.ScrollPane.ScrollBarPolicy;
/**
* Scroll pane skin.
@@ -901,7 +901,6 @@ public class ScrollPaneSkin extends Cont
ScrollPane scrollPane = (ScrollPane)getComponent();
ApplicationContext.DisplayHost displayHost = scrollPane.getDisplay().getDisplayHost();
- // TODO: verify if use non deprecated methods ...
optimizeScrolling = (displayHost.getScale() == 1
&& (DesktopApplicationContext.isActive()
|| (displayHost.getPeer().canDetermineObscurity()
@@ -1023,6 +1022,7 @@ public class ScrollPaneSkin extends Cont
graphics.copyArea(blitX, blitY, blitWidth, blitHeight, 0, -deltaScrollTop);
scrollPane.setConsumeRepaint(true);
+
try {
view.setLocation(view.getX(), columnHeaderHeight - scrollTop);
@@ -1033,8 +1033,16 @@ public class ScrollPaneSkin extends Cont
scrollPane.setConsumeRepaint(false);
}
- scrollPane.repaint(blitX, columnHeaderHeight + (deltaScrollTop > 0 ? blitHeight : 0),
- blitWidth, Math.abs(deltaScrollTop), true);
+ boolean repaintAllViewport = scrollPane.isRepaintAllViewport();
+ if (!repaintAllViewport) {
+ scrollPane.repaint(blitX, (columnHeaderHeight + (deltaScrollTop > 0 ? blitHeight : 0)),
+ blitWidth, Math.abs(deltaScrollTop), true);
+ } else {
+ Bounds viewportBounds = getViewportBounds();
+ scrollPane.repaint(viewportBounds.x, viewportBounds.y,
+ viewportBounds.width, viewportBounds.height, true);
+ }
+
} else {
if (view != null) {
view.setLocation(view.getX(), columnHeaderHeight - scrollTop);