/* -*- 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/. */
// The current depth of user and keyboard inputs. sUserInputEventDepth // is the number of any user input events, page load events and mouse over // events. sUserKeyboardEventDepth is the number of keyboard input events. // Incremented whenever we start handling a user input, decremented when we // have finished handling a user input. This depth is *not* reset in case // of nested event loops. static int32_t sUserInputEventDepth = 0; static int32_t sUserKeyboardEventDepth = 0;
// Time at which we began handling user input. Reset to the epoch // once we have finished handling user input. static TimeStamp sHandlingInputStart;
// Time at which we began handling the latest user input. Not reset // at the end of the input. static TimeStamp sLatestUserInputStart;
switch (aEvent->mMessage) { // eKeyboardEventClass case eKeyPress: case eKeyDown: case eKeyUp: // Not all keyboard events are treated as user input, so that popups // can't be opened, fullscreen mode can't be started, etc at // unexpected time. return aEvent->AsKeyboardEvent()->CanTreatAsUserInput(); // eBasicEventClass // eMouseEventClass case eMouseDown: case eMouseUp: // ePointerEventClass case ePointerClick: case ePointerDown: case ePointerUp: // eTouchEventClass case eTouchStart: case eTouchEnd: returntrue; default: returnfalse;
}
}
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 ist noch experimentell.