Revert "Capture delayed events and cancel as necessary."

master
Fedor 2019-08-01 03:19:12 +03:00
parent 78293a0cfe
commit b90c7abc6a
4 changed files with 9 additions and 20 deletions

View File

@ -9334,7 +9334,7 @@ nsGlobalWindow::EnterModalState()
topWin->mSuspendedDoc = topDoc; topWin->mSuspendedDoc = topDoc;
if (topDoc) { if (topDoc) {
topDoc->SuppressEventHandling(nsIDocument::eEvents); topDoc->SuppressEventHandling(nsIDocument::eAnimationsOnly);
} }
nsGlobalWindow* inner = topWin->GetCurrentInnerWindowInternal(); nsGlobalWindow* inner = topWin->GetCurrentInnerWindowInternal();
@ -9371,7 +9371,7 @@ nsGlobalWindow::LeaveModalState()
if (topWin->mSuspendedDoc) { if (topWin->mSuspendedDoc) {
nsCOMPtr<nsIDocument> currentDoc = topWin->GetExtantDoc(); nsCOMPtr<nsIDocument> currentDoc = topWin->GetExtantDoc();
topWin->mSuspendedDoc->UnsuppressEventHandlingAndFireEvents(nsIDocument::eEvents, topWin->mSuspendedDoc->UnsuppressEventHandlingAndFireEvents(nsIDocument::eAnimationsOnly,
currentDoc == topWin->mSuspendedDoc); currentDoc == topWin->mSuspendedDoc);
topWin->mSuspendedDoc = nullptr; topWin->mSuspendedDoc = nullptr;
} }

View File

@ -8178,9 +8178,6 @@ PresShell::HandleEventInternal(WidgetEvent* aEvent,
} }
} }
} }
if (aEvent->mMessage == eKeyDown) {
mIsLastKeyDownCanceled = aEvent->mFlags.mDefaultPrevented;
}
break; break;
} }
case eMouseUp: case eMouseUp:
@ -8970,9 +8967,6 @@ PresShell::FireOrClearDelayedEvents(bool aFireEvents)
!doc->EventHandlingSuppressed()) { !doc->EventHandlingSuppressed()) {
nsAutoPtr<DelayedEvent> ev(mDelayedEvents[0].forget()); nsAutoPtr<DelayedEvent> ev(mDelayedEvents[0].forget());
mDelayedEvents.RemoveElementAt(0); mDelayedEvents.RemoveElementAt(0);
if (ev->IsKeyPressEvent() && mIsLastKeyDownCanceled) {
continue;
}
ev->Dispatch(); ev->Dispatch();
} }
if (!doc->EventHandlingSuppressed()) { if (!doc->EventHandlingSuppressed()) {
@ -9767,12 +9761,6 @@ PresShell::DelayedKeyEvent::DelayedKeyEvent(WidgetKeyboardEvent* aEvent) :
mEvent = keyEvent; mEvent = keyEvent;
} }
bool
PresShell::DelayedKeyEvent::IsKeyPressEvent()
{
return mEvent->mMessage == eKeyPress;
}
// Start of DEBUG only code // Start of DEBUG only code
#ifdef DEBUG #ifdef DEBUG

View File

@ -618,7 +618,6 @@ protected:
public: public:
virtual ~DelayedEvent() { } virtual ~DelayedEvent() { }
virtual void Dispatch() { } virtual void Dispatch() { }
virtual bool IsKeyPressEvent() { return false; }
}; };
class DelayedInputEvent : public DelayedEvent class DelayedInputEvent : public DelayedEvent
@ -643,7 +642,6 @@ protected:
{ {
public: public:
explicit DelayedKeyEvent(mozilla::WidgetKeyboardEvent* aEvent); explicit DelayedKeyEvent(mozilla::WidgetKeyboardEvent* aEvent);
virtual bool IsKeyPressEvent() override;
}; };
// Check if aEvent is a mouse event and record the mouse location for later // Check if aEvent is a mouse event and record the mouse location for later
@ -954,8 +952,6 @@ protected:
// Whether the widget has received a paint message yet. // Whether the widget has received a paint message yet.
bool mHasReceivedPaintMessage : 1; bool mHasReceivedPaintMessage : 1;
bool mIsLastKeyDownCanceled : 1;
static bool sDisableNonTestMouseEvents; static bool sDisableNonTestMouseEvents;
}; };

View File

@ -2,6 +2,11 @@
This form triggers a MP and gets filled in.<br> This form triggers a MP and gets filled in.<br>
<form> <form>
Username: <input type="text" id="userfield" name="u"><br> Username: <input type="text" id="userfield" name="u"><br>
Password: <input type="password" id="passfield" name="p" Password: <input type="password" id="passfield" name="p"><br>
oninput="parent.postMessage('filled', '*');"><br> <script>
// Only notify when we fill in the password field.
document.getElementById("passfield").addEventListener("input", function() {
parent.postMessage("filled", "*");
});
</script>
</form> </form>