Commit Graph

67 Commits

Author SHA1 Message Date
Kevin Chen
fc22d2c178 Bug 1343479 - Label the tasks for APZ module. r=bevistseng,kats
MozReview-Commit-ID: GkAl4MZorxP
2017-03-23 06:16:38 +00:00
Kartikaya Gupta
c8cbcd0028 Bug 1343977 - Ensure that synthetic mouseclicks generated from touch gestures don't reopen rollups. r=botond,enndeakin+6102
Synthetic mouseevents generated from touch gestures are dispatched asynchronously
from the touch events. This means that the nsAutoRollup that the widget puts on
the stack during the dispatching of the touch events is no longer in scope when
we get around to firing the mouse events. As a result, the mouse events can end
up reopening rollups that got closed by the touch events and that shouldn't be
reopened. We fix this by stashing the rollup that was in scope while the touch
events were being dispatched, and make sure we keep that in scope for the
synthetic mouse events.

MozReview-Commit-ID: HjteKHfAqvD
2017-03-13 10:44:59 -04:00
Stone Shih
07a1a01198 Bug 1340085 - [Pointer Event] Stop firing pointer events after firing eTouchCancel. f=smaug. r=kats 2017-02-16 15:05:09 +08:00
Ho-Pang
01ad6dda9d Bug 1299209 - Part 1: Passing PointerId when a new WidgetMouseEvent is created. h=sshih, r=smaug 2016-12-20 22:53:00 -05:00
Ting-Yu Lin
fa0746c0ce Bug 1310509 - Call NotifyAsyncPanZoomStarted/Stopped on document containing current scrolling content. r=kats
We now call NotifyAsyncPanZoomStarted/Stopped precisely on the document
which is being transformed, so we no longer need to notify the child
docshells which was added in Bug 1088559.

Remove the |nsIDocument| argument for ProcessAPZStateChange(), which is not
used anymore.

mActiveAPZTransforms added in bug 1142926 is removed because AccessibleCaret
is the only consumer for AsyncPanZoomStarted/Stopped, and it now defaults to
always show while scrolling, i.e.
"layout.accessiblecaret.always_show_when_scrolling" defaults to true. And I
cannot reproduce the bug even if I turn off the preference.

MozReview-Commit-ID: DiEk2gCIHn2
2016-11-04 22:27:02 +08:00
Kartikaya Gupta
994d0be804 Bug 1304263 - On Windows, fire the eMouseLongTap event as soon as APZ detects the long-press. r=TYLin
On Windows, the contextmenu event is fired when the finger is lifted after a
long-press. However, there are various bits of code, such as the AccessibleCaret
or potential fixes for bug 1147335, which would benefit from knowing when the
long-press gesture was detected. By moving eMouseLongTap event up we can satisfy
that need. An alternative approach considered was to fire the eMouseLongTap
before the contextmenu on all platforms unconditionally, but that makes it harder
to implement platform-specific text selection behaviour the way we want. In
particular we would have to add an extra message or notification for non-Windows
platforms that initiated text selection if the contextmenu event was not
consumed.

MozReview-Commit-ID: 2lmwxmmGrVD
2016-10-04 09:31:15 -04:00
Kartikaya Gupta
1a62c7772f Bug 1302736 - Fire click events with a clickCount of 2 when the user does a double-tap gesture with double taps not allowed. r=botond
MozReview-Commit-ID: 5qxHMoHXDXh
2016-09-29 10:05:25 -04:00
Kartikaya Gupta
36ba6a8461 Bug 1298908 - On Windows, fire the contextmenu and long-tap events on the long-tap-up user action. r=botond,jimm
This patch prevents the Windows widget code from dispatching the contextmenu
event if APZ is handling touch input. Instead, the APZ code processes the
raw touch input, and will fire a contextmenu event when the user lifts their
finger after a long-press action, in keeping with the Windows platform
convention. Doing it this way also allows us to respect web conventions where
the web content can prevent the contextmenu event from firing by calling
preventDefault on the touchstart event; this was not possible when dispatching
the contextmenu event directly from the widget code.

