зеркало из https://github.com/mozilla/gecko-dev.git
bug 761503 - return a bool from PumpMessageLoop to indicate if work was performed r=snorp
This commit is contained in:
Родитель
11e82908b9
Коммит
c6affc91f4
|
@ -91,7 +91,7 @@ MessagePump::Run(MessagePump::Delegate* aDelegate)
|
|||
// This processes messages in the Android Looper. Note that we only
|
||||
// get here if the normal Gecko event loop has been awoken above.
|
||||
// Bug 750713
|
||||
AndroidBridge::Bridge()->PumpMessageLoop();
|
||||
did_work |= AndroidBridge::Bridge()->PumpMessageLoop();
|
||||
#endif
|
||||
|
||||
did_work |= aDelegate->DoDelayedWork(&delayed_work_time_);
|
||||
|
|
|
@ -2105,16 +2105,17 @@ public class GeckoAppShell
|
|||
GeckoScreenOrientationListener.getInstance().unlockScreenOrientation();
|
||||
}
|
||||
|
||||
public static void pumpMessageLoop() {
|
||||
public static boolean pumpMessageLoop() {
|
||||
MessageQueue mq = Looper.myQueue();
|
||||
Message msg = getNextMessageFromQueue(mq);
|
||||
if (msg == null)
|
||||
return;
|
||||
if (msg.getTarget() == null)
|
||||
return false;
|
||||
if (msg.getTarget() == null)
|
||||
Looper.myLooper().quit();
|
||||
else
|
||||
msg.getTarget().dispatchMessage(msg);
|
||||
msg.recycle();
|
||||
return true;
|
||||
}
|
||||
|
||||
static class AsyncResultHandler extends GeckoApp.FilePickerResultHandler {
|
||||
|
|
|
@ -184,7 +184,7 @@ AndroidBridge::Init(JNIEnv *jEnv,
|
|||
jSurfacePointerField = jEnv->GetFieldID(jSurfaceClass, "mNativeSurface", "I");
|
||||
|
||||
#ifdef MOZ_JAVA_COMPOSITOR
|
||||
jPumpMessageLoop = (jmethodID) jEnv->GetStaticMethodID(jGeckoAppShellClass, "pumpMessageLoop", "()V");
|
||||
jPumpMessageLoop = (jmethodID) jEnv->GetStaticMethodID(jGeckoAppShellClass, "pumpMessageLoop", "()Z");
|
||||
|
||||
jAddPluginView = jEnv->GetStaticMethodID(jGeckoAppShellClass, "addPluginView", "(Landroid/view/View;IIIIZI)V");
|
||||
jRemovePluginView = jEnv->GetStaticMethodID(jGeckoAppShellClass, "removePluginView", "(Landroid/view/View;Z)V");
|
||||
|
@ -2281,20 +2281,20 @@ AndroidBridge::UnlockScreenOrientation()
|
|||
env->CallStaticVoidMethod(mGeckoAppShellClass, jUnlockScreenOrientation);
|
||||
}
|
||||
|
||||
void
|
||||
bool
|
||||
AndroidBridge::PumpMessageLoop()
|
||||
{
|
||||
#if MOZ_JAVA_COMPOSITOR
|
||||
JNIEnv* env = GetJNIEnv();
|
||||
if (!env)
|
||||
return;
|
||||
return false;
|
||||
|
||||
AutoLocalJNIFrame jniFrame(env, 0);
|
||||
|
||||
if ((void*)pthread_self() != mThread)
|
||||
return;
|
||||
return false;
|
||||
|
||||
env->CallStaticVoidMethod(mGeckoAppShellClass, jPumpMessageLoop);
|
||||
return env->CallStaticBooleanMethod(mGeckoAppShellClass, jPumpMessageLoop);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -353,7 +353,7 @@ public:
|
|||
void LockScreenOrientation(uint32_t aOrientation);
|
||||
void UnlockScreenOrientation();
|
||||
|
||||
void PumpMessageLoop();
|
||||
bool PumpMessageLoop();
|
||||
|
||||
protected:
|
||||
static AndroidBridge *sBridge;
|
||||
|
|
Загрузка…
Ссылка в новой задаче