зеркало из https://github.com/mozilla/gecko-dev.git
Bug 545812 - Dispatch mozfullscreenchange event when we change full-screen mode. r=smaug
This commit is contained in:
Родитель
9ffd0a4f24
Коммит
0cc316b66d
|
@ -8485,9 +8485,39 @@ GetRootDocument(nsIDocument* aDoc)
|
|||
return rpc->Document();
|
||||
}
|
||||
|
||||
class nsDispatchFullScreenChange : public nsRunnable
|
||||
{
|
||||
public:
|
||||
nsDispatchFullScreenChange(nsIDocument *aDoc)
|
||||
: mDoc(aDoc)
|
||||
{
|
||||
mTarget = aDoc->GetFullScreenElement();
|
||||
if (!mTarget) {
|
||||
mTarget = aDoc;
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHOD Run()
|
||||
{
|
||||
nsContentUtils::DispatchTrustedEvent(mDoc,
|
||||
mTarget,
|
||||
NS_LITERAL_STRING("mozfullscreenchange"),
|
||||
PR_TRUE,
|
||||
PR_FALSE);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIDocument> mDoc;
|
||||
nsCOMPtr<nsISupports> mTarget;
|
||||
};
|
||||
|
||||
void
|
||||
nsDocument::UpdateFullScreenStatus(PRBool aIsFullScreen)
|
||||
{
|
||||
if (mIsFullScreen != aIsFullScreen) {
|
||||
nsCOMPtr<nsIRunnable> event(new nsDispatchFullScreenChange(this));
|
||||
NS_DispatchToCurrentThread(event);
|
||||
}
|
||||
mIsFullScreen = aIsFullScreen;
|
||||
if (!mIsFullScreen) {
|
||||
// Full-screen is being turned off. Reset the full-screen element, to
|
||||
|
|
|
@ -583,6 +583,7 @@ GK_ATOM(mouseout, "mouseout")
|
|||
GK_ATOM(mouseover, "mouseover")
|
||||
GK_ATOM(mousethrough, "mousethrough")
|
||||
GK_ATOM(mouseup, "mouseup")
|
||||
GK_ATOM(mozfullscreenchange, "mozfullscreenchange")
|
||||
GK_ATOM(moz_opaque, "moz-opaque")
|
||||
GK_ATOM(moz_action_hint, "mozactionhint")
|
||||
GK_ATOM(x_moz_errormessage, "x-moz-errormessage")
|
||||
|
@ -695,6 +696,7 @@ GK_ATOM(onMozMouseHittest, "onMozMouseHittest")
|
|||
GK_ATOM(onmouseup, "onmouseup")
|
||||
GK_ATOM(onMozAfterPaint, "onMozAfterPaint")
|
||||
GK_ATOM(onMozBeforePaint, "onMozBeforePaint")
|
||||
GK_ATOM(onmozfullscreenchange, "onmozfullscreenchange")
|
||||
GK_ATOM(onMozMousePixelScroll, "onMozMousePixelScroll")
|
||||
GK_ATOM(onMozScrolledAreaChanged, "onMozScrolledAreaChanged")
|
||||
GK_ATOM(ononline, "ononline")
|
||||
|
|
|
@ -243,6 +243,10 @@ EVENT(mouseup,
|
|||
NS_MOUSE_BUTTON_UP,
|
||||
EventNameType_All,
|
||||
NS_MOUSE_EVENT)
|
||||
EVENT(mozfullscreenchange,
|
||||
NS_FULLSCREENCHANGE,
|
||||
EventNameType_HTML,
|
||||
NS_EVENT_NULL)
|
||||
// Not supported yet; probably never because "wheel" is a better idea.
|
||||
// EVENT(mousewheel)
|
||||
EVENT(pause,
|
||||
|
|
|
@ -92,6 +92,7 @@ static const char* const sEventNames[] = {
|
|||
"MozAfterPaint",
|
||||
"MozBeforePaint",
|
||||
"MozBeforeResize",
|
||||
"mozfullscreenchange",
|
||||
"MozSwipeGesture",
|
||||
"MozMagnifyGestureStart",
|
||||
"MozMagnifyGestureUpdate",
|
||||
|
@ -1366,6 +1367,8 @@ const char* nsDOMEvent::GetEventName(PRUint32 aEventType)
|
|||
return sEventNames[eDOMEvents_devicemotion];
|
||||
case NS_DEVICE_ORIENTATION:
|
||||
return sEventNames[eDOMEvents_deviceorientation];
|
||||
case NS_FULLSCREENCHANGE:
|
||||
return sEventNames[eDOMEvents_mozfullscreenchange];
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -177,6 +177,7 @@ public:
|
|||
eDOMEvents_afterpaint,
|
||||
eDOMEvents_beforepaint,
|
||||
eDOMEvents_beforeresize,
|
||||
eDOMEvents_mozfullscreenchange,
|
||||
eDOMEvents_MozSwipeGesture,
|
||||
eDOMEvents_MozMagnifyGestureStart,
|
||||
eDOMEvents_MozMagnifyGestureUpdate,
|
||||
|
|
|
@ -80,6 +80,7 @@ interface nsIInlineEventHandlers : nsISupports
|
|||
[implicit_jscontext] attribute jsval onmouseup;
|
||||
// Not supported yet
|
||||
// [implicit_jscontext] attribute jsval onmousewheel;
|
||||
[implicit_jscontext] attribute jsval onmozfullscreenchange;
|
||||
[implicit_jscontext] attribute jsval onpause;
|
||||
[implicit_jscontext] attribute jsval onplay;
|
||||
[implicit_jscontext] attribute jsval onplaying;
|
||||
|
|
|
@ -541,6 +541,10 @@ class nsHashKey;
|
|||
|
||||
#define NS_SHOW_EVENT 5000
|
||||
|
||||
// Fullscreen DOM API
|
||||
#define NS_FULL_SCREEN_START 5100
|
||||
#define NS_FULLSCREENCHANGE (NS_FULL_SCREEN_START)
|
||||
|
||||
/**
|
||||
* Return status for event processors, nsEventStatus, is defined in
|
||||
* nsEvent.h.
|
||||
|
|
Загрузка…
Ссылка в новой задаче