aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2010-12-15 15:09:54 -0800
committerAndroid Code Review <code-review@android.com>2010-12-15 15:09:54 -0800
commitaef7b875b7e20d0db1631bb2c87145fe95f51906 (patch)
tree351b2a7699f68372d28240a5f5f736b38faa0779
parent1a92c8f793139e3a027941907d949d3685c73628 (diff)
parent0b53692921647bb943dd858dfb339851379f6233 (diff)
downloadsdk-aef7b875b7e20d0db1631bb2c87145fe95f51906.zip
sdk-aef7b875b7e20d0db1631bb2c87145fe95f51906.tar.gz
sdk-aef7b875b7e20d0db1631bb2c87145fe95f51906.tar.bz2
Merge "Fix canvas scrolling bug"
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasTransform.java21
-rwxr-xr-xeclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvas.java4
2 files changed, 17 insertions, 8 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasTransform.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasTransform.java
index f905f35..831367a 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasTransform.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasTransform.java
@@ -108,6 +108,7 @@ public class CanvasTransform implements ICanvasTransform {
/** Changes the size of the client size. Recomputes scrollbars. */
public void setClientSize(int clientSize) {
mClientSize = clientSize;
+ mScrollbar.setPageIncrement(clientSize);
resizeScrollbar();
}
@@ -119,14 +120,26 @@ public class CanvasTransform implements ICanvasTransform {
int cx = mClientSize - 2 * IMAGE_MARGIN;
if (sx < cx) {
+ mTranslate = 0;
mScrollbar.setEnabled(false);
} else {
mScrollbar.setEnabled(true);
- // max scroll value is the scaled image size
- // thumb value is the actual viewable area out of the scaled img size
- mScrollbar.setMaximum(sx);
- mScrollbar.setThumb(cx);
+ int selection = mScrollbar.getSelection();
+ int thumb = cx;
+ int maximum = sx;
+
+ if (selection + thumb > maximum) {
+ selection = maximum - thumb;
+ if (selection < 0) {
+ selection = 0;
+ }
+ }
+
+ mScrollbar.setValues(selection, mScrollbar.getMinimum(), maximum, thumb, mScrollbar
+ .getIncrement(), mScrollbar.getPageIncrement());
+
+ mTranslate = selection;
}
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvas.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvas.java
index a49505d..4f7faa6 100755
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvas.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvas.java
@@ -253,10 +253,6 @@ class LayoutCanvas extends Canvas {
super.controlResized(e);
mHScale.setClientSize(getClientArea().width);
mVScale.setClientSize(getClientArea().height);
-
- Rectangle canvasBounds = LayoutCanvas.this.getBounds();
- getHorizontalBar().setPageIncrement(canvasBounds.width);
- getVerticalBar().setPageIncrement(canvasBounds.height);
}
});