mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 04:45:45 +00:00
Bug 910978 part.3 Implement nsScrollPortEvent::AssignScrollPortEventData() r=smaug
This commit is contained in:
parent
843d62f529
commit
655a3b24fe
@ -649,8 +649,7 @@ nsDOMEvent::DuplicatePrivateData()
|
||||
static_cast<nsScrollPortEvent*>(mEvent);
|
||||
nsScrollPortEvent* scrollPortEvent =
|
||||
new nsScrollPortEvent(false, msg, nullptr);
|
||||
scrollPortEvent->AssignGUIEventData(*oldScrollPortEvent, true);
|
||||
scrollPortEvent->orient = oldScrollPortEvent->orient;
|
||||
scrollPortEvent->AssignScrollPortEventData(*oldScrollPortEvent, true);
|
||||
newEvent = scrollPortEvent;
|
||||
break;
|
||||
}
|
||||
|
@ -799,6 +799,14 @@ public:
|
||||
}
|
||||
|
||||
orientType orient;
|
||||
|
||||
void AssignScrollPortEventData(const nsScrollPortEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignGUIEventData(aEvent, aCopyTargets);
|
||||
|
||||
orient = aEvent.orient;
|
||||
}
|
||||
};
|
||||
|
||||
class nsScrollAreaEvent : public nsGUIEvent
|
||||
|
@ -12,6 +12,7 @@
|
||||
<div id="display">
|
||||
<input id="input-text">
|
||||
<button id="button">button</button>
|
||||
<div id="scrollable-div" style="overflow: auto; width: 30px; height: 30px;"><div id="scrolled-div" style="width: 10px; height: 10px;"></div></div>
|
||||
</div>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
@ -28,6 +29,7 @@ const kIsWin = (navigator.platform.indexOf("Win") == 0);
|
||||
|
||||
var gEvent = null;
|
||||
var gCopiedEvent = [];
|
||||
var gCallback = null;
|
||||
|
||||
function onEvent(aEvent)
|
||||
{
|
||||
@ -39,6 +41,7 @@ function onEvent(aEvent)
|
||||
gCopiedEvent.push({ name: attr, value: aEvent[attr]});
|
||||
}
|
||||
}
|
||||
setTimeout(gCallback, 0);
|
||||
}
|
||||
|
||||
const WIN_KL_US = 0x409;
|
||||
@ -60,6 +63,26 @@ const kTests = [
|
||||
},
|
||||
todoMismatch: [],
|
||||
},
|
||||
{ description: "nsScrollPortEvent (overflow, vertical)",
|
||||
targetID: "scrollable-div", eventType: "overflow",
|
||||
dispatchEvent: function () {
|
||||
document.getElementById("scrolled-div").style.height = "500px";
|
||||
},
|
||||
canRun: function () {
|
||||
return true;
|
||||
},
|
||||
todoMismatch: [],
|
||||
},
|
||||
{ description: "nsScrollPortEvent (overflow, horizontal)",
|
||||
targetID: "scrollable-div", eventType: "overflow",
|
||||
dispatchEvent: function () {
|
||||
document.getElementById("scrolled-div").style.width = "500px";
|
||||
},
|
||||
canRun: function () {
|
||||
return true;
|
||||
},
|
||||
todoMismatch: [],
|
||||
},
|
||||
{ description: "nsKeyEvent (keydown of 'a' key without modifiers)",
|
||||
targetID: "input-text", eventType: "keydown",
|
||||
dispatchEvent: function () {
|
||||
@ -174,7 +197,7 @@ function doTest(aTest)
|
||||
gCopiedEvent = [];
|
||||
var target = document.getElementById(aTest.targetID);
|
||||
target.addEventListener(aTest.eventType, onEvent, true);
|
||||
setTimeout(function () {
|
||||
gCallback = function () {
|
||||
target.removeEventListener(aTest.eventType, onEvent, true);
|
||||
ok(gEvent !== null, aTest.description + ": failed to get duplicated event");
|
||||
ok(gCopiedEvent.length > 0, aTest.description + ": count of attribute of the event must be larger than 0");
|
||||
@ -193,7 +216,7 @@ function doTest(aTest)
|
||||
}
|
||||
}
|
||||
runNextTest();
|
||||
}, 0);
|
||||
};
|
||||
aTest.dispatchEvent();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user