mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
f7d677cddd
- Bug 1168263 - Exclude perspective transforms from the transform used to convert from screen coordinates to an APZC's coordinate space. r=kats (dab02eb359) - Bug 1225950 - Remove unnecessary parameter from SetNeedsComposite. r=mchang (0fb6099bd5) - Bug 1225950 - Make mNeedsComposite a counter rather than a boolean. r=mchang (4d46dba314) - Bug 1225950 - Force a composite if we have requested one but haven't gotten a vsync in a while. r=mchang (06f0d4553e) - Bug 1221697 - Add a telemetry probe for time-to-composite. r=kats (c333e2ea87) - Bug 1213120 - Ensure we don't try to use an uninitialized map. r=BenWa (99069b78fe) - Bug 1228133 - Guard against a race condition that could result in an illegal pointer access. r=BenWa (65e1393908) - update, mostly shadow warnings (5ca9c8ec0c) - Bug 1119106 - Increase the radio button rendering bottom margin on 10.10 so that the button hits its frame more accurately. r=smichaud (2b55533095) - Bug 1221451: Don't pass nil when an argument is required. r=spohl (7adfcf2543) - Bug 1153579 - Fix -Wpointer-bool-conversion warning by removing null check of an array address. r=mstange (8c7ad82e8f) - Bug 1204620 - Don't prepend 'image.' to CUIDraw image names on 10.11. r=stefanh (9a4794ecd4) - Bug 1181289 - Specify size: small when drawing small scrollbars with CoreUI. r=smichaud (e75bff6036) - Bug 1138359 - Make the margins of native-themed Cocoa buttons aware of writing mode. r=smontagu (49afef0f00) - Bug 1220358 - Fix -Wunreachable-code warnings in widget/cocoa. r=spohl (720c720afc) - fixup widget/ios from EventMessage change (no bug, NPOTB) (ab33d61f95) - Bug 1217818 - Add support for the mHandledByAPZ flag on touch events as well. r=botond (d4658c671a) - Bug 1209772 - 'mozregression was installed. please re-run your command.' when running ./mach mozregression. r=ahal (5febef290b) - Bug 1204787 - Add |mach power|. r=glandium. (5a0d84f480) - Bug 1214924 - Add "WindowServer" and "kernel" processes to |mach power|'s output. r=BenWa. (89c3a515f7) - Bug 1197694 - fflush() rapl output so it always appears immediately. r=erahm. (052568f395) - Bug 1194560 (follow-up) - Only build rapl on Linux if the arch is x86 or x86-64. r=glandium. (0101937ffa) - Bug 1198137 - Add some summary stats to tool/power/rapl's output. r=erahm. (53052f366b) - Bug 1198137 (follow-up) - Add a missing #include to unbreak Mac OS builds on a CLOSED TREE. r=me (27862d34ff) - Bug 1203834 - Fix's rapl's handling of unsupported power domains. r=glandium. (facb022467) - Bug 1203811 - Clarify two error messages in tools/power/rapl. r=heycam. (07a6bb847e) - Bug 1201811 (part 1) - Don't use integer arithmetic when summing totals in rapl. r=erahm. (57a1de1376) - Bug 1201811 (part 2) - Don't print distribution stats if there was only 1 sample. r=erahm. (e5c085a4df) - Bug 1222887 - Suppress -Wunreachable-code warning in tools/power. r=njn (4fbbbe81e1) - Bug 1222352 - Resource Timing - nextHopProtocol does not work in e10s r=nwgh (57029cf33d) - Bug 1211636 - use ToInteger64 in PopulateFromSuffix. r=bholley (d67e5fe9d1) - Bug 961049 - Part 2: Remove Utilities.h; r=baku (3c09679a40) - Bug 961049 - Part 3: Move PersistenceType serializer from indexedDB to quota module; r=baku (021478905a) - Bug 1186809 (part 1) - Replace nsBaseHashtable::EnumerateRead() calls in dom/quota/ with iterators. r=janv. (8933726851) - Bug 1186809 (part 2) - Replace nsBaseHashtable::EnumerateRead() calls in dom/quota/ with iterators. r=janv. (cb7c6f27dc) - Bug 1186809 (part 3) - Replace nsBaseHashtable::EnumerateRead() calls in dom/quota/ with iterators. r=janv. (1ded98347c) - Bug 1187151 (part 1) - Replace nsBaseHashtable::Enumerate() calls in dom/base/ with iterators. r=khuey. (a409e8590e) - Bug 1187151 (part 2) - Replace nsBaseHashtable::Enumerate() calls in dom/base/ with iterators. r=janv. (bd4fe93dfc) - Bug 1187151 (part 3) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (de0f2dda26) - Bug 1187151 (part 4) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (e72d744118) - Bug 1187151 (part 5) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (18eddd5225) - Bug 1187151 (part 6) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (36fb6272e1) - Bug 1187151 (part 7) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (594438d35f) - Bug 1187151 (part 8) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (d8de2742d8) - Bug 1187151 (part 9) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (d2b4a29111) - missing namespace (0b0453cc40) - Bug 1187701 - add_task function for mochitest chrome and plain; r=jmaher (1c31a40c7c) - Bug 1223831 - SpecialPowers API to create files in an e10s-compatible way. r=jmaher,baku (a04646cb50) - Bug 1178526 - Create docshell with packageId from TabContext. r=sicking. (c89edfc7ab) - Bug 1217694 - Signed package should come from the moz-package-origin specified in its manifest. r=valentin (705aeae07a) - Bug 1225422 - Update the PrivilegedPackageRoot certificate. r=keeler (2a90eed63c) - Bug 1204301 - HttpChannelParent needs to be able to GetInterface to an nsIPrompt. r=billm. (4937a2fbbe)
219 lines
6.7 KiB
C++
219 lines
6.7 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla_TouchEvents_h__
|
|
#define mozilla_TouchEvents_h__
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "mozilla/dom/Touch.h"
|
|
#include "mozilla/MouseEvents.h"
|
|
#include "nsAutoPtr.h"
|
|
#include "nsIDOMSimpleGestureEvent.h"
|
|
#include "nsTArray.h"
|
|
|
|
namespace mozilla {
|
|
|
|
/******************************************************************************
|
|
* mozilla::WidgetGestureNotifyEvent
|
|
*
|
|
* This event is the first event generated when the user touches
|
|
* the screen with a finger, and it's meant to decide what kind
|
|
* of action we'll use for that touch interaction.
|
|
*
|
|
* The event is dispatched to the layout and based on what is underneath
|
|
* the initial contact point it's then decided if we should pan
|
|
* (finger scrolling) or drag the target element.
|
|
******************************************************************************/
|
|
|
|
class WidgetGestureNotifyEvent : public WidgetGUIEvent
|
|
{
|
|
public:
|
|
virtual WidgetGestureNotifyEvent* AsGestureNotifyEvent() override
|
|
{
|
|
return this;
|
|
}
|
|
|
|
WidgetGestureNotifyEvent(bool aIsTrusted, EventMessage aMessage,
|
|
nsIWidget *aWidget)
|
|
: WidgetGUIEvent(aIsTrusted, aMessage, aWidget, eGestureNotifyEventClass)
|
|
, panDirection(ePanNone)
|
|
, displayPanFeedback(false)
|
|
{
|
|
}
|
|
|
|
virtual WidgetEvent* Duplicate() const override
|
|
{
|
|
// XXX Looks like this event is handled only in PostHandleEvent() of
|
|
// EventStateManager. Therefore, it might be possible to handle this
|
|
// in PreHandleEvent() and not to dispatch as a DOM event into the DOM
|
|
// tree like ContentQueryEvent. Then, this event doesn't need to
|
|
// support Duplicate().
|
|
MOZ_ASSERT(mClass == eGestureNotifyEventClass,
|
|
"Duplicate() must be overridden by sub class");
|
|
// Not copying widget, it is a weak reference.
|
|
WidgetGestureNotifyEvent* result =
|
|
new WidgetGestureNotifyEvent(false, mMessage, nullptr);
|
|
result->AssignGestureNotifyEventData(*this, true);
|
|
result->mFlags = mFlags;
|
|
return result;
|
|
}
|
|
|
|
enum ePanDirection
|
|
{
|
|
ePanNone,
|
|
ePanVertical,
|
|
ePanHorizontal,
|
|
ePanBoth
|
|
};
|
|
|
|
ePanDirection panDirection;
|
|
bool displayPanFeedback;
|
|
|
|
void AssignGestureNotifyEventData(const WidgetGestureNotifyEvent& aEvent,
|
|
bool aCopyTargets)
|
|
{
|
|
AssignGUIEventData(aEvent, aCopyTargets);
|
|
|
|
panDirection = aEvent.panDirection;
|
|
displayPanFeedback = aEvent.displayPanFeedback;
|
|
}
|
|
};
|
|
|
|
/******************************************************************************
|
|
* mozilla::WidgetTouchEvent
|
|
******************************************************************************/
|
|
|
|
class WidgetSimpleGestureEvent : public WidgetMouseEventBase
|
|
{
|
|
public:
|
|
virtual WidgetSimpleGestureEvent* AsSimpleGestureEvent() override
|
|
{
|
|
return this;
|
|
}
|
|
|
|
WidgetSimpleGestureEvent(bool aIsTrusted, EventMessage aMessage,
|
|
nsIWidget* aWidget)
|
|
: WidgetMouseEventBase(aIsTrusted, aMessage, aWidget,
|
|
eSimpleGestureEventClass)
|
|
, allowedDirections(0)
|
|
, direction(0)
|
|
, delta(0.0)
|
|
, clickCount(0)
|
|
{
|
|
}
|
|
|
|
WidgetSimpleGestureEvent(const WidgetSimpleGestureEvent& aOther)
|
|
: WidgetMouseEventBase(aOther.mFlags.mIsTrusted, aOther.mMessage,
|
|
aOther.widget, eSimpleGestureEventClass)
|
|
, allowedDirections(aOther.allowedDirections)
|
|
, direction(aOther.direction)
|
|
, delta(aOther.delta)
|
|
, clickCount(0)
|
|
{
|
|
}
|
|
|
|
virtual WidgetEvent* Duplicate() const override
|
|
{
|
|
MOZ_ASSERT(mClass == eSimpleGestureEventClass,
|
|
"Duplicate() must be overridden by sub class");
|
|
// Not copying widget, it is a weak reference.
|
|
WidgetSimpleGestureEvent* result =
|
|
new WidgetSimpleGestureEvent(false, mMessage, nullptr);
|
|
result->AssignSimpleGestureEventData(*this, true);
|
|
result->mFlags = mFlags;
|
|
return result;
|
|
}
|
|
|
|
// See nsIDOMSimpleGestureEvent for values
|
|
uint32_t allowedDirections;
|
|
// See nsIDOMSimpleGestureEvent for values
|
|
uint32_t direction;
|
|
// Delta for magnify and rotate events
|
|
double delta;
|
|
// The number of taps for tap events
|
|
uint32_t clickCount;
|
|
|
|
// XXX Not tested by test_assign_event_data.html
|
|
void AssignSimpleGestureEventData(const WidgetSimpleGestureEvent& aEvent,
|
|
bool aCopyTargets)
|
|
{
|
|
AssignMouseEventBaseData(aEvent, aCopyTargets);
|
|
|
|
// allowedDirections isn't copied
|
|
direction = aEvent.direction;
|
|
delta = aEvent.delta;
|
|
clickCount = aEvent.clickCount;
|
|
}
|
|
};
|
|
|
|
/******************************************************************************
|
|
* mozilla::WidgetTouchEvent
|
|
******************************************************************************/
|
|
|
|
class WidgetTouchEvent : public WidgetInputEvent
|
|
{
|
|
public:
|
|
typedef nsTArray<RefPtr<mozilla::dom::Touch>> TouchArray;
|
|
typedef nsAutoTArray<RefPtr<mozilla::dom::Touch>, 10> AutoTouchArray;
|
|
|
|
virtual WidgetTouchEvent* AsTouchEvent() override { return this; }
|
|
|
|
WidgetTouchEvent()
|
|
{
|
|
}
|
|
|
|
WidgetTouchEvent(const WidgetTouchEvent& aOther)
|
|
: WidgetInputEvent(aOther.mFlags.mIsTrusted, aOther.mMessage, aOther.widget,
|
|
eTouchEventClass)
|
|
{
|
|
modifiers = aOther.modifiers;
|
|
time = aOther.time;
|
|
timeStamp = aOther.timeStamp;
|
|
touches.AppendElements(aOther.touches);
|
|
mFlags.mCancelable = mMessage != eTouchCancel;
|
|
mFlags.mHandledByAPZ = aOther.mFlags.mHandledByAPZ;
|
|
MOZ_COUNT_CTOR(WidgetTouchEvent);
|
|
}
|
|
|
|
WidgetTouchEvent(bool aIsTrusted, EventMessage aMessage, nsIWidget* aWidget)
|
|
: WidgetInputEvent(aIsTrusted, aMessage, aWidget, eTouchEventClass)
|
|
{
|
|
MOZ_COUNT_CTOR(WidgetTouchEvent);
|
|
mFlags.mCancelable = mMessage != eTouchCancel;
|
|
}
|
|
|
|
virtual ~WidgetTouchEvent()
|
|
{
|
|
MOZ_COUNT_DTOR(WidgetTouchEvent);
|
|
}
|
|
|
|
virtual WidgetEvent* Duplicate() const override
|
|
{
|
|
MOZ_ASSERT(mClass == eTouchEventClass,
|
|
"Duplicate() must be overridden by sub class");
|
|
// Not copying widget, it is a weak reference.
|
|
WidgetTouchEvent* result = new WidgetTouchEvent(false, mMessage, nullptr);
|
|
result->AssignTouchEventData(*this, true);
|
|
result->mFlags = mFlags;
|
|
return result;
|
|
}
|
|
|
|
TouchArray touches;
|
|
|
|
void AssignTouchEventData(const WidgetTouchEvent& aEvent, bool aCopyTargets)
|
|
{
|
|
AssignInputEventData(aEvent, aCopyTargets);
|
|
|
|
// Assign*EventData() assume that they're called only new instance.
|
|
MOZ_ASSERT(touches.IsEmpty());
|
|
touches.AppendElements(aEvent.touches);
|
|
}
|
|
};
|
|
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_TouchEvents_h__
|