mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 07:15:46 +00:00
Bug 1472491: Part 5q - Add SelectChild actor. r=felipe
MozReview-Commit-ID: J5MAJMbblyr --HG-- rename : toolkit/modules/SelectContentHelper.jsm => toolkit/actors/SelectChild.jsm extra : rebase_source : 4ade8f5f0f3b68124c5f0f3cf2eae545db4b6854
This commit is contained in:
parent
d19429b2f0
commit
08e6ae3629
@ -1,7 +1,8 @@
|
||||
function hideSelectPopup(selectPopup, mode = "enter", win = window) {
|
||||
let browser = win.gBrowser.selectedBrowser;
|
||||
let selectClosedPromise = ContentTask.spawn(browser, null, async function() {
|
||||
ChromeUtils.import("resource://gre/modules/SelectContentHelper.jsm");
|
||||
let {SelectContentHelper} =
|
||||
ChromeUtils.import("resource://gre/actors/SelectChild.jsm", {});
|
||||
return ContentTaskUtils.waitForCondition(() => !SelectContentHelper.open);
|
||||
});
|
||||
|
||||
|
@ -1,9 +1,12 @@
|
||||
/* vim: set ts=2 sw=2 sts=2 et 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/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["SelectChild"];
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
ChromeUtils.defineModuleGetter(this, "BrowserUtils",
|
||||
@ -28,10 +31,6 @@ const SUPPORTED_PROPERTIES = [
|
||||
// via SelectContentHelper.open.
|
||||
var gOpen = false;
|
||||
|
||||
var EXPORTED_SYMBOLS = [
|
||||
"SelectContentHelper"
|
||||
];
|
||||
|
||||
var SelectContentHelper = function(aElement, aOptions, aGlobal) {
|
||||
this.element = aElement;
|
||||
this.initialSelection = aElement[aElement.selectedIndex] || null;
|
||||
@ -422,3 +421,21 @@ function buildOptionListForChildren(node) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
class SelectChild extends ActorChild {
|
||||
handleEvent(event) {
|
||||
if (SelectContentHelper.open) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (event.type) {
|
||||
case "mozshowdropdown":
|
||||
new SelectContentHelper(event.target, {isOpenedViaTouch: false}, this.mm);
|
||||
break;
|
||||
|
||||
case "mozshowdropdown-sourcetouch":
|
||||
new SelectContentHelper(event.target, {isOpenedViaTouch: true}, this.mm);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
@ -7,4 +7,5 @@
|
||||
FINAL_TARGET_FILES.actors += [
|
||||
'AudioPlaybackChild.jsm',
|
||||
'FindBarChild.jsm',
|
||||
'SelectChild.jsm',
|
||||
]
|
||||
|
@ -17,8 +17,6 @@ ChromeUtils.defineModuleGetter(this, "AutoCompletePopup",
|
||||
"resource://gre/modules/AutoCompletePopupContent.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "AutoScrollController",
|
||||
"resource://gre/modules/AutoScrollController.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "SelectContentHelper",
|
||||
"resource://gre/modules/SelectContentHelper.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "FindContent",
|
||||
"resource://gre/modules/FindContent.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "PrintingContent",
|
||||
@ -211,24 +209,6 @@ let AutoComplete = {
|
||||
|
||||
AutoComplete.init();
|
||||
|
||||
addEventListener("mozshowdropdown", event => {
|
||||
if (!event.isTrusted)
|
||||
return;
|
||||
|
||||
if (!SelectContentHelper.open) {
|
||||
new SelectContentHelper(event.target, {isOpenedViaTouch: false}, this);
|
||||
}
|
||||
});
|
||||
|
||||
addEventListener("mozshowdropdown-sourcetouch", event => {
|
||||
if (!event.isTrusted)
|
||||
return;
|
||||
|
||||
if (!SelectContentHelper.open) {
|
||||
new SelectContentHelper(event.target, {isOpenedViaTouch: true}, this);
|
||||
}
|
||||
});
|
||||
|
||||
let ExtFind = {
|
||||
init() {
|
||||
addMessageListener("ext-Finder:CollectResults", this);
|
||||
|
@ -120,6 +120,16 @@ let ACTORS = {
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Select: {
|
||||
child: {
|
||||
module: "resource://gre/actors/SelectChild.jsm",
|
||||
events: {
|
||||
"mozshowdropdown": {},
|
||||
"mozshowdropdown-sourcetouch": {},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
class ActorSet {
|
||||
|
@ -242,7 +242,6 @@ EXTRA_JS_MODULES += [
|
||||
'RemoteWebProgress.jsm',
|
||||
'ResetProfile.jsm',
|
||||
'ResponsivenessMonitor.jsm',
|
||||
'SelectContentHelper.jsm',
|
||||
'SelectionSourceContent.jsm',
|
||||
'SelectParentHelper.jsm',
|
||||
'ServiceRequest.jsm',
|
||||
|
Loading…
Reference in New Issue
Block a user