コード例 #1
0
  /** Attaches the root layer to the layer controller so that Gecko appears. */
  @Override
  public void setLayerController(LayerController layerController) {
    super.setLayerController(layerController);

    layerController.setRoot(mTileLayer);
    if (mGeckoViewport != null) {
      layerController.setViewportMetrics(mGeckoViewport);
    }

    GeckoAppShell.registerGeckoEventListener("Viewport:UpdateAndDraw", this);
    GeckoAppShell.registerGeckoEventListener("Viewport:UpdateLater", this);
    GeckoAppShell.registerGeckoEventListener("Checkerboard:Toggle", this);

    sendResizeEventIfNecessary();
  }
コード例 #2
0
  private void updateViewport(final boolean onlyUpdatePageSize) {
    // save and restore the viewport size stored in java; never let the
    // JS-side viewport dimensions override the java-side ones because
    // java is the One True Source of this information, and allowing JS
    // to override can lead to race conditions where this data gets clobbered.
    FloatSize viewportSize = getLayerController().getViewportSize();
    mGeckoViewport = mNewGeckoViewport;
    mGeckoViewport.setSize(viewportSize);

    LayerController controller = getLayerController();
    PointF displayportOrigin = mGeckoViewport.getDisplayportOrigin();
    mTileLayer.setOrigin(PointUtils.round(displayportOrigin));
    mTileLayer.setResolution(mGeckoViewport.getZoomFactor());

    if (onlyUpdatePageSize) {
      // Don't adjust page size when zooming unless zoom levels are
      // approximately equal.
      if (FloatUtils.fuzzyEquals(controller.getZoomFactor(), mGeckoViewport.getZoomFactor()))
        controller.setPageSize(mGeckoViewport.getPageSize());
    } else {
      controller.setViewportMetrics(mGeckoViewport);
      controller.abortPanZoomAnimation();
    }
  }