mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-03 22:07:30 +09:00
moebius#92: HTML - input - datetime
+ native in moebius: Bug 1317600: https://bugzilla.mozilla.org/show_bug.cgi?id=1317600 A note - not implemented: Bug 1282768: https://bugzilla.mozilla.org/show_bug.cgi?id=1282768 *.css: filter: url("chrome://global/skin/filters.svg#fill");, fill: Bug 1283385: https://bugzilla.mozilla.org/show_bug.cgi?id=1283385 Bug 1323109: https://bugzilla.mozilla.org/show_bug.cgi?id=1323109 Bug 1314544: https://bugzilla.mozilla.org/show_bug.cgi?id=1314544 Bug 1286182: https://bugzilla.mozilla.org/show_bug.cgi?id=1286182 Bug 1325922: https://bugzilla.mozilla.org/show_bug.cgi?id=1325922 A note - not implemented: Bug 1282768: https://bugzilla.mozilla.org/show_bug.cgi?id=1282768 *.css: filter: url("chrome://global/skin/filters.svg#fill");, fill: Bug 1320225: https://bugzilla.mozilla.org/show_bug.cgi?id=1320225 Bug 1341190: https://bugzilla.mozilla.org/show_bug.cgi?id=1341190
This commit is contained in:
parent
a807f7e6c0
commit
cac5c5adc7
34 changed files with 1267 additions and 248 deletions
|
|
@ -21,6 +21,7 @@ this.EXPORTED_SYMBOLS = [
|
|||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/Task.jsm");
|
||||
|
||||
/*
|
||||
* DateTimePickerHelper receives message from content side (input box) and
|
||||
|
|
@ -66,6 +67,9 @@ this.DateTimePickerHelper = {
|
|||
break;
|
||||
}
|
||||
case "FormDateTime:UpdatePicker": {
|
||||
if (!this.picker) {
|
||||
return;
|
||||
}
|
||||
this.picker.setPopupValue(aMessage.data);
|
||||
break;
|
||||
}
|
||||
|
|
@ -105,7 +109,7 @@ this.DateTimePickerHelper = {
|
|||
},
|
||||
|
||||
// Get picker from browser and show it anchored to the input box.
|
||||
showPicker: function(aBrowser, aData) {
|
||||
showPicker: Task.async(function* (aBrowser, aData) {
|
||||
let rect = aData.rect;
|
||||
let dir = aData.dir;
|
||||
let type = aData.type;
|
||||
|
|
@ -135,13 +139,23 @@ this.DateTimePickerHelper = {
|
|||
debug("aBrowser.dateTimePicker not found, exiting now.");
|
||||
return;
|
||||
}
|
||||
this.picker.loadPicker(type, detail);
|
||||
// The datetimepopup binding is only attached when it is needed.
|
||||
// Check if openPicker method is present to determine if binding has
|
||||
// been attached. If not, attach the binding first before calling it.
|
||||
if (!this.picker.openPicker) {
|
||||
let bindingPromise = new Promise(resolve => {
|
||||
this.picker.addEventListener("DateTimePickerBindingReady",
|
||||
resolve, {once: true});
|
||||
});
|
||||
this.picker.setAttribute("active", true);
|
||||
yield bindingPromise;
|
||||
}
|
||||
// The arrow panel needs an anchor to work. The popupAnchor (this._anchor)
|
||||
// is a transparent div that the arrow can point to.
|
||||
this.picker.openPopup(this._anchor, "after_start", 0, 0);
|
||||
this.picker.openPicker(type, this._anchor, detail);
|
||||
|
||||
this.addPickerListeners();
|
||||
},
|
||||
}),
|
||||
|
||||
// Picker is closed, do some cleanup.
|
||||
close: function() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue