diff options
author | Tor Norbye <tnorbye@google.com> | 2010-12-15 15:09:54 -0800 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2010-12-15 15:09:54 -0800 |
commit | aef7b875b7e20d0db1631bb2c87145fe95f51906 (patch) | |
tree | 351b2a7699f68372d28240a5f5f736b38faa0779 | |
parent | 1a92c8f793139e3a027941907d949d3685c73628 (diff) | |
parent | 0b53692921647bb943dd858dfb339851379f6233 (diff) | |
download | sdk-aef7b875b7e20d0db1631bb2c87145fe95f51906.zip sdk-aef7b875b7e20d0db1631bb2c87145fe95f51906.tar.gz sdk-aef7b875b7e20d0db1631bb2c87145fe95f51906.tar.bz2 |
Merge "Fix canvas scrolling bug"
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); } }); |