gecko/layout/base/PositionedEventTargeting.h
Kartikaya Gupta 3c7e130926 Bug 1078029 - Add code to reposition input event coordinates into the target frame. r=roc
The PositionedEventTargeting code allows input events to be dispatched to a
target not directly under the input event point. However, the coordinates of the
input event can then end up outside the bounding rect of the event target. This
state is generally unexpected by web content and may cause compatibility issues.
Fennec's front-end code used to deal with this by repositioning the input event
coordinates to be inside the bounding rect; now that Fennec is using the shared
C++ code we need to have that code here. This behaviour is guarded by a pref and
disabled by default (but enabled on Fennec).
2014-11-04 09:52:16 -05:00

33 lines
987 B
C++

/* 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_PositionedEventTargeting_h
#define mozilla_PositionedEventTargeting_h
#include <stdint.h>
#include "mozilla/EventForwards.h"
class nsIFrame;
struct nsPoint;
namespace mozilla {
enum {
INPUT_IGNORE_ROOT_SCROLL_FRAME = 0x01
};
/**
* Finds the target frame for a pointer event given the event type and location.
* This can look for frames within a rectangle surrounding the actual location
* that are suitable targets, to account for inaccurate pointing devices.
*/
nsIFrame*
FindFrameTargetedByInputEvent(WidgetGUIEvent* aEvent,
nsIFrame* aRootFrame,
const nsPoint& aPointRelativeToRootFrame,
uint32_t aFlags = 0);
}
#endif /* mozilla_PositionedEventTargeting_h */