Bug 1550519 - Show a translucent parent highlight when a subgrid is highlighted....
[gecko.git] / dom / base / FlushType.h
blob4d542a77846c462c1a648e518a3a9e998dc0c4fe
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 mozilla_FlushType_h
8 #define mozilla_FlushType_h
10 #include <stdint.h>
11 #include "X11UndefineNone.h"
13 namespace mozilla {
15 /**
16 * This is the enum used by Document::FlushPendingNotifications to
17 * decide what to flush.
19 * Please note that if you change these values, you should sync it with the
20 * flushTypeNames array inside PresShell::FlushPendingNotifications.
22 enum class FlushType : uint8_t {
23 None = 0, /* Actually don't flush anything */
24 Event = 1, /* Flush pending events before notify other observers */
25 Content = 2, /* flush the content model construction */
26 ContentAndNotify = 3, /* As above, plus flush the frame model
27 construction and other nsIMutationObserver
28 notifications. */
29 Style = 4, /* As above, plus flush style reresolution */
30 Frames = Style,
31 EnsurePresShellInitAndFrames =
32 5, /* As above, plus ensure the pres shell is alive */
33 InterruptibleLayout = 6, /* As above, plus flush reflow,
34 but allow it to be interrupted (so
35 an incomplete layout may result) */
36 Layout = 7, /* As above, but layout must run to
37 completion */
38 Display = 8, /* As above, plus flush painting */
39 Count
42 struct ChangesToFlush {
43 ChangesToFlush(FlushType aFlushType, bool aFlushAnimations)
44 : mFlushType(aFlushType), mFlushAnimations(aFlushAnimations) {}
46 FlushType mFlushType;
47 bool mFlushAnimations;
50 } // namespace mozilla
52 #endif // mozilla_FlushType_h