mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 00:32:11 +00:00
4f1f5e7314
Move most the event handling stuff to the DOM. I've left nsMenuBarFrame for now, but I will be removing that in the future. The basic set up is: * nsMenuParent becomes XULMenuParentElement (menubar or popup, manages the current active menu item) * nsMenuFrame -> XULButtonElements that return true for IsMenu(). Can't use XULMenuElement because of <button type=menu>, which behaves like a, well, menu. This makes the a11y events for menus (DOMMenuItem{Active,Inactive}) make sense (before that we were firing duplicate Inactive events etc, and the event order was rather suspicious). Differential Revision: https://phabricator.services.mozilla.com/D164210
20 lines
560 B
Plaintext
20 lines
560 B
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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/.
|
|
*/
|
|
|
|
[ChromeOnly,
|
|
Exposed=Window]
|
|
interface XULMenuElement : XULElement {
|
|
[HTMLConstructor] constructor();
|
|
|
|
[BinaryName="activeMenuChild"]
|
|
attribute Element? activeChild;
|
|
|
|
boolean handleKeyPress(KeyboardEvent keyEvent);
|
|
|
|
readonly attribute boolean openedWithKey;
|
|
|
|
};
|