summaryrefslogtreecommitdiff
path: root/widget
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-06-26 14:07:51 +0200
committerwolfbeast <mcwerewolf@gmail.com>2018-06-26 14:07:51 +0200
commit783b60aae187d75c8c1924eceec8c4c56aa40c5e (patch)
treeb907a7be7d3480710e1686787364fc5c53ed4b7b /widget
parent8a8f0df35849ad27cc8ed1ccce8baead46a7656a (diff)
downloaduxp-783b60aae187d75c8c1924eceec8c4c56aa40c5e.tar.gz
Issue #12 Part 5: WidgetEvent shouldn't mark event as consumed if it's not cancelable.
Currently, EventListenerManager calls WidgetEvent::PreventDefault() when the status is nsEventStatus_eConsumeNoDefault. That causes an unexpected state of events. To solve this, WidgetEvent should do nothing when it's not cancelable but PreventDefault() is called.
Diffstat (limited to 'widget')
-rw-r--r--widget/BasicEvents.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/widget/BasicEvents.h b/widget/BasicEvents.h
index f24d7ca8a9..960cb67c68 100644
--- a/widget/BasicEvents.h
+++ b/widget/BasicEvents.h
@@ -161,6 +161,9 @@ public:
}
inline void PreventDefault(bool aCalledByDefaultHandler = true)
{
+ if (!mCancelable) {
+ return;
+ }
mDefaultPrevented = true;
// Note that even if preventDefault() has already been called by chrome,
// a call of preventDefault() by content needs to overwrite
@@ -175,6 +178,9 @@ public:
// This should be used only before dispatching events into the DOM tree.
inline void PreventDefaultBeforeDispatch()
{
+ if (!mCancelable) {
+ return;
+ }
mDefaultPrevented = true;
}
inline bool DefaultPrevented() const