mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-07 11:56:51 +00:00
Merge m-c to inbound.
This commit is contained in:
commit
0dc4460fb2
2
CLOBBER
2
CLOBBER
@ -22,4 +22,4 @@
|
||||
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
|
||||
# don't change CLOBBER for WebIDL changes any more.
|
||||
|
||||
Bug 932982 apparently requires a clobber or else we get B2G mochitest-2 failures.
|
||||
Bug 878935 landed without a UUID change (and was since backed out)
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "nsIObserverService.h"
|
||||
#include "nsServiceManagerUtils.h"
|
||||
#include "mozilla/AutoRestore.h"
|
||||
#include "mozilla/TimeStamp.h"
|
||||
#include "WinUtils.h"
|
||||
#include "nsIAppStartup.h"
|
||||
#include "nsToolkitCompsCID.h"
|
||||
@ -49,6 +50,7 @@ static ComPtr<ICoreWindowStatic> sCoreStatic;
|
||||
static bool sIsDispatching = false;
|
||||
static bool sShouldPurgeThreadQueue = false;
|
||||
static bool sBlockNativeEvents = false;
|
||||
static TimeStamp sPurgeThreadQueueStart;
|
||||
|
||||
MetroAppShell::~MetroAppShell()
|
||||
{
|
||||
@ -283,6 +285,7 @@ MetroAppShell::DispatchAllGeckoEvents()
|
||||
NS_ASSERTION(NS_IsMainThread(), "DispatchAllGeckoEvents should be called on the main thread");
|
||||
|
||||
sShouldPurgeThreadQueue = false;
|
||||
sPurgeThreadQueueStart = TimeStamp::Now();
|
||||
|
||||
sBlockNativeEvents = true;
|
||||
nsIThread *thread = NS_GetCurrentThread();
|
||||
@ -335,13 +338,17 @@ MetroAppShell::ProcessOneNativeEventIfPresent()
|
||||
bool
|
||||
MetroAppShell::ProcessNextNativeEvent(bool mayWait)
|
||||
{
|
||||
// NS_ProcessPendingEvents will process thread events *and* call
|
||||
// nsBaseAppShell::OnProcessNextEvent to process native events. However
|
||||
// we do not want native events getting dispatched while we are trying
|
||||
// NS_ProcessPendingEvents will process thread events *and* call
|
||||
// nsBaseAppShell::OnProcessNextEvent to process native events. However
|
||||
// we do not want native events getting dispatched while we are trying
|
||||
// to dispatch pending input in DispatchAllGeckoEvents since a native
|
||||
// event may be a UIA Automation call coming in to check focus.
|
||||
if (sBlockNativeEvents) {
|
||||
return false;
|
||||
if ((TimeStamp::Now() - sPurgeThreadQueueStart).ToMilliseconds()
|
||||
< PURGE_MAX_TIMEOUT) {
|
||||
return false;
|
||||
}
|
||||
sBlockNativeEvents = false;
|
||||
}
|
||||
|
||||
if (ProcessOneNativeEventIfPresent()) {
|
||||
|
Loading…
Reference in New Issue
Block a user