/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */
#include"mozilla/DefineEnum.h"// for MOZ_DEFINE_ENUM #include"mozilla/layers/ScrollableLayerGuid.h"// for ViewID #include"mozilla/Variant.h"// for Variant #include"mozilla/Maybe.h"// for Maybe
namespace mozilla {
class PresShell;
namespace layers {
/** * This class is used for communicating information about the currently focused * element of a document and the scrollable frames to use when keyboard * scrolling it. It is created on the main thread at paint-time, but is then * passed over IPC to the compositor/APZ code.
*/ class FocusTarget final { public: struct ScrollTargets {
ScrollableLayerGuid::ViewID mHorizontal;
ScrollableLayerGuid::ViewID mVertical;
// We need this to represent the case where mData has no focus target data // because we can't have an empty variant struct NoFocusTarget { booloperator==(const NoFocusTarget& aRhs) const { returntrue; }
};
FocusTarget();
/** * Construct a focus target for the specified top level PresShell
*/
FocusTarget(PresShell* aRootPresShell, uint64_t aFocusSequenceNumber);
booloperator==(const FocusTarget& aRhs) const;
constchar* Type() const;
public: // The content sequence number recorded at the time of this class's creation
uint64_t mSequenceNumber;
// Whether there are keydown, keypress, or keyup event listeners // in the event target chain of the focused element bool mFocusHasKeyEventListeners;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.