This also makes long-pressing on browser chrome components work properly, as
it just shifts the point in time that the contextmenu event is fired without
changing any of the code that triggers the XUL popup. However, some changes
were needed to have the widget code ignore the synthetic mouse events that
the Windows platform sends us, because those would otherwise immediately
dismiss the contextmenu popup after it appeared.

MozReview-Commit-ID: 9HFZLC6xUAi
2016-08-30 17:32:08 -04:00
Kartikaya Gupta
009b6e5b2f Bug 1298908 - Extract a helper method that does the dispatching of contextmenu events. r=botond
MozReview-Commit-ID: JrtpHhtjhRw
2016-08-30 17:32:08 -04:00
Kartikaya Gupta
e57fb1eec4 Bug 1299488 - Remove TabParent::InjectTouchEvent as it is unused but error-prone. r=botond
MozReview-Commit-ID: EVBRK70veT1
2016-08-31 16:54:23 -04:00
Kartikaya Gupta
dba6e25521 Bug 1297445 - Remove improper call to WidgetModifiersToDOMModifiers. r=botond
MozReview-Commit-ID: 6cB3s4aCmKQ
2016-08-23 13:02:10 -04:00
Randall Barker
bac11cde77 Bug 1291373 - [geckoview] part 3, Remove MOZ_ANDROID_APZ r=botond,snorp 2016-08-16 14:33:43 -07:00
Nicholas Nethercote
0550795f93 Bug 1293117 (part 4) - Change many NS_IMETHODIMP occurrences to NS_IMETHOD. r=froydnj.
This patch makes the following changes on many in-class methods.

- NS_IMETHODIMP F() override;      --> NS_IMETHOD F() override;
- NS_IMETHODIMP F() override {...} --> NS_IMETHOD F() override {...}
- NS_IMETHODIMP F() final;         --> NS_IMETHOD F() final;
- NS_IMETHODIMP F() final {...}    --> NS_IMETHOD F() final {...}

Using NS_IMETHOD is the preferred way of marking in-class virtual methods.
Although these transformations add an explicit |virtual|, they are safe --
there's an implicit |virtual| anyway because |override| and |final| only work
with virtual methods.
2016-08-08 10:54:47 +10:00
Kartikaya Gupta
52a4a4348a Bug 1250024 - Fix touch-tap event coordinate transformations when a fullzoom is applied. r=botond
There were a couple of problems when delivering tap gestures to content with
full zoom applied. One was that the ConverToGecko function converted the coords
into "CSS pixel" space by using the web content's CSS-to-LD scale, but also
applied that on the translation from the chrome area. Moving that conversion
to later in the process (after the coords got passed through TabParent::
AdjustTapToChildWidget) corrected that issue.

The other problem was that bits of code in APZEventState and APZCCallbackHelper
were using the widget->GetDefaultScale() value as the CSS-to-LD scale, but that
omitted the full zoom value. Getting the CSS-to-LD scale from the presShell and
propagating that through corrected that issue.

MozReview-Commit-ID: KdrkdEZslHo
2016-07-29 14:44:29 -04:00
Nicolas Silva
fff99d452b Bug 1284837 - Add conversions methods from Point and Size to IntPoint and IntSize for consistency. r=botond 2016-07-26 16:48:34 +02:00
Kartikaya Gupta
3c5b17d768 Bug 1256339 - Add a eLongTapUp tap type, which fires an observer notification rather than doing a click. r=botond
For B2G we had this "special" behaviour where a long-press that didn't trigger
a contextmenu or whose contextmenu event was cancelled would still trigger a
click event. No other browser does this, and so I think it doesn't make sense
for us to keep doing it either. It also makes it much harder to implement the
Windows-style contextmenu, where the contextmenu pops up when you *lift* your
finger after doing a long-press.

