mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 1332040 - Dispatch resize after fullscreen transistion for headless. r=jrmuizel
MozReview-Commit-ID: Lo17bhJsnww --HG-- extra : rebase_source : 6266e9141d8bf99ec4dbaaf6b909e6c02ef9b9d6
This commit is contained in:
parent
032c83cdd5
commit
962180171e
@ -417,13 +417,26 @@ HeadlessWidget::MakeFullScreen(bool aFullScreen, nsIScreen* aTargetScreen)
|
||||
mSizeMode = mLastSizeMode;
|
||||
}
|
||||
|
||||
nsBaseWidget::InfallibleMakeFullScreen(aFullScreen, aTargetScreen);
|
||||
|
||||
// Notify the listener first so size mode change events are triggered before
|
||||
// resize events.
|
||||
if (mWidgetListener) {
|
||||
mWidgetListener->SizeModeChanged(mSizeMode);
|
||||
mWidgetListener->FullscreenChanged(aFullScreen);
|
||||
}
|
||||
|
||||
// Real widget backends don't seem to follow a common approach for
|
||||
// when and how many resize events are triggered during fullscreen
|
||||
// transitions. InfallibleMakeFullScreen will trigger a resize, but it
|
||||
// will be ignored if still transitioning to fullscreen, so it must be
|
||||
// triggered on the next tick.
|
||||
RefPtr<HeadlessWidget> self(this);
|
||||
nsCOMPtr<nsIScreen> targetScreen(aTargetScreen);
|
||||
NS_DispatchToCurrentThread(NS_NewRunnableFunction(
|
||||
"HeadlessWidget::MakeFullScreen",
|
||||
[self, targetScreen, aFullScreen]() -> void {
|
||||
self->InfallibleMakeFullScreen(aFullScreen, targetScreen);
|
||||
}));
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user