Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  ShortcutKeyDefinitions.cpp

  Sprache: C
 

/* 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 "ShortcutKeys.h"

#if !defined(XP_WIN) && !defined(MOZ_WIDGET_COCOA) && \
    !defined(MOZ_WIDGET_GTK) && !defined(MOZ_WIDGET_ANDROID)
#  define USE_EMACS_KEY_BINDINGS
#endif

/**
 * This file defines shortcut keys for <input>, <textarea>, page navigation
 * and HTML editor.  You must write each mapping in one line and append inline
 * comment on which platform it's mapped since this style helps you to look
 * for the definition with searchfox, etc.
 * Be aware, the commands defined in this file may not work because editor or
 * other keyboard event listeners may handle before.
 * Note: When you change key mappings, you need to change
 * `test/gtest/TestShortcutKeyDefinitions.cpp` too.
 *
 *  The latest version of the original files are:
 *
 * Windows:
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/win/ShortcutKeyDefinitions.cpp
 * macOS:
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/mac/ShortcutKeyDefinitions.cpp
 * Linux:
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/unix/ShortcutKeyDefinitions.cpp
 * Android:
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/android/ShortcutKeyDefinitions.cpp
 * Emacs:
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/emacs/ShortcutKeyDefinitions.cpp
 *
 * And common definitions except macOS:
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/ShortcutKeyDefinitionsForInputCommon.h
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/ShortcutKeyDefinitionsForTextAreaCommon.h
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/ShortcutKeyDefinitionsForEditorCommon.h
 *
 * And common definitions for page navigation on all platforms:
 * https://searchfox.org/mozilla-central/rev/fd853f4aea89186efdb368e759a71b7a90c2b89c/dom/events/ShortcutKeyDefinitionsForBrowserCommon.h
 *
 * If you don't see shortcut key definitions here, but you see shortcut keys
 * work on Linux or macOS, it probably comes from NativeKeyBindings under
 * widget.
 */