MozReview-Commit-ID: K7NmkNbjfqY
2016-07-05 13:24:54 -04:00
Kartikaya Gupta
83f4248e67 Bug 1283556 - Convert APZStateChange to an enum class and make the formatting more consistent with the style guide. r=botond
MozReview-Commit-ID: FtfoY1jCwkR
2016-07-04 14:44:08 -04:00
Kartikaya Gupta
1e79f9ac80 Bug 1273137 - Add the missing main-thread target confirmation for drag blocks. r=rbarker
This patch also cleans up some inconsistencies in the conditions under which the
main thread would respond to wheel and mouse events. With this patch applied, the
main-thread notifications are only sent if the input block id is nonzero, which
indicates the APZ actually processed the input event and added it to an input
block.

MozReview-Commit-ID: GBlgj6whi5T
2016-06-07 11:07:55 -04:00
Kartikaya Gupta
7099dff9d6 Bug 1231570 - Ensure we send a touchcancel after a prevented long-press. r=capella
MozReview-Commit-ID: o5InXZjdUx
2016-05-03 16:22:27 -04:00
Sebastian Hengst
4220f200ec Backed out changeset 7ac47a347557 (bug 1231570) for crash in test_wheel_scroll.html after assertion at gfx/layers/apz/src/InputQueue.cpp:493 on Linux debug in M-e10s(8). r=backout 2016-05-04 09:32:28 +02:00
Kartikaya Gupta
73f6deee2c Bug 1231570 - Ensure we send a touchcancel after a prevented long-press. r=capella
MozReview-Commit-ID: o5InXZjdUx
2016-05-03 16:22:27 -04:00
Masayuki Nakano
35775b20e1 Bug 1259657 Rename WidgetGUIEvent::widget to WidgetGUIEvent::mWidget r=smaug
MozReview-Commit-ID: 167PQWJDEHW
2016-04-14 17:03:14 +09:00
Masayuki Nakano
93fc327cc4 Bug 1259668 Rename WidgetTouchEvent::touches to WidgetTouchEvent::mTouches r=smaug
MozReview-Commit-ID: FLbows8davI
2016-03-30 18:44:28 +09:00
Masayuki Nakano
ce8c25949d Bug 1256589 part.5 Add DefaultPrevented() and DefaultPreventedByContent() to WidgetEvent r=smaug
MozReview-Commit-ID: 5q3QUPTf12Z
2016-03-22 16:47:52 +09:00
Kartikaya Gupta
747ced1dee Bug 1249748 - Ensure the mHandledByAPZ flag is set on WidgetTouchEvents that are handled by APZ. r=botond
MozReview-Commit-ID: 4ABY2jgHkGl
2016-02-24 13:19:43 -05:00
Kartikaya Gupta
4d5cb9d52e Bug 1213095 - Fix APZEventState build with logging enabled. r=botond 2016-01-18 15:23:08 -05:00
Jonathan Kew
657b233fdc Bug 890156 - patch 6 - Update window placement code to work with desktop pixels, for per-monitor DPI support on Windows. r=emk 2015-12-03 13:19:50 +00:00
Kartikaya Gupta
c30097a1ec Bug 1223296 - Clear element activation if a contextmenu is displayed. r=botond 2015-11-13 15:10:52 -05:00
Kartikaya Gupta
423871204e Bug 1223296 - Fire the MozMouseHittest event even if the C++ APZ is enabled. r=rbarker,botond 2015-11-13 15:10:52 -05:00
Kartikaya Gupta
4eacc09be8 Bug 1223296 - Turn HandlePanStart into a more generic function that can be called from other places. r=botond 2015-11-13 15:10:52 -05:00
Kartikaya Gupta
0cbe9e0a08 Bug 1219898 - Remove use of gPreventMouseEvents in APZ event state-tracking code. r=botond 2015-10-30 22:22:28 -04:00
Benoit Girard
703753a1a5 Bug 1211612 - Add DragInputBlock for async scrollbars. r=kats 2015-10-26 16:06:49 -04:00
Kartikaya Gupta
90a1542e3d Bug 1217818 - Ignore injected touchstart events for the purposes of prevent-default notifications back to APZ. r=botond 2015-10-28 12:53:52 -04:00
Kartikaya Gupta
0de1a1d834 Bug 1217818 - Add some more logging to more easily diagnose issues. r=botond 2015-10-28 12:52:54 -04:00
Kartikaya Gupta
eb2028a46c Bug 1217818 - Minor refactoring to reuse a function. r=botond 2015-10-28 12:52:54 -04:00
Chris Peterson
84072baa4a Bug 1215892 - Fix clang's -Wimplicit-fallthrough warnings in gfx. r=BenWa
gfx/gl/GLBlitHelper.cpp:395:13 [-Wimplicit-fallthrough] unannotated fall-through between switch labels

