mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1083617 - Block the blur message if focus is already removed from remote frame. r=yxl
This commit is contained in:
parent
4466224d40
commit
080d598bb4
@ -249,14 +249,34 @@ this.Keyboard = {
|
||||
},
|
||||
|
||||
forwardEvent: function keyboardForwardEvent(newEventName, msg) {
|
||||
this.formMM = msg.target.QueryInterface(Ci.nsIFrameLoaderOwner)
|
||||
.frameLoader.messageManager;
|
||||
let mm = msg.target.QueryInterface(Ci.nsIFrameLoaderOwner)
|
||||
.frameLoader.messageManager;
|
||||
if (newEventName === 'Keyboard:FocusChange' &&
|
||||
msg.data.type === 'blur') {
|
||||
// A blur message can't be sent to the keyboard if the focus has
|
||||
// already taken away at first place.
|
||||
// This check is here to prevent problem caused by out-of-order
|
||||
// ipc messages from two processes.
|
||||
if (mm !== this.formMM) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.sendToKeyboard(newEventName, msg.data);
|
||||
return true;
|
||||
}
|
||||
|
||||
this.formMM = mm;
|
||||
|
||||
this.sendToKeyboard(newEventName, msg.data);
|
||||
return true;
|
||||
},
|
||||
|
||||
handleFocusChange: function keyboardHandleFocusChange(msg) {
|
||||
this.forwardEvent('Keyboard:FocusChange', msg);
|
||||
let isSent = this.forwardEvent('Keyboard:FocusChange', msg);
|
||||
|
||||
if (!isSent) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Chrome event, used also to render value selectors; that's why we need
|
||||
// the info about choices / min / max here as well...
|
||||
|
Loading…
Reference in New Issue
Block a user