layout/base/PositionedEventTargeting.h
author Hiroyuki Ikezoe <hiikezoe@mozilla-japan.org>
Wed, 12 Oct 2016 09:59:03 +0900
changeset 317477 62cf4a7d6007e3f0b1da0f0590c81a17791ec898
parent 252586 91d6e262b662a0b4e47358665e222d3927337af9
child 388808 905239391e05483e8fb221378dd2092c5a0df8b7
permissions -rw-r--r--
Bug 1278136 - Part 5: Create a stacking context for opacity/transform animations even if it's in delay phase and even if the property is overridden by !important rules. r=birtles This patch introduces a new functions named HasEffectiveAnimationOfProperty. This function checks that a given CSS property is overridden by !important rules. On the other hand, now KeyframeEffetReadOnly::HasAnimationOfProperty() does just check that the effect has a given CSS property. This is used to create a stacking context because we should create a stacking context for opacity or transform animations even if the property is overridden by !important rules. MozReview-Commit-ID: AG1Y0IgoB3U

/* 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);

} // namespace mozilla

#endif /* mozilla_PositionedEventTargeting_h */