fix navscreen orientation

    handle configuration change in navscreen
    capture actual screen for tabs
    size tabs correctly

Change-Id: I20ff72bdcab13678cdba4c55849bd5ff16cb6568
diff --git a/src/com/android/browser/BrowserWebView.java b/src/com/android/browser/BrowserWebView.java
index 9be9ad9..a1d8c2d 100644
--- a/src/com/android/browser/BrowserWebView.java
+++ b/src/com/android/browser/BrowserWebView.java
@@ -36,6 +36,7 @@
     private boolean mBackgroundRemoved = false;
     private boolean mUserInitiated = false;
     private TitleBarBase mTitleBar;
+    private int mCaptureSize;
     private Bitmap mCapture;
 
     /**
@@ -57,6 +58,7 @@
     public BrowserWebView(
             Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {
         super(context, attrs, defStyle, privateBrowsing);
+        init();
     }
 
     /**
@@ -65,6 +67,7 @@
      */
     public BrowserWebView(Context context, AttributeSet attrs) {
         super(context, attrs);
+        init();
     }
 
     /**
@@ -72,12 +75,13 @@
      */
     public BrowserWebView(Context context) {
         super(context);
+        init();
     }
 
-    @Override
-    protected void onSizeChanged(int w, int h, int ow, int oh) {
-        super.onSizeChanged(w, h, ow, oh);
-        mCapture = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
+    private void init() {
+        mCaptureSize = mContext.getResources().getDimensionPixelSize(R.dimen.tab_capture_size);
+        mCapture = Bitmap.createBitmap(mCaptureSize, mCaptureSize,
+                Bitmap.Config.RGB_565);
     }
 
     @Override
@@ -150,7 +154,11 @@
     protected Bitmap capture() {
         if (mCapture == null) return null;
         Canvas c = new Canvas(mCapture);
-        c.translate(-getScrollX(), -(getScrollY() + getVisibleTitleHeight()));
+        final int left = getScrollX();
+        final int top = getScrollY() + getVisibleTitleHeight();
+        c.translate(-left, -top);
+        float scale = mCaptureSize / (float) Math.max(getWidth(), getHeight());
+        c.scale(scale, scale, left, top);
         onDraw(c);
         return mCapture;
     }