mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-31 22:25:30 +00:00
7644286079
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).
33 lines
987 B
C++
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 */
|