Bug 1687263: part 4) Defer and in some cases avoid removing spellchecking-ranges...
[gecko.git] / layout / painting / HitTestInfo.h
blob53858d6f352121690235b4c2487e0fdbc1aede24
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef GFX_HITTESTINFO_H
8 #define GFX_HITTESTINFO_H
10 #include "mozilla/gfx/CompositorHitTestInfo.h"
11 #include "mozilla/layers/ScrollableLayerGuid.h"
12 #include "nsRect.h"
14 class nsIFrame;
15 class nsDisplayListBuilder;
17 namespace mozilla {
19 struct ActiveScrolledRoot;
21 /**
22 * A helper class that manages compositor hit testing information.
24 class HitTestInfo {
25 public:
26 using CompositorHitTestInfo = gfx::CompositorHitTestInfo;
27 using ViewID = layers::ScrollableLayerGuid::ViewID;
29 ViewID GetViewId(wr::DisplayListBuilder& aBuilder,
30 const ActiveScrolledRoot* aASR) const;
32 void Initialize(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame);
33 void InitializeScrollTarget(nsDisplayListBuilder* aBuilder);
35 void SetAreaAndInfo(const nsRect& aArea, const CompositorHitTestInfo& aInfo) {
36 mArea = aArea;
37 mInfo = aInfo;
40 static void Shutdown();
42 const nsRect& Area() const { return mArea; }
43 const CompositorHitTestInfo& Info() const { return mInfo; }
45 static const HitTestInfo& Empty();
47 private:
48 nsRect mArea;
49 CompositorHitTestInfo mInfo;
50 mozilla::Maybe<ViewID> mScrollTarget;
53 } // namespace mozilla
55 #endif