gfx/layers/apz/src/AsyncPanZoomController.cpp:1087:5 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/layers/apz/src/AsyncPanZoomController.cpp:1196:3 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/layers/apz/src/GestureEventListener.cpp:411:3 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/layers/apz/util/APZEventState.cpp:292:3 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/layers/apz/util/APZEventState.cpp:295:3 [-Wimplicit-fallthrough] unannotated fall-through between switch labels

widget/GfxInfoBase.cpp:1015:9 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
2015-10-17 22:57:38 -07:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Ting-Yu Lin
a0b7ec2a8e Bug 1214662 - Fix compile error for enabling APZES_LOG. r=botond
I got this error: use of undeclared identifier 'Stringify'. Add the
necessary header.
2015-10-15 10:49:26 +08:00
Masayuki Nakano
0eb5af44b6 Bug 895274 part.244 Rename NS_TOUCH_CANCEL to eTouchCancel r=smaug 2015-09-15 00:14:35 +09:00
Masayuki Nakano
c52e0f004e Bug 895274 part.243 Rename NS_TOUCH_END to eTouchEnd r=smaug 2015-09-15 00:14:35 +09:00
Masayuki Nakano
c9e937321c Bug 895274 part.242 Rename NS_TOUCH_MOVE to eTouchMove r=smaug 2015-09-15 00:14:35 +09:00
Masayuki Nakano
27a41ba675 Bug 895274 part.241 Rename NS_TOUCH_START to eTouchStart r=smaug 2015-09-15 00:14:34 +09:00
Botond Ballo
76b0af49e9 Bug 1202312 - Use mozilla::Function for the ContentReceivedInputBlock callback. r=kats 2015-09-11 12:52:43 -04:00
Markus Stange
dbbdda13a4 Bug 1016035 - Make APZEventState report defaultPrevented=true when the event started a swipe. r=kats 2015-08-11 23:35:16 -04:00
Masayuki Nakano
304639f462 Bug 895274 part.38 Rename NS_MOUSE_MOZLONGTAP to eMouseLongTap r=smaug 2015-08-29 08:58:33 +09:00
Masayuki Nakano
5473d2dcb9 Bug 895274 part.1 Rename WidgetEvent::message to WidgetEvent::mMessage r=smaug 2015-08-22 10:34:51 +09:00
Kartikaya Gupta
76b9ccf2fc Bug 1134917 - Hoist assertion into the one callsite where it is actually valid. r=botond 2015-07-24 14:33:47 -04:00
Botond Ballo
d61e3f0a5b Bug 1181832 - Keep gfxPrefs.h out of header files. r=kats 2015-07-13 11:53:10 -04:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Robert O'Callahan
08f2517ebd Bug 1143575. Add some #includes to avoid more unified-build issues on Windows. r=nical 2015-06-09 14:35:04 +12:00