mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1085591: Move most initialization off of onWindowFocusChanged; r=mhaigh
This commit is contained in:
parent
4e621d36af
commit
531c7fa95d
@ -87,6 +87,7 @@ import android.view.SurfaceView;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewStub;
|
import android.view.ViewStub;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.widget.AbsoluteLayout;
|
import android.widget.AbsoluteLayout;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
@ -125,7 +126,8 @@ public abstract class GeckoApp
|
|||||||
LocationListener,
|
LocationListener,
|
||||||
NativeEventListener,
|
NativeEventListener,
|
||||||
SensorEventListener,
|
SensorEventListener,
|
||||||
Tabs.OnTabsChangedListener {
|
Tabs.OnTabsChangedListener,
|
||||||
|
ViewTreeObserver.OnGlobalLayoutListener {
|
||||||
|
|
||||||
private static final String LOGTAG = "GeckoApp";
|
private static final String LOGTAG = "GeckoApp";
|
||||||
private static final int ONE_DAY_MS = 1000*60*60*24;
|
private static final int ONE_DAY_MS = 1000*60*60*24;
|
||||||
@ -189,6 +191,7 @@ public abstract class GeckoApp
|
|||||||
|
|
||||||
protected boolean mShouldRestore;
|
protected boolean mShouldRestore;
|
||||||
protected boolean mInitialized;
|
protected boolean mInitialized;
|
||||||
|
protected boolean mWindowFocusInitialized;
|
||||||
private Telemetry.Timer mJavaUiStartupTimer;
|
private Telemetry.Timer mJavaUiStartupTimer;
|
||||||
private Telemetry.Timer mGeckoReadyStartupTimer;
|
private Telemetry.Timer mGeckoReadyStartupTimer;
|
||||||
|
|
||||||
@ -1281,6 +1284,9 @@ public abstract class GeckoApp
|
|||||||
mMainLayout = (RelativeLayout) findViewById(R.id.main_layout);
|
mMainLayout = (RelativeLayout) findViewById(R.id.main_layout);
|
||||||
mLayerView = (LayerView) findViewById(R.id.layer_view);
|
mLayerView = (LayerView) findViewById(R.id.layer_view);
|
||||||
|
|
||||||
|
// Use global layout state change to kick off additional initialization
|
||||||
|
mMainLayout.getViewTreeObserver().addOnGlobalLayoutListener(this);
|
||||||
|
|
||||||
// Determine whether we should restore tabs.
|
// Determine whether we should restore tabs.
|
||||||
mShouldRestore = getSessionRestoreState(savedInstanceState);
|
mShouldRestore = getSessionRestoreState(savedInstanceState);
|
||||||
if (mShouldRestore && savedInstanceState != null) {
|
if (mShouldRestore && savedInstanceState != null) {
|
||||||
@ -1418,13 +1424,6 @@ public abstract class GeckoApp
|
|||||||
((SurfaceView)mCameraView).getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
|
((SurfaceView)mCameraView).getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX our editor tests require the GeckoView to have focus to pass, so we have to
|
|
||||||
// manually shift focus to the GeckoView. requestFocus apparently doesn't work at
|
|
||||||
// this stage of starting up, so we have to unset and reset the focusability.
|
|
||||||
mLayerView.setFocusable(false);
|
|
||||||
mLayerView.setFocusable(true);
|
|
||||||
mLayerView.setFocusableInTouchMode(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1617,6 +1616,18 @@ public abstract class GeckoApp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGlobalLayout() {
|
||||||
|
if (Versions.preJB) {
|
||||||
|
mMainLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
|
||||||
|
} else {
|
||||||
|
mMainLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
|
}
|
||||||
|
if (!mInitialized) {
|
||||||
|
initialize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void processActionViewIntent(final Runnable openTabsRunnable) {
|
protected void processActionViewIntent(final Runnable openTabsRunnable) {
|
||||||
// We need to ensure that if we receive a VIEW action and there are tabs queued then the
|
// We need to ensure that if we receive a VIEW action and there are tabs queued then the
|
||||||
// site loaded from the intent is on top (last loaded) and selected with all other tabs
|
// site loaded from the intent is on top (last loaded) and selected with all other tabs
|
||||||
@ -1953,8 +1964,14 @@ public abstract class GeckoApp
|
|||||||
public void onWindowFocusChanged(boolean hasFocus) {
|
public void onWindowFocusChanged(boolean hasFocus) {
|
||||||
super.onWindowFocusChanged(hasFocus);
|
super.onWindowFocusChanged(hasFocus);
|
||||||
|
|
||||||
if (!mInitialized && hasFocus) {
|
if (!mWindowFocusInitialized && hasFocus) {
|
||||||
initialize();
|
mWindowFocusInitialized = true;
|
||||||
|
// XXX our editor tests require the GeckoView to have focus to pass, so we have to
|
||||||
|
// manually shift focus to the GeckoView. requestFocus apparently doesn't work at
|
||||||
|
// this stage of starting up, so we have to unset and reset the focusability.
|
||||||
|
mLayerView.setFocusable(false);
|
||||||
|
mLayerView.setFocusable(true);
|
||||||
|
mLayerView.setFocusableInTouchMode(true);
|
||||||
getWindow().setBackgroundDrawable(null);
|
getWindow().setBackgroundDrawable(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user