Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f077739 authored by John Reck's avatar John Reck Committed by Android Git Automerger
Browse files

am 843e04d9: Merge "Pause drawing when not visible" into ics-mr1

* commit '843e04d9':
  Pause drawing when not visible
parents 9e2949c6 843e04d9
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -3254,6 +3254,26 @@ public class WebView extends AbsoluteLayout
            if (mHTML5VideoViewProxy != null) {
                mHTML5VideoViewProxy.pauseAndDispatch();
            }
            if (mNativeClass != 0) {
                nativeSetPauseDrawing(mNativeClass, true);
            }
        }
    }

    @Override
    protected void onWindowVisibilityChanged(int visibility) {
        super.onWindowVisibilityChanged(visibility);
        updateDrawingState();
    }

    void updateDrawingState() {
        if (mNativeClass == 0 || mIsPaused) return;
        if (getWindowVisibility() != VISIBLE) {
            nativeSetPauseDrawing(mNativeClass, true);
        } else if (getVisibility() != VISIBLE) {
            nativeSetPauseDrawing(mNativeClass, true);
        } else {
            nativeSetPauseDrawing(mNativeClass, false);
        }
    }

@@ -3265,6 +3285,9 @@ public class WebView extends AbsoluteLayout
        if (mIsPaused) {
            mIsPaused = false;
            mWebViewCore.sendMessage(EventHub.ON_RESUME);
            if (mNativeClass != 0) {
                nativeSetPauseDrawing(mNativeClass, false);
            }
        }
    }

@@ -5599,6 +5622,7 @@ public class WebView extends AbsoluteLayout
        if (visibility != View.VISIBLE && mZoomManager != null) {
            mZoomManager.dismissZoomPicker();
        }
        updateDrawingState();
    }

    /**
@@ -8403,6 +8427,9 @@ public class WebView extends AbsoluteLayout
                        setNewPicture(mDelaySetPicture, true);
                        mDelaySetPicture = null;
                    }
                    if (mIsPaused) {
                        nativeSetPauseDrawing(mNativeClass, true);
                    }
                    break;
                case UPDATE_TEXTFIELD_TEXT_MSG_ID:
                    // Make sure that the textfield is currently focused
@@ -9581,4 +9608,5 @@ public class WebView extends AbsoluteLayout
     * See {@link ComponentCallbacks2} for the trim levels and descriptions
     */
    private static native void     nativeOnTrimMemory(int level);
    private static native void nativeSetPauseDrawing(int instance, boolean pause);
}