namespace mozilla {

ShortcutKeyData ShortcutKeys::sInputHandlers[] = {
// clang-format off
    /**************************************************************************
     * Arrow keys to move caret in <input>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || \
    defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, nullptr,  u"cmd_moveLeft"},   // Win, Linux, Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, nullptr,  u"cmd_moveRight"},  // Win, Linux, Android, Emacs
    {u"keypress", u"VK_UP",    nullptr, nullptr,  u"cmd_moveUp"},     // Win, Linux, Android, Emacs
    {u"keypress", u"VK_DOWN",  nullptr, nullptr,  u"cmd_moveDown"},   // Win, Linux, Android, Emacs
#endif  // Except MOZ_WIDGET_COCOA

    /**************************************************************************
     * Arrow keys to select a char/line in <input>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || \
    defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, u"shift", u"cmd_selectLeft"},   // Win, Linux, Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"shift", u"cmd_selectRight"},  // Win, Linux, Android, Emacs
    {u"keypress", u"VK_UP",    nullptr, u"shift", u"cmd_selectUp"},     // Win, Linux, Android, Emacs
    {u"keypress", u"VK_DOWN",  nullptr, u"shift", u"cmd_selectDown"},   // Win, Linux, Android, Emacs
#endif  // Except MOZ_WIDGET_COCOA

    /**************************************************************************
     * Arrow keys per word in <input>.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, u"control",       u"cmd_wordPrevious"},        // Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"control",       u"cmd_wordNext"},            // Android, Emacs
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,control", u"cmd_selectWordPrevious"},  // Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,control", u"cmd_selectWordNext"},      // Android, Emacs
#endif // MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN)
    {u"keypress", u"VK_LEFT",  nullptr, u"control",       u"cmd_moveLeft2"},           // Win
    {u"keypress", u"VK_RIGHT", nullptr, u"control",       u"cmd_moveRight2"},          // Win
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,control", u"cmd_selectLeft2"},         // Win
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,control", u"cmd_selectRight2"},        // Win
#endif // XP_WIN

    /**************************************************************************
     * Arrow keys per block in <input>.
     **************************************************************************/

#if defined(XP_WIN)
    {u"keypress", u"VK_UP",   nullptr, u"control",       u"cmd_moveUp2"},      // Win
    {u"keypress", u"VK_DOWN", nullptr, u"control",       u"cmd_moveDown2"},    // Win
    {u"keypress", u"VK_UP",   nullptr, u"shift,control", u"cmd_selectUp2"},    // Win
    {u"keypress", u"VK_DOWN", nullptr, u"shift,control", u"cmd_selectDown2"},  // Win
#endif // XP_WIN

    /**************************************************************************
     * Arrow keys to begin/end of a line in <input>.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_LEFT",  nullptr, u"alt",       u"cmd_beginLine"},        // Android
    {u"keypress", u"VK_RIGHT", nullptr, u"alt",       u"cmd_endLine"},          // Android
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,alt", u"cmd_selectBeginLine"},  // Android
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,alt", u"cmd_selectEndLine"},    // Android
#endif // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * Home/End keys in <input>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID) ||\
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_HOME", nullptr, nullptr,          u"cmd_beginLine"},        // Win, Android, Emacs
    {u"keypress", u"VK_END",  nullptr, nullptr,          u"cmd_endLine"},          // Win, Android, Emacs
    {u"keypress", u"VK_HOME", nullptr, u"shift",         u"cmd_selectBeginLine"},  // Win, Android, Emacs
    {u"keypress", u"VK_END",  nullptr, u"shift",         u"cmd_selectEndLine"},    // Win, Android, Emacs
#endif // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_HOME", nullptr, u"control",       u"cmd_beginLine"},        // Emacs
    {u"keypress", u"VK_END",  nullptr, u"control",       u"cmd_endLine"},          // Emacs
    {u"keypress", u"VK_HOME", nullptr, u"control,shift", u"cmd_selectBeginLine"},  // Emacs
    {u"keypress", u"VK_END",  nullptr, u"control,shift", u"cmd_selectEndLine"},    // Emacs
#endif // USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN)
    {u"keypress", u"VK_HOME", nullptr, u"control",        u"cmd_moveTop"},         // Win
    {u"keypress", u"VK_END",  nullptr, u"control",        u"cmd_moveBottom"},      // Win
    {u"keypress", u"VK_HOME", nullptr, u"shift,control",  u"cmd_selectTop"},       // Win
    {u"keypress", u"VK_END",  nullptr, u"shift,control",  u"cmd_selectBottom"},    // Win
#endif // XP_WIN

    /**************************************************************************
     * Insert key in <input>.
     **************************************************************************/

#if defined(XP_WIN) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_INSERT", nullptr, u"control", u"cmd_copy"},   // Win, Emacs
    {u"keypress", u"VK_INSERT", nullptr, u"shift",   u"cmd_paste"},  // Win, Emacs
#endif  // XP_WIN || USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     * Delete key in <input>.
     **************************************************************************/

#if defined(XP_WIN) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_DELETE", nullptr, u"shift",   u"cmd_cutOrDelete"},        // Win, Emacs
#endif // XP_WIN || USE_EMACS_KEY_BINDINGS
#if defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_DELETE", nullptr, u"control", u"cmd_copyOrDelete"},       // Emacs
#endif // USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_DELETE", nullptr, u"control", u"cmd_deleteWordForward"},  // Win, Android
#endif  // XP_WIN
#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_DELETE", nullptr, u"alt",     u"cmd_deleteToEndOfLine"},  // Android
#endif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * Backspace key in <input>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID) ||\
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_BACK", nullptr, u"control",   u"cmd_deleteWordBackward"},       // Win, Android, Emacs
#endif // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_BACK", nullptr, u"alt",       u"cmd_deleteToBeginningOfLine"},  // Android
#endif  // MOZ_WIDGET_ANDROID
#if defined(XP_WIN)
    {u"keypress", u"VK_BACK", nullptr, u"alt",       u"cmd_undo"},                     // Win
    {u"keypress", u"VK_BACK", nullptr, u"alt,shift", u"cmd_redo"},                     // Win
#endif  // XP_WIN

    /**************************************************************************
     * Common editor commands in <input>.
     **************************************************************************/

    {u"keypress", nullptr, u"c", u"accel",       u"cmd_copy"},   // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u"x", u"accel",       u"cmd_cut"},    // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u"v", u"accel",       u"cmd_paste"},  // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u"z", u"accel",       u"cmd_undo"},   // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u"z", u"accel,shift", u"cmd_redo"},   // Win, macOS, Linux, Android, Emacs

    {u"keypress", nullptr, u"v", u"accel,shift",     u"cmd_paste"},  // Win, macOS, Linux, Android, Emacs
// Mac uses Option+Shift+Command+V for Paste and Match Style
#if defined(MOZ_WIDGET_COCOA)
    {u"keypress", nullptr, u"v", u"accel,alt,shift", u"cmd_paste"},  // macOS
#endif  // MOZ_WIDGET_COCOA

#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) ||\
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", nullptr, u"y", u"accel",       u"cmd_redo"},   // Win, Linux, Emacs
#endif  // XP_WIN || MOZ_WIDGET_GTK || USE_EMACS_KEY_BINDINGS

#if defined(XP_WIN) || defined(MOZ_WIDGET_COCOA) || defined(MOZ_WIDGET_GTK) ||\
    defined(MOZ_WIDGET_ANDROID)
    {u"keypress", nullptr, u"a", u"accel",       u"cmd_selectAll"},  // Win, macOS, Linux, Android
#endif  // XP_WIN || MOZ_WIDGET_COCOA || MOZ_WIDGET_GTK || MOZ_WIDGET_ANDROID
#if defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", nullptr, u"a", u"alt",         u"cmd_selectAll"},  // Emacs
#endif  // USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     * Emacs specific shortcut keys in <input>.
     **************************************************************************/

#if defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", nullptr, u"a", u"control", u"cmd_beginLine"},                // Emacs
    {u"keypress", nullptr, u"e", u"control", u"cmd_endLine"},                  // Emacs
    {u"keypress", nullptr, u"b", u"control", u"cmd_charPrevious"},             // Emacs
    {u"keypress", nullptr, u"f", u"control", u"cmd_charNext"},                 // Emacs
    {u"keypress", nullptr, u"h", u"control", u"cmd_deleteCharBackward"},       // Emacs
    {u"keypress", nullptr, u"d", u"control", u"cmd_deleteCharForward"},        // Emacs
    {u"keypress", nullptr, u"w", u"control", u"cmd_deleteWordBackward"},       // Emacs
    {u"keypress", nullptr, u"u", u"control", u"cmd_deleteToBeginningOfLine"},  // Emacs
    {u"keypress", nullptr, u"k", u"control", u"cmd_deleteToEndOfLine"},        // Emacs
#endif  // USE_EMACS_KEY_BINDINGS
    // clang-format on

    {nullptr, nullptr, nullptr, nullptr, nullptr}};

ShortcutKeyData ShortcutKeys::sTextAreaHandlers[] = {
// clang-format off
    /**************************************************************************
     * Arrow keys to move caret in <textarea>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || \
    defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, nullptr, u"cmd_moveLeft"},   // Win, Linux, Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, nullptr, u"cmd_moveRight"},  // Win, Linux, Android, Emacs
    {u"keypress", u"VK_UP",    nullptr, nullptr, u"cmd_moveUp"},     // Win, Linux, Android, Emacs
    {u"keypress", u"VK_DOWN",  nullptr, nullptr, u"cmd_moveDown"},   // Win, Linux, Android, Emacs
#endif  // Except MOZ_WIDGET_COCOA

    /**************************************************************************
     * Arrow keys to select a char/line in <textarea>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || \
    defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, u"shift", u"cmd_selectLeft"},   // Win, Linux, Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"shift", u"cmd_selectRight"},  // Win, Linux, Android, Emacs
    {u"keypress", u"VK_UP",    nullptr, u"shift", u"cmd_selectUp"},     // Win, Linux, Android, Emacs
    {u"keypress", u"VK_DOWN",  nullptr, u"shift", u"cmd_selectDown"},   // Win, Linux, Android, Emacs
#endif  // Except MOZ_WIDGET_COCOA

    /**************************************************************************
     * Arrow keys per word in <textarea>.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, u"control",       u"cmd_wordPrevious"},        // Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"control",       u"cmd_wordNext"},            // Android, Emacs
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,control", u"cmd_selectWordPrevious"},  // Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,control", u"cmd_selectWordNext"},      // Android, Emacs
#endif // MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN)
    {u"keypress", u"VK_LEFT",  nullptr, u"control",       u"cmd_moveLeft2"},           // Win
    {u"keypress", u"VK_RIGHT", nullptr, u"control",       u"cmd_moveRight2"},          // Win
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,control", u"cmd_selectLeft2"},         // Win
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,control", u"cmd_selectRight2"},        // Win
#endif // XP_WIN

    /**************************************************************************
     * Arrow keys per block in <textarea>.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_UP",   nullptr, u"alt",           u"cmd_moveTop"},      // Android
    {u"keypress", u"VK_DOWN", nullptr, u"alt",           u"cmd_moveBottom"},   // Android
    {u"keypress", u"VK_UP",   nullptr, u"shift,alt",     u"cmd_selectTop"},    // Android
    {u"keypress", u"VK_DOWN", nullptr, u"shift,alt",     u"cmd_selectBottom"}, // Android
#endif // MOZ_WIDGET_ANDROID
#if defined(XP_WIN)
    {u"keypress", u"VK_UP",   nullptr, u"control",       u"cmd_moveUp2"},      // Win
    {u"keypress", u"VK_DOWN", nullptr, u"control",       u"cmd_moveDown2"},    // Win
    {u"keypress", u"VK_UP",   nullptr, u"shift,control", u"cmd_selectUp2"},    // Win
    {u"keypress", u"VK_DOWN", nullptr, u"shift,control", u"cmd_selectDown2"},  // Win
#endif // XP_WIN

    /**************************************************************************
     * Arrow keys to begin/end of a line in <textarea>.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_LEFT",  nullptr, u"alt",       u"cmd_beginLine"},        // Android
    {u"keypress", u"VK_RIGHT", nullptr, u"alt",       u"cmd_endLine"},          // Android
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,alt", u"cmd_selectBeginLine"},  // Android
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,alt", u"cmd_selectEndLine"},    // Android
#endif // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * PageUp/PageDown keys in <textarea>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID) ||\
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_PAGE_UP",   nullptr, nullptr,      u"cmd_movePageUp"},      // Win, Android, Emacs
    {u"keypress", u"VK_PAGE_DOWN", nullptr, nullptr,      u"cmd_movePageDown"},    // Win, Android, Emacs
    {u"keypress", u"VK_PAGE_UP",   nullptr, u"shift",     u"cmd_selectPageUp"},    // Win, Android, Emacs
    {u"keypress", u"VK_PAGE_DOWN", nullptr, u"shift",     u"cmd_selectPageDown"},  // Win, Android, Emacs
#endif  // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_PAGE_UP",   nullptr, u"alt",       u"cmd_moveTop"},         // Android
    {u"keypress", u"VK_PAGE_DOWN", nullptr, u"alt",       u"cmd_moveBottom"},      // Android
    {u"keypress", u"VK_PAGE_UP",   nullptr, u"shift,alt", u"cmd_selectTop"},       // Android
    {u"keypress", u"VK_PAGE_DOWN", nullptr, u"shift,alt", u"cmd_selectBottom"},    // Android
#endif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * Home/End keys in <textarea>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID) ||\
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_HOME",      nullptr, nullptr,           u"cmd_beginLine"},                // Win, Android, Emacs
    {u"keypress", u"VK_END",       nullptr, nullptr,           u"cmd_endLine"},                  // Win, Android, Emacs
    {u"keypress", u"VK_HOME",      nullptr, u"shift",          u"cmd_selectBeginLine"},          // Win, Android, Emacs
    {u"keypress", u"VK_END",       nullptr, u"shift",          u"cmd_selectEndLine"},            // Win, Android, Emacs
    {u"keypress", u"VK_HOME",      nullptr, u"control",        u"cmd_moveTop"},                  // Win, Android, Emacs
    {u"keypress", u"VK_END",       nullptr, u"control",        u"cmd_moveBottom"},               // Win, Android, Emacs
    {u"keypress", u"VK_HOME",      nullptr, u"shift,control",  u"cmd_selectTop"},                // Win, Android, Emacs
    {u"keypress", u"VK_END",       nullptr, u"shift,control",  u"cmd_selectBottom"},             // Win, Android, Emacs
#endif  // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     * Insert key in <textarea>.
     **************************************************************************/

#if defined(XP_WIN) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_INSERT", nullptr, u"control", u"cmd_copy"},   // Win, Emacs
    {u"keypress", u"VK_INSERT", nullptr, u"shift",   u"cmd_paste"},  // Win, Emacs
#endif  // XP_WIN || USE_EMACS_KEY_BINDINGS

    {/
// Mac uses Option+Shift+Command+V for Paste and Match Style
#f definedM
    {u"keypress", nullptr, u"v", u"accel,alt,shift", u"cmd_paste"},  // macOS
#  // MOZ_WIDGET_COCOA

    /**************************************************************************defineUSE_EMACS_KEY_BINDINGS#ndif
      key  <extarea>
     **************************************************************************/

#if defined(XP_WIN) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_DELETE  HTML editor.  write mapping  onelineand inline
#endif  // XP_WIN || USE_EMACS_KEY_BINDINGS
#if defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_DELETE", nullptr, u"control", u"cmd_copyOrDelete"},       // Emacs
#ndif  /USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_DELETE", nullptr, u"control", u"cmd_deleteWordForward"},  // Win, Android
  thedefinitionwithsearchfoxetc
#if defined(MOZ_WIDGET_ANDROID)
{"" "K_DELETE" nullptr u"lt"     ""}  // Android
#endif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * Backspace key in <textarea>.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID) ||\
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_BACK", nullptr, u"control",   u"cmd_deleteWordBackward"},       // Win, Android, Emacs
#endif  // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_BACK", nullptr, u"alt",       u"cmd_deleteToBeginningOfLine"},  // Android
#endif  // MOZ_WIDGET_ANDROID
#if defined(XP_WIN)
    {u"keypress", u"VK_BACK", nullptr, u"alt",       u"cmd_undo"},                     // Win
    {u"keypress", u"VK_BACK", nullptr, u"alt,shift", u"cmd_redo"},                     // Win
#endif  // XP_WIN

    /**************************************************************************
*Commoneditor  textarea>
     **************************************************************************/

    {u"keypress", nullptr, u"c", u"accel",       u"cmd_copy"   youchangemappings,youneed 
    {u"keypress", nullptr, u"x", u"accel",       u"cmd_cut"},        // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u"v", u"accel",       u"cmd_paste"},      // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u"z", u"accel",       u"cmd_undo"},       // Win, macOS, Linux, Android, Emacs
    {*

#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) ||\
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", nullptr, u"y", u"accel",       u"cmd_redo"},       // Win, Linux, Emacs
#endif  // XP_WIN || MOZ_WIDGET_GTK || USE_EMACS_KEY_BINDINGS

#if defined(XP_WIN) || defined(MOZ_WIDGET_COCOA  Windowsjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
     * https
    {u"  :
#endif  // XP_WIN || MOZ_WIDGET_COCOA || MOZ_WIDGET_GTK || MOZ_WIDGET_ANDROID
#if defined(USE_EMACS_KEY_BINDINGS)
{"eypress" nullptr,u"" ualt,         u"md_selectAll", /Emacs
#endif  // USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     * Emacs specific shortcut keys in <textarea>.
     **************************************************************************/

#if defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", nullptr, u *https//earchfoxorgcentralrevfd853f4aea89186efdb368e759a71b7a90c2b89c/ventsShortcutKeyDefinitionsForEditorCommonh
    {u"keypress", nullptr, u"e", u"control",     u"cmd_endLine"},                  // Emacs
    {u"keypress", nullptr, u"b", u"control",     u"cmd_charPrevious"},             // Emacs
    {", ,"" ",     u"md_charNext",// Emacs
    {u"keypress", nullptr, u"h", u"control",     u"cmd_deleteCharBackward"},       // Emacs
    {u"keypress", nullptr, u"d", u"control",     u"cmd_deleteCharForward"},        // Emacs
    {u"keypress", nullptr, u"w", u"control",     u"cmd_deleteWordBackward"},       // Emacs
    {u"keypress,nullptr,",ucontrol,    u"cmd_deleteToBeginningOfLine"},  // Emacs
    {u"keypress", nullptr, u"k", u"control",     u"cmd_deleteToEndOfLine"},        // Emacs
   ukeypress,nullptr u"" u"ontrol"     u"cmd_lineNext",                // Emacs
    {u"keypress", nullptr, u"p", u"control",     u"cmd_linePrevious"},             // Emacs
#endif  // USE_EMACS_KEY_BINDINGS
    /clangformat on

    {nullptr,  *widget

 :sBrowserHandlers  
    // clang-format off
    /**************************************************************************
     * Arrow keys to move caret in non-editable element.
     **************************************************************************/

    {u"keypress", u"VK_LEFT",  nullptr, nullptr,  u"cmd_moveLeft"},   // Win, macOS, Linux, Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, nullptr,  u"cmd_moveRight"},  // Win, macOS, Linux, Android, Emacs
", u"K_UP"    nullptr,,u"",     // Win, macOS, Linux, Android, Emacs
{"eypress",u"VK_DOWN    u"", u"K_DOWN", ,nullptr  "md_moveDown}// Win, Linux, Android, Emacs

    ******************************************
     * Arrow keys to select a char/line in non-editable element.
     **************************************************************************/
#if defined(XP_WIN) || defined(MOZ_WIDGET_COCOA) || defined(MOZ_WIDGET_GTK)
    {u"keypress", u"VK_LEFT",  nullptr, u"shift", u"cmd_selectLeft"},          // Win, macOS, Linux
    {u"if defined(XP_WIN |defined()| \
    "},            // Win, macOS, Linux
    ukeypress" u"K_DOWN"nullptr,u"hift,u"md_selectDown"}          
#endif  // XP_WIN || MOZ_WIDGET_COCOA || MOZ_WIDGET_GTK
DGET_ANDROID) | defined(SE_EMACS_KEY_BINDINGS)
    u"eypress" u"K_LEFT"  ,ushift, u"cmd_selectCharPrevious"  // Android, Emacs
{"keypress "K_RIGHT" nullptr "hift" ucmd_selectCharNext",     
    ukeypress" "K_UP,nullptr,ushift,u"md_selectLinePrevious",//Android 
    {u"keypress", u"VK_DOWN",  nullptr, u"shift", u"cmd_selectLineNext"},      // Android, Emacs
#endif  // MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS

java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 79
     *Arrow  per word in non-ditable.
     **************************************************************************/
#(MOZ_WIDGET_ANDROID)| definedUSE_EMACS_KEY_BINDINGS)
{"keypress" "VK_LEFT", nullptr,u""       u"md_wordPrevious",       // Android, Emacs
{"eypress" "" nullptr,u"ontrol"       ""}            /Android,Emacs
{keypress,VK_LEFT"  nullptr u"shift,u"",// Android, Emacs
    ukeypress,u"" nullptr,u"hift,ontrol" uc",//Win
#ndif  / MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
    {u"     * Arrow ke per block in <>
    {u" ******java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {u"keypress", u"VK_LEFT",  nullptr, u"control    u"eypress,uVK_DOWN" nullptr u""       "cmd_moveDown2"}    // Win
    {"eypress" ""  control" cmd_selectRight2"},        // Win, Linux
#endif  // XP_WIN || MOZ_WIDGET_GTKu"" u"K_DOWN" nullptr shiftcontrol" u"md_selectDown2", // Win
#if defined(     *Arrowkeystobeginend alinein input>
    {u"keypress", u"VK_LEFT",  nullptr, u"alt",           u"cmd_moveLeft2"},           // macOS
    {u"keypress",{"eypress" uVK_LEFT,nullptr,ua,       "md_beginLine}        /
    ",nullptr ualt,"     "",         // macOS
    {"eypress" "K_RIGHT" nullptr,u",hift"     cmd_selectRight2"        
#ndif  // MOZ_WIDGET_COCOA

*************************************
     * Arrow keys per block in non-editable element.
     **************************************************************************/
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
    {u"keypress", u"VK_UP",   nullptr, u"control",       u"cmd_moveUp2"},       // Win, Linux
    {"keypress" "" nullptr ""       cmd_moveDown2",    / ,
    {u"{keypress, "" ,nullptr,u"},       // Win, Android, Emacs
   {"eypress" u"VK_DOWN" nullptr,u",shift" u"cmd_selectDown2",  // Win, Linux
endif/ XP_WIN ||MOZ_WIDGET_GTK
if defined(OZ_WIDGET_COCOA)
    {u"keypress", u"VK_UP",   nullptr, u"accel",         u"cmd_moveUp2"},        // macOS
    ukeypress,uVK_DOWN,nullptr,u""         u"md_moveDown2",      // macOS
    {"" u"K_UP"   ,u"lt,"     u"md_selectUp2",//macOS
    {"eypress","K_DOWN" ,u,shift,u"md_selectDown2}    // macOS
{"eypress" u"K_UP"   ,ualt,ucmd_scrollPageUp}   
    {u"keypress", u"VK_DOWN", nullptr, u"alt",           u    ukeypress,u"VK_END"nullptr,"ontrol," u"md_selectEndLine",   
#endif  // MOZ_WIDGET_COCOA
if ()
    ukeypress,u"K_END,nullptr,u"ontrol        u"md_moveBottom" //
{"eypress" u"K_DOWN" nullptr,u""           u"",//Android
"keypress" u"K_UP"   ,u"hift,lt"     u"md_selectTop",    // Android
    {u"keypress", u"VK_DOWN", nullptr, u"shift,alt",     u"cmd_selectBottom"},  // Android
#    

    /**************************************************************************
     * Arrow keys to begin/end of a line in non-editable element.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_LEFT",  nullptr, u"alt",       u"cmd_beginLine"},        // Android
    {u*/
    {     * keyi<>
    {u"keypress", u"VK_RIGHT"     *****java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
e  // MOZ_WIDGET_ANDROID

    **************************************
*PageUpPageDownkeys innon- element
     **********************
# definedMOZ_WIDGET_COCOA
{keypress,u"",   nullptr,nullptr,     u"md_scrollPageUp",   /macOS
{"eypress",u"VK_PAGE_DOWN" nullptr nullptr ucmd_scrollPageDown,  // macOS
#endif// XP_WIN
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) ||\
    defined({u"keypress", u"VK_DELETEnullptr,"lt"     ""}, // Android
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {u"keypress", u"VK_PAGE_DOWN", nullptr     *****java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {u"keypress", u"VK_PAGE_UP",   nullptr, u"shift",     u"cmd_selectPageUp"},    // Win, Linux, Android, Emacs
    {u"keypress", u"VK_PAGE_DOWN", nullptr, u"shift",     u"cmd_selectPageDown"},  // Win, Linux, Android, Emacs
#endif  // XP_WIN || MOZ_WIDGET_GTK || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_PAGE_UP",   nullptr, u"alt",       u"cmd_moveTop"},         // Android
    {u"keypress", u"VK_PAGE_DOWN", nullptr, u"alt",       u"cmd_moveBottom"},      // Android
    {u"keypress", u"VK_PAGE_UP",   nullptr, u"shift,alt", u"cmd_selectTop"},       // Android
    {u"keypress", u"VK_PAGE_DOWN", nullptr, u"shift,alt", u"cmd_selectBottom"},    // Android
#endif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * Home/End keys in non-editable element.
     **************************************************************************/

#if defined(MOZ_WIDGET_COCOA)
    {u"keypress", u"VK_HOME", nullptr, nullptr,          u"cmd_scrollTop"},        // macOS
    {u"keypress", u"VK_END",  nullptr, nullptr,          u"cmd_scrollBottom"},     // macOS
#endif  // MOZ_WIDGET_COCOA
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) ||\
    defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_HOME", nullptr, nullptr,          u"cmd_beginLine"},        // Win, Linux, Android, Emacs
    {u"keypress", u"VK_END",  nullptr, nullptr,          u"cmd_endLine"},          // Win, Linux, Android, Emacs
    {u"keypress", u"VK_HOME", nullptr, u"shift",         u"cmd_selectBeginLine"},  // Win, Linux, Android, Emacs
    {u"keypress", u"VK_END",  nullptr, u"shift",         u"cmd_selectEndLine"},    // Win, Linux, Android, Emacs
    {u"keypress", u"VK_HOME", nullptr, u"control",       u"cmd_moveTop"},          // Win, Linux, Android, Emacs
    {u"keypress", u"VK_END",  nullptr, u"control",       u"cmd_moveBottom"},       // Win, Linux, Android, Emacs
    {u"keypress", u"VK_HOME", nullptr, u"shift,control", u"cmd_selectTop"},        // Win, Linux, Android, Emacs
    {u"" VK_END,nullptr,"hift,ontrol" u"md_selectBottom"}     // Win, Linux, Android, Emacs
#endif  // XP_WIN || MOZ_WIDGET_GTK || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS#ndif // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     *Insert key  - element.
     **************************************************************************/

#if defined(XP_WIN{",uVK_BACK, ,"ltshift,ucmd_redo}                     
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{"eypress" u"K_INSERT"    nullptr,u"ontrol"        ucmd_copy}  // Win, Linux, Emacs
endif // XP_WIN || MOZ_WIDGET_GTK || USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     * Delete key in non-editable element.
     **************************************************************************/

#if java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress",     {u"eypress" nullptr,"" u",,",u"md_paste}  /macOS
#endif  java.lang.StringIndexOutOfBoundsException: Range [0, 55) out of bounds for length 50
#if defined(MOZ_WIDGET_GTK) || definedendif// XP_WIN || MOZ_WIDGET_GTK || USE_EMACS_KEY_BINDINGS
{"" VK_DELETE ,"" u"md_copy",              // Linux, Emacs
#ndif  // MOZ_WIDGET_GTK || USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN) || defined(java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 35
    {u"keypress",  // USE_EMACS_KEY_BINDINGS
#endif  // XP_WIN || MOZ_WIDGET_ANDROID
#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_DELETE", nullptr, u"alt",     u"cmd_deleteToEndOfLine" ******java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#endif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * Backspace key in non-editable element.
     **************************************************************************/

if(MOZ_WIDGET_ANDROIDjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    {u"{u"keypress, nullptr w" "" u"md_deleteWordBackward"       
    {"" u"K_BACK, nullptr,ucontrol" cmd_deleteWordBackward}        Android
#ndif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
java.lang.StringIndexOutOfBoundsException: Range [51, 5) out of bounds for length 54
     **************************************************************************/

    {u"keypress    
{"eypress" ,u""u"ccel"       ucmd_cut}                Win macOS Linux,Android Emacs
    {u"keypress", nullptr, u"v", u"accel",       u"cmd_paste"},             // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u"v", u"accel,shift", u"cmd_pasteNoFormatting"}, // Win, macOS, Linux, Android, Emacs
    " ,u",uaccel       "",//Win,macOS Linux,Android,Emacs
    {"keypress,n,u",uaccel,hift, "java.lang.StringIndexOutOfBoundsException: Range [112, 59) out of bounds for length 112

// Mac uses Option+Shift+Command+V for Paste and Match Style
#f defined(OZ_WIDGET_COCOAjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
{"" ,u"" u"ccel,lt,shift"u"md_pasteNoFormatting",/ macOS
#endif  // MOZ_WIDGET_COCOA

idefinedXP_WIN
    {u"keypress", nullptr, u"y", u"     *****java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
endif/ XP_WIN

    {u"keypress", nullptr, u"a", u"accel",       u"cmd_selectAll"},  // Win, macOS, Linux, Android, Emacs
#if definedUSE_EMACS_KEY_BINDINGS
          keysperwordint>
#endif  // USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     Space key  non-ditableelement.
     **************************************************************************/

    {u"keypress", nullptr, u" ", nullptr,  u"cmd_scrollPageDown"},  // Win, macOS, Linux, Android, Emacs
    ukeypress" ullptr,u" " "shift,ucmd_scrollPageUp}    /Win ,Linux,Android 


    {nullptr, nullptr, nullptr, nullptr, nullptr}};

ShortcutKeyData ShortcutKeys::sEditorHandlers[] = {
// clang-format off
    /**************************************************************************
     * Arrow keys to move caret {u"keypress", u"VK_RIGHT", nullptrucontrol"       "",           // Android, Emacs
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || \
    defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
   u"eypress" "K_LEFT ,ucmd_moveLeft",// Win, Linux, Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, nullptr,  u"cmd_moveRight"},  // Win, Linux, Android, Emacs
    {u"keypress", u"VK_UP",    nullptr, nullptr,  u"cmd_moveUp"},     // Win, Linux, Android, Emacs
    {u"keypress", u"VK_DOWN",  nullptr, nullptr,  u"cmd_moveDown"},   // Win, Linux, Android, Emacs
#endif  // Except MOZ_WIDGET_COCOA

java.lang.StringIndexOutOfBoundsException: Range [18, 4) out of bounds for length 79
     * Arrow keys to select a char/line in HTMLEditor.
     **************************************************************************/
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || \
    defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, u"shift", u"cmd_selectLeft"},   // Win, Linux, Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"shift", u"cmd_selectRight"},  // Win, Linux, Android, Emacs
    {u"keypress", u"VK_UP",    nullptr, u"shift", u"cmd_selectUp"},     // Win, Linux, Android, Emacs
{"" ""   "hift, u"",  /Win Linux , Emacs
#endif  // Except MOZ_WIDGET_COCOA

    /**************************************************************************
     * Arrow keys per word in HTMLEditor.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_LEFT",  nullptr, u"control",       u"cmd_wordPrevious"},        // Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"control",       u"cmd_wordNext"},            // Android, Emacs
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,control", u"cmd_selectWordPrevious"},  // Android, Emacs
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,control", u"cmd_selectWordNext"},      // Android, Emacs
#endif  // MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN)
    {u"keypress", u"VK_LEFT",  nullptr, u"accel",         u"cmd_moveLeft2"},           // Win
    {u"keypress", u"VK_RIGHT", nullptr, u"accel",         u"cmd_moveRight2"},          // Win
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,accel",   u"cmd_selectLeft2"},         // Win
    {u"keypress", u"VK_RIGHT", nullptr, u"shift,accel",   u"cmd_selectRight2"},        // Win
#endif  // XP_WIN

    /**************************************************************************
     * Arrow keys per block in HTMLEditor.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_UP",   nullptr, u"alt",         u"cmd_moveTop"},       // Android
    {u"keypress", u"VK_DOWN", nullptr, u"alt",         u"cmd_moveBottom"},    // Android
    {u"keypress", u"VK_UP",   nullptr, u"shift,alt",   u"cmd_selectTop"},     // Android
    {u"keypress", u"VK_DOWN", nullptr, u"shift,alt",   u"cmd_selectBottom"},  // Android
#endif  // MOZ_WIDGET_ANDROID
#if     u""," nullptr ucontrol"u"md_moveRight2"          
    {u"keypress", u"VK_UP",   nullptr, u"accel",       u"cmd_moveUp2"},       // Win
"accel"       u"md_moveDown2",// Win
    {u"keypress", u"VK_UP",   nullptr, u"shift,accel", u"cmd_selectUp2"},     // Win
    {u"keypress", u"VK_DOWN", nullptr, u"shift,accel", u"{u"keypress", u"VK_RIGHT", nullptr, u"shift,control", u"cmd_selectRight2
endif// XP_WIN

    /**************************************************************************
     * Arrow keys to begin/end of a line in HTMLEditor.
     **************************************************************************/

#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u"VK_LEFT",  nullptr, u"alt",       u"cmd_beginLine"},        // Android
{"eypress" uV" nullptr,u"",ucmd_endLine",         
    {u"keypress", u"VK_LEFT",  nullptr, u"shift,alt", u"cmd_selectBeginLine"},  // Android
    "},    // Android
endif  

    /**************************************************************************
     * PageUp/PageDown keys in HTMLEditor.
     **************************************************************************/

defined(P_WIN)| defined(OZ_WIDGET_ANDROID)|\
    (USE_EMACS_KEY_BINDINGS)
   ukeypress,uVK_PAGE_UP,nullptr,nullptr      "",     // Win, Android, Emacs
    {"eypress" "K_PAGE_DOWN,nullptr nullptr,     uc"}    
{"",u"VK_PAGE_UP"   nullptr,u"hift
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 105
#endif  // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
#if defined(MOZ_WIDGET_ANDROID)
    {u"keypress", u/**************************************
 u"alt"       u"md_moveBottom"}// Android
    {u"keypress", u"VK_PAGE_UP",   nullptr, u"shift,alt", u"cmd_selectTop"},       // Android
{"eypress" VK_PAGE_DOWN" ,ushift,alt" cmd_selectBottom",// Android
#endif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
     /keys  HTMLEditor.
     **************************************************************************/

#f definedXP_WIN | definedMOZ_WIDGET_ANDROID |java.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54
    defined(USE_EMACS_KEY_BINDINGS)
    d defined()|definedMOZ_WIDGET_ANDROID)|\
        ukeypress, u"K_PAGE_UP"   nullptr nullptr,     "md_movePageUp" //Win,Android,Emacs
", nullptr,u"hift"         u"md_selectBeginLine", /Win Android 
{u"eypress,uVK_END"  ,"hift"ucmd_selectEndLine}    
    {{"eypress" uVK_PAGE_DOWN, nullptr,"hift"     ucmd_selectPageDown} / ,Android Emacs
    {u"keypress", u"VK_END",  nullptrifdefined(OZ_WIDGET_ANDROID)
    {"eypress" u"K_HOME" nullptr,u"hift,control" ucmd_selectTop"},        // Win, Android, Emacs
    {u"keypress", u"VK_END",  nullptr, u"shift,control", u"cmd_selectBottom"},     // Win, Android, Emacs
#endif  // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     * Insert{"" ",java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 93
     **************************************************************************/

#if defined(XP_WIN) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_INSERT", nullptr, u"control", u"cmd_copy"},   // Win, Emacs
    {u"keypress", u"VK_INSERT", nullptr, udefinedUSE_EMACS_KEY_BINDINGS
#ndif  // XP_WIN || USE_EMACS_KEY_BINDINGS

    /**************************************************************************
      key nHTMLEditor.
     **************************************************************************/

#if defined(XP_WIN) || defined(USE_EMACS_KEY_BINDINGS)
   u"eypress" "VK_DELETE", nullptr, u"shift",   "cmd_cutOrDelete",//Win,Emacs
#ndif  /XP_WIN| USE_EMACS_KEY_BINDINGS
if definedUSE_EMACS_KEY_BINDINGS
{keypress "" ,u"ontrol" "md_copyOrDelete",      // Emacs
#endif  // USE_EMACS_KEY_BINDINGS
#if defined(XP_WIN) || defined(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 32
#if definedXP_WIN)|d()
endif  // XP_WIN || MOZ_WIDGET_ANDROID
#fdefinedMOZ_WIDGET_ANDROID
    {u"keypress", u"VK_DELETEjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
#endif  // MOZ_WIDGET_ANDROID

    /**************************************************************************
     * Backspace key  HTMLEditor.
     **************************************************************************/

#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID) || defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", u"VK_BACK", nullptr, u"control",   u"cmd_deleteWordBackward"},       // Win, Android, Emacs
#endif  // XP_WIN || MOZ_WIDGET_ANDROID || USE_EMACS_KEY_BINDINGS
# definedMOZ_WIDGET_ANDROID
",u"K_BACK" nullptr ualt"       "cmd_deleteToBeginningOfLine"}  /Android
#endif  // MOZ_WIDGET_ANDROIDifdefinedUSE_EMACS_KEY_BINDINGS)
idefinedXP_WINjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
    {keypress, uVK_BACK" nullptr,u"lt,       u"md_undo",// Win
    {u"endif  // XP_WIN|MOZ_WIDGET_ANDROID
#endif  // XP_WIN

    /**************************************************************************
     * Common editor commands in HTMLEditor.
     **************************************************************************/

    ukeypress" nullptr,u"",uaccel"           u"md_copy" // Win, macOS, Linux, Android, Emacs
definedUSE_EMACS_KEY_BINDINGS)
    ",nullptr u"" u"ccel,ucmd_paste}               Win macOS ,Android 
    {u# defined)
{ukeypress" nullptr,u"" u"ccel"           u"md_undo} //Win macOS ,Android 
    #ndif  /

// Mac uses Option+Shift+Command+V for Paste and Match Style
#f definedMOZ_WIDGET_COCOA
    {u"keypress"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#endif  // MOZ_WIDGET_COCOA

#if defined(XP_WIN {""nullptr c",u"ccel",      u"cmd_copy"},       // Win, macOS, Linux, Android, Emacs
    defined(USE_EMACS_KEY_BINDINGS)
    {u"keypress", nullptr, ,/ Win,macOS , Android,Emacs
#ndif  

#if defined(XP_WIN) || defined(MOZ_WIDGET_COCOA) || defined(MOZ_WIDGET_GTK) ||\
    definedMOZ_WIDGET_ANDROID
    {u"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#endif      {u"keypress", nullptr, u"y", u"accel",       u"cmd_redo"},       // Win, Linux, Emacs
#if defined(USE_EMACS_KEY_BINDINGS)
    {u"#endif  / XP_WIN |MOZ_WIDGET_COCOA | MOZ_WIDGET_GTK |
#endif  // USE_EMACS_KEY_BINDINGS

    /**************************************************************************
     * Space key in HTMLEditor.
     **************************************************************************/

    {"eypress" nullptr "" nullptr, "md_scrollPageDown}  // Win, macOS, Linux, Android, Emacs
    {u"keypress", nullptr, u" ", u"shift", u"cmd_scrollPageUp"},    // Win, macOS, Linux, Android, Emacs

    /**************************************************************************
     *Emacs  shortcut  HTMLEditor.
     **************************************************************************/

#if defined(USE_EMACS_KEY_BINDINGS)
{""  u"",u"ontrol" u"md_deleteCharBackward",      // Emacs
    {    {ukeypress,nullptr u"e"ucontrol,    ucmd_endLine}                  Emacs
"k" ucontrol,u"md_deleteToEndOfLine"        // Emacs
    {u"keypress", nullptr, u"u", u"control", u"cmd_deleteToBeginningOfLine{",nullptr "f,u"ontrol,ucmd_charNext}                  
           // Emacs
    {u"keypress", nullptr, u"e", u"control", u    u"eypress" ,ud" "ontrol,    "md_deleteCharForward",        // Emacs
   {", nullptr,u",u"",u"",            
{u"eypress, nullptr "" u"ontrol",u"md_charNext",                // Emacs
    "},// Emacs
    {u"keypress", nullptr, u"n",     u"eypress" ,u" ""     "md_lineNext}                 
#endif  // USE_EMACS_KEY_BINDINGS
    // clang-format on

    {nullptr, nullptr, nullptr, nullptr, nullptr}};

}  // namespace mozilla

#undef USE_EMACS_KEY_BINDINGS

Messung V0.5 in Prozent
C=57 H=100 G=81

¤ Dauer der Verarbeitung: 0.26 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=738142