mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 752729 - Open select dialog via DOM event instead of Android message. r=mbrubeck
This commit is contained in:
parent
d78bda7a72
commit
2b172303e5
@ -6,31 +6,24 @@
|
||||
var SelectHelper = {
|
||||
_uiBusy: false,
|
||||
|
||||
handleEvent: function(aEvent) {
|
||||
this.handleClick(aEvent.target);
|
||||
},
|
||||
|
||||
handleClick: function(aTarget) {
|
||||
// if we're busy looking at a select we want to eat any clicks that
|
||||
// come to us, but not to process them
|
||||
if (this._uiBusy)
|
||||
return true;
|
||||
if (this._uiBusy || !this._isMenu(aTarget))
|
||||
return;
|
||||
|
||||
let target = aTarget;
|
||||
while (target) {
|
||||
if (this._isMenu(target) && !target.disabled) {
|
||||
this._uiBusy = true;
|
||||
target.focus();
|
||||
let list = this.getListForElement(target);
|
||||
this.show(list, target);
|
||||
target = null;
|
||||
this._uiBusy = false;
|
||||
return true;
|
||||
}
|
||||
if (target)
|
||||
target = target.parentNode;
|
||||
}
|
||||
return false;
|
||||
this._uiBusy = true;
|
||||
this.show(aTarget);
|
||||
this._uiBusy = false;
|
||||
},
|
||||
|
||||
show: function(aList, aElement) {
|
||||
let data = JSON.parse(sendMessageToJava({ gecko: aList }));
|
||||
show: function(aElement) {
|
||||
let list = this.getListForElement(aElement);
|
||||
let data = JSON.parse(sendMessageToJava({ gecko: list }));
|
||||
let selected = data.button;
|
||||
if (selected == -1)
|
||||
return;
|
||||
@ -40,7 +33,7 @@ var SelectHelper = {
|
||||
} else if (aElement instanceof HTMLSelectElement) {
|
||||
if (!(selected instanceof Array)) {
|
||||
let temp = [];
|
||||
for (let i = 0; i < aList.listitems.length; i++) {
|
||||
for (let i = 0; i < list.listitems.length; i++) {
|
||||
temp[i] = (i == selected);
|
||||
}
|
||||
selected = temp;
|
||||
|
@ -2546,6 +2546,7 @@ var BrowserEventHandler = {
|
||||
|
||||
BrowserApp.deck.addEventListener("DOMUpdatePageReport", PopupBlockerObserver.onUpdatePageReport, false);
|
||||
BrowserApp.deck.addEventListener("touchstart", this, false);
|
||||
BrowserApp.deck.addEventListener("click", SelectHelper, true);
|
||||
},
|
||||
|
||||
handleEvent: function(aEvent) {
|
||||
@ -2642,7 +2643,7 @@ var BrowserEventHandler = {
|
||||
this._cancelTapHighlight();
|
||||
} else if (aTopic == "Gesture:SingleTap") {
|
||||
let element = this._highlightElement;
|
||||
if (element && !SelectHelper.handleClick(element)) {
|
||||
if (element) {
|
||||
try {
|
||||
let data = JSON.parse(aData);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user