mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1175940 - UIResolutionChanged should not trigger sync messages from content to chrome. r=mconley
This commit is contained in:
parent
5d9d0a3ebd
commit
bb874971f0
@ -723,8 +723,13 @@ child:
|
||||
/**
|
||||
* Tell the child that the UI resolution changed for the containing
|
||||
* window.
|
||||
* To avoid some sync messages from child to parent, we also send the dpi
|
||||
* and default scale with the notification.
|
||||
* If we don't know the dpi and default scale, we just pass in a negative
|
||||
* value (-1) but in the majority of the cases this saves us from two
|
||||
* sync requests from the child to the parent.
|
||||
*/
|
||||
UIResolutionChanged();
|
||||
UIResolutionChanged(float dpi, double scale);
|
||||
|
||||
/**
|
||||
* Tell the child that the system theme has changed, and that a repaint
|
||||
|
@ -2904,12 +2904,12 @@ TabChild::RecvRequestNotifyAfterRemotePaint()
|
||||
}
|
||||
|
||||
bool
|
||||
TabChild::RecvUIResolutionChanged()
|
||||
TabChild::RecvUIResolutionChanged(const float& aDpi, const double& aScale)
|
||||
{
|
||||
ScreenIntSize oldScreenSize = GetInnerSize();
|
||||
mDPI = 0;
|
||||
mDefaultScale = 0;
|
||||
static_cast<PuppetWidget*>(mPuppetWidget.get())->ClearBackingScaleCache();
|
||||
static_cast<PuppetWidget*>(mPuppetWidget.get())->UpdateBackingScaleCache(aDpi, aScale);
|
||||
nsCOMPtr<nsIDocument> document(GetDocument());
|
||||
nsCOMPtr<nsIPresShell> presShell = document->GetShell();
|
||||
if (presShell) {
|
||||
|
@ -472,7 +472,7 @@ public:
|
||||
return GetFrom(docShell);
|
||||
}
|
||||
|
||||
virtual bool RecvUIResolutionChanged() override;
|
||||
virtual bool RecvUIResolutionChanged(const float& aDpi, const double& aScale) override;
|
||||
|
||||
virtual bool RecvThemeChanged(nsTArray<LookAndFeelInt>&& aLookAndFeelIntCache) override;
|
||||
|
||||
|
@ -1059,7 +1059,11 @@ TabParent::UIResolutionChanged()
|
||||
// mDPI being greater than 0, so this invalidates it.
|
||||
mDPI = -1;
|
||||
TryCacheDPIAndScale();
|
||||
unused << SendUIResolutionChanged();
|
||||
// If mDPI was set to -1 to invalidate it and then TryCacheDPIAndScale
|
||||
// fails to cache the values, then mDefaultScale.scale might be invalid.
|
||||
// We don't want to send that value to content. Just send -1 for it too in
|
||||
// that case.
|
||||
unused << SendUIResolutionChanged(mDPI, mDPI < 0 ? -1.0 : mDefaultScale.scale);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -196,10 +196,11 @@ public:
|
||||
virtual bool NeedsPaint() override;
|
||||
|
||||
virtual TabChild* GetOwningTabChild() override { return mTabChild; }
|
||||
virtual void ClearBackingScaleCache()
|
||||
|
||||
void UpdateBackingScaleCache(float aDpi, double aScale)
|
||||
{
|
||||
mDPI = -1;
|
||||
mDefaultScale = -1;
|
||||
mDPI = aDpi;
|
||||
mDefaultScale = aScale;
|
||||
}
|
||||
|
||||
nsIntSize GetScreenDimensions();
|
||||
|
Loading…
Reference in New Issue
Block a user