mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-30 02:57:29 +09:00
Implement auxclick
Bug(s): https://bugzilla.mozilla.org/show_bug.cgi?id=1304044 (native in moebius)
This commit is contained in:
parent
a0aca802af
commit
ea3430429d
15 changed files with 201 additions and 27 deletions
|
|
@ -704,6 +704,7 @@ GK_ATOM(onattributechanged, "onattributechanged")
|
||||||
GK_ATOM(onattributereadreq, "onattributereadreq")
|
GK_ATOM(onattributereadreq, "onattributereadreq")
|
||||||
GK_ATOM(onattributewritereq, "onattributewritereq")
|
GK_ATOM(onattributewritereq, "onattributewritereq")
|
||||||
GK_ATOM(onaudioprocess, "onaudioprocess")
|
GK_ATOM(onaudioprocess, "onaudioprocess")
|
||||||
|
GK_ATOM(onauxclick, "onauxclick")
|
||||||
GK_ATOM(onbeforecopy, "onbeforecopy")
|
GK_ATOM(onbeforecopy, "onbeforecopy")
|
||||||
GK_ATOM(onbeforecut, "onbeforecut")
|
GK_ATOM(onbeforecut, "onbeforecut")
|
||||||
GK_ATOM(onbeforepaste, "onbeforepaste")
|
GK_ATOM(onbeforepaste, "onbeforepaste")
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,10 @@ EVENT(change,
|
||||||
eFormChange,
|
eFormChange,
|
||||||
EventNameType_HTMLXUL,
|
EventNameType_HTMLXUL,
|
||||||
eBasicEventClass)
|
eBasicEventClass)
|
||||||
|
EVENT(auxclick,
|
||||||
|
eMouseAuxClick,
|
||||||
|
EventNameType_All,
|
||||||
|
eMouseEventClass)
|
||||||
EVENT(click,
|
EVENT(click,
|
||||||
eMouseClick,
|
eMouseClick,
|
||||||
EventNameType_All,
|
EventNameType_All,
|
||||||
|
|
|
||||||
|
|
@ -492,6 +492,7 @@ IsMessageMouseUserActivity(EventMessage aMessage)
|
||||||
return aMessage == eMouseMove ||
|
return aMessage == eMouseMove ||
|
||||||
aMessage == eMouseUp ||
|
aMessage == eMouseUp ||
|
||||||
aMessage == eMouseDown ||
|
aMessage == eMouseDown ||
|
||||||
|
aMessage == eMouseAuxClick ||
|
||||||
aMessage == eMouseDoubleClick ||
|
aMessage == eMouseDoubleClick ||
|
||||||
aMessage == eMouseClick ||
|
aMessage == eMouseClick ||
|
||||||
aMessage == eMouseActivate ||
|
aMessage == eMouseActivate ||
|
||||||
|
|
@ -4632,6 +4633,32 @@ EventStateManager::SetClickCount(WidgetMouseEvent* aEvent,
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsresult
|
||||||
|
EventStateManager::InitAndDispatchClickEvent(WidgetMouseEvent* aEvent,
|
||||||
|
nsEventStatus* aStatus,
|
||||||
|
EventMessage aMessage,
|
||||||
|
nsIPresShell* aPresShell,
|
||||||
|
nsIContent* aMouseTarget,
|
||||||
|
nsWeakFrame aCurrentTarget,
|
||||||
|
bool aNoContentDispatch)
|
||||||
|
{
|
||||||
|
WidgetMouseEvent event(aEvent->IsTrusted(), aMessage,
|
||||||
|
aEvent->mWidget, WidgetMouseEvent::eReal);
|
||||||
|
|
||||||
|
event.mRefPoint = aEvent->mRefPoint;
|
||||||
|
event.mClickCount = aEvent->mClickCount;
|
||||||
|
event.mModifiers = aEvent->mModifiers;
|
||||||
|
event.buttons = aEvent->buttons;
|
||||||
|
event.mTime = aEvent->mTime;
|
||||||
|
event.mTimeStamp = aEvent->mTimeStamp;
|
||||||
|
event.mFlags.mNoContentDispatch = aNoContentDispatch;
|
||||||
|
event.button = aEvent->button;
|
||||||
|
event.inputSource = aEvent->inputSource;
|
||||||
|
|
||||||
|
return aPresShell->HandleEventWithTarget(&event, aCurrentTarget,
|
||||||
|
aMouseTarget, aStatus);
|
||||||
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
EventStateManager::CheckForAndDispatchClick(WidgetMouseEvent* aEvent,
|
EventStateManager::CheckForAndDispatchClick(WidgetMouseEvent* aEvent,
|
||||||
nsEventStatus* aStatus)
|
nsEventStatus* aStatus)
|
||||||
|
|
@ -4651,17 +4678,7 @@ EventStateManager::CheckForAndDispatchClick(WidgetMouseEvent* aEvent,
|
||||||
(aEvent->button == WidgetMouseEvent::eMiddleButton ||
|
(aEvent->button == WidgetMouseEvent::eMiddleButton ||
|
||||||
aEvent->button == WidgetMouseEvent::eRightButton);
|
aEvent->button == WidgetMouseEvent::eRightButton);
|
||||||
|
|
||||||
WidgetMouseEvent event(aEvent->IsTrusted(), eMouseClick,
|
bool fireAuxClick = notDispatchToContents;
|
||||||
aEvent->mWidget, WidgetMouseEvent::eReal);
|
|
||||||
event.mRefPoint = aEvent->mRefPoint;
|
|
||||||
event.mClickCount = aEvent->mClickCount;
|
|
||||||
event.mModifiers = aEvent->mModifiers;
|
|
||||||
event.buttons = aEvent->buttons;
|
|
||||||
event.mTime = aEvent->mTime;
|
|
||||||
event.mTimeStamp = aEvent->mTimeStamp;
|
|
||||||
event.mFlags.mNoContentDispatch = notDispatchToContents;
|
|
||||||
event.button = aEvent->button;
|
|
||||||
event.inputSource = aEvent->inputSource;
|
|
||||||
|
|
||||||
nsCOMPtr<nsIPresShell> presShell = mPresContext->GetPresShell();
|
nsCOMPtr<nsIPresShell> presShell = mPresContext->GetPresShell();
|
||||||
if (presShell) {
|
if (presShell) {
|
||||||
|
|
@ -4680,23 +4697,22 @@ EventStateManager::CheckForAndDispatchClick(WidgetMouseEvent* aEvent,
|
||||||
|
|
||||||
// HandleEvent clears out mCurrentTarget which we might need again
|
// HandleEvent clears out mCurrentTarget which we might need again
|
||||||
nsWeakFrame currentTarget = mCurrentTarget;
|
nsWeakFrame currentTarget = mCurrentTarget;
|
||||||
ret = presShell->HandleEventWithTarget(&event, currentTarget,
|
ret = InitAndDispatchClickEvent(aEvent, aStatus, eMouseClick,
|
||||||
mouseContent, aStatus);
|
presShell, mouseContent, currentTarget,
|
||||||
|
notDispatchToContents);
|
||||||
|
|
||||||
if (NS_SUCCEEDED(ret) && aEvent->mClickCount == 2 &&
|
if (NS_SUCCEEDED(ret) && aEvent->mClickCount == 2 &&
|
||||||
mouseContent && mouseContent->IsInComposedDoc()) {
|
mouseContent && mouseContent->IsInComposedDoc()) {
|
||||||
//fire double click
|
//fire double click
|
||||||
WidgetMouseEvent event2(aEvent->IsTrusted(), eMouseDoubleClick,
|
ret = InitAndDispatchClickEvent(aEvent, aStatus, eMouseDoubleClick,
|
||||||
aEvent->mWidget, WidgetMouseEvent::eReal);
|
presShell, mouseContent, currentTarget,
|
||||||
event2.mRefPoint = aEvent->mRefPoint;
|
notDispatchToContents);
|
||||||
event2.mClickCount = aEvent->mClickCount;
|
}
|
||||||
event2.mModifiers = aEvent->mModifiers;
|
if (NS_SUCCEEDED(ret) && mouseContent && fireAuxClick &&
|
||||||
event2.buttons = aEvent->buttons;
|
mouseContent->IsInComposedDoc()) {
|
||||||
event2.mFlags.mNoContentDispatch = notDispatchToContents;
|
ret = InitAndDispatchClickEvent(aEvent, aStatus, eMouseAuxClick,
|
||||||
event2.button = aEvent->button;
|
presShell, mouseContent, currentTarget,
|
||||||
event2.inputSource = aEvent->inputSource;
|
false);
|
||||||
|
|
||||||
ret = presShell->HandleEventWithTarget(&event2, currentTarget,
|
|
||||||
mouseContent, aStatus);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -415,6 +415,13 @@ protected:
|
||||||
*/
|
*/
|
||||||
void UpdateDragDataTransfer(WidgetDragEvent* dragEvent);
|
void UpdateDragDataTransfer(WidgetDragEvent* dragEvent);
|
||||||
|
|
||||||
|
static nsresult InitAndDispatchClickEvent(WidgetMouseEvent* aEvent,
|
||||||
|
nsEventStatus* aStatus,
|
||||||
|
EventMessage aMessage,
|
||||||
|
nsIPresShell* aPresShell,
|
||||||
|
nsIContent* aMouseTarget,
|
||||||
|
nsWeakFrame aCurrentTarget,
|
||||||
|
bool aNoContentDispatch);
|
||||||
nsresult SetClickCount(WidgetMouseEvent* aEvent, nsEventStatus* aStatus);
|
nsresult SetClickCount(WidgetMouseEvent* aEvent, nsEventStatus* aStatus);
|
||||||
nsresult CheckForAndDispatchClick(WidgetMouseEvent* aEvent,
|
nsresult CheckForAndDispatchClick(WidgetMouseEvent* aEvent,
|
||||||
nsEventStatus* aStatus);
|
nsEventStatus* aStatus);
|
||||||
|
|
@ -1046,6 +1053,7 @@ private:
|
||||||
#define NS_EVENT_NEEDS_FRAME(event) \
|
#define NS_EVENT_NEEDS_FRAME(event) \
|
||||||
(!(event)->HasPluginActivationEventMessage() && \
|
(!(event)->HasPluginActivationEventMessage() && \
|
||||||
(event)->mMessage != eMouseClick && \
|
(event)->mMessage != eMouseClick && \
|
||||||
(event)->mMessage != eMouseDoubleClick)
|
(event)->mMessage != eMouseDoubleClick && \
|
||||||
|
(event)->mMessage != eMouseAuxClick)
|
||||||
|
|
||||||
#endif // mozilla_EventStateManager_h_
|
#endif // mozilla_EventStateManager_h_
|
||||||
|
|
|
||||||
|
|
@ -257,6 +257,7 @@ WheelTransaction::OnEvent(WidgetEvent* aEvent)
|
||||||
case eMouseUp:
|
case eMouseUp:
|
||||||
case eMouseDown:
|
case eMouseDown:
|
||||||
case eMouseDoubleClick:
|
case eMouseDoubleClick:
|
||||||
|
case eMouseAuxClick:
|
||||||
case eMouseClick:
|
case eMouseClick:
|
||||||
case eContextMenu:
|
case eContextMenu:
|
||||||
case eDrop:
|
case eDrop:
|
||||||
|
|
|
||||||
|
|
@ -184,3 +184,4 @@ skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
|
||||||
[test_wheel_default_action.html]
|
[test_wheel_default_action.html]
|
||||||
[test_bug687787.html]
|
[test_bug687787.html]
|
||||||
[test_bug1298970.html]
|
[test_bug1298970.html]
|
||||||
|
[test_bug1304044.html]
|
||||||
|
|
|
||||||
133
dom/events/test/test_bug1304044.html
Normal file
133
dom/events/test/test_bug1304044.html
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html>
|
||||||
|
<!--
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1304044
|
||||||
|
-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Test for Bug 1304044</title>
|
||||||
|
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||||
|
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||||
|
<script type="application/javascript">
|
||||||
|
var eventsFired = [];
|
||||||
|
var target;
|
||||||
|
var eventsExpected;
|
||||||
|
|
||||||
|
function GetNodeString(node) {
|
||||||
|
if (node == window)
|
||||||
|
return "window";
|
||||||
|
if (node == document)
|
||||||
|
return "document";
|
||||||
|
if (node.id)
|
||||||
|
return node.id;
|
||||||
|
if (node.nodeName)
|
||||||
|
return node.nodeName;
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
function TargetAndListener(listener, target) {
|
||||||
|
this.listener = listener;
|
||||||
|
this.target = target;
|
||||||
|
}
|
||||||
|
|
||||||
|
TargetAndListener.prototype.toString = function() {
|
||||||
|
var targetName = GetNodeString(this.target);
|
||||||
|
var listenerName = GetNodeString(this.listener);
|
||||||
|
return "(listener: " + listenerName + ", target: " + targetName + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
var tests = [
|
||||||
|
TestAuxClickBubblesForEventListener,
|
||||||
|
TestAuxClickBubblesForOnAuxClick,
|
||||||
|
];
|
||||||
|
|
||||||
|
function CompareEvents(evt, expected) {
|
||||||
|
return evt && expected && evt.listener == expected.listener &&
|
||||||
|
evt.target == expected.target;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ResetEventsFired() {
|
||||||
|
eventsFired = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
function ClearEventListeners() {
|
||||||
|
for (i in arguments) {
|
||||||
|
arguments[i].removeEventListener("auxclick", log_event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ClickTarget(tgt) {
|
||||||
|
synthesizeMouseAtCenter(tgt, {type : "mousedown", button: 2}, window);
|
||||||
|
synthesizeMouseAtCenter(tgt, {type : "mouseup", button: 2}, window);
|
||||||
|
}
|
||||||
|
|
||||||
|
function log_event(e) {
|
||||||
|
eventsFired[eventsFired.length] = new TargetAndListener(this, e.target);
|
||||||
|
}
|
||||||
|
|
||||||
|
function CompareEventsToExpected(expected, actual) {
|
||||||
|
for (var i = 0; i < expected.length || i < actual.length; i++) {
|
||||||
|
ok(CompareEvents(actual[i], expected[i]),
|
||||||
|
"Auxclick receiver's don't match: TargetAndListener " +
|
||||||
|
i + ": Expected: " + expected[i] + ", Actual: " + actual[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function TestAuxClickBubblesForEventListener() {
|
||||||
|
target.addEventListener("auxclick", log_event);
|
||||||
|
document.addEventListener("auxclick", log_event);
|
||||||
|
window.addEventListener("auxclick", log_event);
|
||||||
|
|
||||||
|
ClickTarget(target)
|
||||||
|
CompareEventsToExpected(eventsExpected, eventsFired);
|
||||||
|
ResetEventsFired();
|
||||||
|
ClearEventListeners(target, document, window);
|
||||||
|
}
|
||||||
|
|
||||||
|
function TestAuxClickBubblesForOnAuxClick() {
|
||||||
|
target.onauxclick = log_event;
|
||||||
|
document.onauxclick = log_event;
|
||||||
|
window.onauxclick = log_event;
|
||||||
|
|
||||||
|
ClickTarget(target);
|
||||||
|
CompareEventsToExpected(eventsExpected, eventsFired);
|
||||||
|
ResetEventsFired();
|
||||||
|
}
|
||||||
|
|
||||||
|
function RunTests(){
|
||||||
|
for (var i = 0; i < tests.length; i++) {
|
||||||
|
tests[i]();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Begin() {
|
||||||
|
target = document.getElementById("target");
|
||||||
|
eventsExpected = [
|
||||||
|
new TargetAndListener(target, target),
|
||||||
|
new TargetAndListener(document, target),
|
||||||
|
new TargetAndListener(window, target),
|
||||||
|
];
|
||||||
|
RunTests();
|
||||||
|
target.remove();
|
||||||
|
SimpleTest.finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
SimpleTest.executeSoon(Begin);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1304044">Mozilla Bug 1304044</a>
|
||||||
|
<p id="display">
|
||||||
|
<div id="target">Target</div>
|
||||||
|
</p>
|
||||||
|
<div id="content" style:"display:none">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<pre id="test">
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -2532,6 +2532,7 @@ nsEventStatus nsPluginInstanceOwner::ProcessEvent(const WidgetGUIEvent& anEvent)
|
||||||
NS_ASSERTION(anEvent.mMessage == eMouseDown ||
|
NS_ASSERTION(anEvent.mMessage == eMouseDown ||
|
||||||
anEvent.mMessage == eMouseUp ||
|
anEvent.mMessage == eMouseUp ||
|
||||||
anEvent.mMessage == eMouseDoubleClick ||
|
anEvent.mMessage == eMouseDoubleClick ||
|
||||||
|
anEvent.mMessage == eMouseAuxClick ||
|
||||||
anEvent.mMessage == eMouseOver ||
|
anEvent.mMessage == eMouseOver ||
|
||||||
anEvent.mMessage == eMouseOut ||
|
anEvent.mMessage == eMouseOut ||
|
||||||
anEvent.mMessage == eMouseMove ||
|
anEvent.mMessage == eMouseMove ||
|
||||||
|
|
@ -2594,6 +2595,7 @@ nsEventStatus nsPluginInstanceOwner::ProcessEvent(const WidgetGUIEvent& anEvent)
|
||||||
switch (anEvent.mMessage) {
|
switch (anEvent.mMessage) {
|
||||||
case eMouseClick:
|
case eMouseClick:
|
||||||
case eMouseDoubleClick:
|
case eMouseDoubleClick:
|
||||||
|
case eMouseAuxClick:
|
||||||
// Button up/down events sent instead.
|
// Button up/down events sent instead.
|
||||||
return rv;
|
return rv;
|
||||||
default:
|
default:
|
||||||
|
|
@ -2797,6 +2799,7 @@ nsEventStatus nsPluginInstanceOwner::ProcessEvent(const WidgetGUIEvent& anEvent)
|
||||||
switch (anEvent.mMessage) {
|
switch (anEvent.mMessage) {
|
||||||
case eMouseClick:
|
case eMouseClick:
|
||||||
case eMouseDoubleClick:
|
case eMouseDoubleClick:
|
||||||
|
case eMouseAuxClick:
|
||||||
// Button up/down events sent instead.
|
// Button up/down events sent instead.
|
||||||
return rv;
|
return rv;
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ interface GlobalEventHandlers {
|
||||||
// attribute OnErrorEventHandler onerror;
|
// attribute OnErrorEventHandler onerror;
|
||||||
attribute EventHandler onfocus;
|
attribute EventHandler onfocus;
|
||||||
//(Not implemented)attribute EventHandler oncancel;
|
//(Not implemented)attribute EventHandler oncancel;
|
||||||
|
attribute EventHandler onauxclick;
|
||||||
attribute EventHandler oncanplay;
|
attribute EventHandler oncanplay;
|
||||||
attribute EventHandler oncanplaythrough;
|
attribute EventHandler oncanplaythrough;
|
||||||
attribute EventHandler onchange;
|
attribute EventHandler onchange;
|
||||||
|
|
|
||||||
|
|
@ -1145,6 +1145,7 @@ APZCTreeManager::UpdateWheelTransaction(LayoutDeviceIntPoint aRefPoint,
|
||||||
case eMouseUp:
|
case eMouseUp:
|
||||||
case eMouseDown:
|
case eMouseDown:
|
||||||
case eMouseDoubleClick:
|
case eMouseDoubleClick:
|
||||||
|
case eMouseAuxClick:
|
||||||
case eMouseClick:
|
case eMouseClick:
|
||||||
case eContextMenu:
|
case eContextMenu:
|
||||||
case eDrop:
|
case eDrop:
|
||||||
|
|
|
||||||
|
|
@ -585,6 +585,7 @@ public:
|
||||||
case eMouseEventClass:
|
case eMouseEventClass:
|
||||||
mFlags.mComposed = mMessage == eMouseClick ||
|
mFlags.mComposed = mMessage == eMouseClick ||
|
||||||
mMessage == eMouseDoubleClick ||
|
mMessage == eMouseDoubleClick ||
|
||||||
|
mMessage == eMouseAuxClick ||
|
||||||
mMessage == eMouseDown || mMessage == eMouseUp ||
|
mMessage == eMouseDown || mMessage == eMouseUp ||
|
||||||
mMessage == eMouseEnter || mMessage == eMouseLeave ||
|
mMessage == eMouseEnter || mMessage == eMouseLeave ||
|
||||||
mMessage == eMouseOver || mMessage == eMouseOut ||
|
mMessage == eMouseOver || mMessage == eMouseOut ||
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ NS_EVENT_MESSAGE(eMouseEnterIntoWidget)
|
||||||
NS_EVENT_MESSAGE(eMouseExitFromWidget)
|
NS_EVENT_MESSAGE(eMouseExitFromWidget)
|
||||||
NS_EVENT_MESSAGE(eMouseDoubleClick)
|
NS_EVENT_MESSAGE(eMouseDoubleClick)
|
||||||
NS_EVENT_MESSAGE(eMouseClick)
|
NS_EVENT_MESSAGE(eMouseClick)
|
||||||
|
NS_EVENT_MESSAGE(eMouseAuxClick)
|
||||||
// eMouseActivate is fired when the widget is activated by a click.
|
// eMouseActivate is fired when the widget is activated by a click.
|
||||||
NS_EVENT_MESSAGE(eMouseActivate)
|
NS_EVENT_MESSAGE(eMouseActivate)
|
||||||
NS_EVENT_MESSAGE(eMouseOver)
|
NS_EVENT_MESSAGE(eMouseOver)
|
||||||
|
|
|
||||||
|
|
@ -236,6 +236,7 @@ WidgetEvent::HasMouseEventMessage() const
|
||||||
case eMouseUp:
|
case eMouseUp:
|
||||||
case eMouseClick:
|
case eMouseClick:
|
||||||
case eMouseDoubleClick:
|
case eMouseDoubleClick:
|
||||||
|
case eMouseAuxClick:
|
||||||
case eMouseEnterIntoWidget:
|
case eMouseEnterIntoWidget:
|
||||||
case eMouseExitFromWidget:
|
case eMouseExitFromWidget:
|
||||||
case eMouseActivate:
|
case eMouseActivate:
|
||||||
|
|
|
||||||
|
|
@ -3086,6 +3086,7 @@ case _value: eventName.AssignLiteral(_name) ; break
|
||||||
_ASSIGN_eventName(eMouseDown,"eMouseDown");
|
_ASSIGN_eventName(eMouseDown,"eMouseDown");
|
||||||
_ASSIGN_eventName(eMouseUp,"eMouseUp");
|
_ASSIGN_eventName(eMouseUp,"eMouseUp");
|
||||||
_ASSIGN_eventName(eMouseClick,"eMouseClick");
|
_ASSIGN_eventName(eMouseClick,"eMouseClick");
|
||||||
|
_ASSIGN_eventName(eMouseAuxClick,"eMouseAuxClick");
|
||||||
_ASSIGN_eventName(eMouseDoubleClick,"eMouseDoubleClick");
|
_ASSIGN_eventName(eMouseDoubleClick,"eMouseDoubleClick");
|
||||||
_ASSIGN_eventName(eMouseMove,"eMouseMove");
|
_ASSIGN_eventName(eMouseMove,"eMouseMove");
|
||||||
_ASSIGN_eventName(eLoad,"eLoad");
|
_ASSIGN_eventName(eLoad,"eLoad");
|
||||||
|
|
|
||||||
|
|
@ -1140,7 +1140,8 @@ WinUtils::GetIsMouseFromTouch(EventMessage aEventMessage)
|
||||||
const uint32_t MOZ_T_I_SIGNATURE = TABLET_INK_TOUCH | TABLET_INK_SIGNATURE;
|
const uint32_t MOZ_T_I_SIGNATURE = TABLET_INK_TOUCH | TABLET_INK_SIGNATURE;
|
||||||
const uint32_t MOZ_T_I_CHECK_TCH = TABLET_INK_TOUCH | TABLET_INK_CHECK;
|
const uint32_t MOZ_T_I_CHECK_TCH = TABLET_INK_TOUCH | TABLET_INK_CHECK;
|
||||||
return ((aEventMessage == eMouseMove || aEventMessage == eMouseDown ||
|
return ((aEventMessage == eMouseMove || aEventMessage == eMouseDown ||
|
||||||
aEventMessage == eMouseUp || aEventMessage == eMouseDoubleClick) &&
|
aEventMessage == eMouseUp || aEventMessage == eMouseAuxClick ||
|
||||||
|
aEventMessage == eMouseDoubleClick) &&
|
||||||
(GetMessageExtraInfo() & MOZ_T_I_SIGNATURE) == MOZ_T_I_CHECK_TCH);
|
(GetMessageExtraInfo() & MOZ_T_I_SIGNATURE) == MOZ_T_I_CHECK_TCH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue