зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1813303 - Clean up nsIWidget::SetNonClientMargins usage. r=spohl
Make it take a const reference and simplify callers. No behavior change, but noticed while looking through this code. Differential Revision: https://phabricator.services.mozilla.com/D168199
This commit is contained in:
Родитель
604d8268b2
Коммит
e7fa71f013
|
@ -314,7 +314,7 @@ class nsCocoaWindow final : public nsBaseWidget, public nsPIWidgetCocoa {
|
|||
virtual void SetSupportsNativeFullscreen(bool aShow) override;
|
||||
virtual void SetWindowAnimationType(WindowAnimationType aType) override;
|
||||
virtual void SetDrawsTitle(bool aDrawTitle) override;
|
||||
virtual nsresult SetNonClientMargins(LayoutDeviceIntMargin& aMargins) override;
|
||||
virtual nsresult SetNonClientMargins(const LayoutDeviceIntMargin&) override;
|
||||
virtual void SetDrawsInTitlebar(bool aState) override;
|
||||
virtual void UpdateThemeGeometries(const nsTArray<ThemeGeometry>& aThemeGeometries) override;
|
||||
virtual nsresult SynthesizeNativeMouseEvent(LayoutDeviceIntPoint aPoint,
|
||||
|
|
|
@ -2469,7 +2469,7 @@ void nsCocoaWindow::SetDrawsTitle(bool aDrawTitle) {
|
|||
NS_OBJC_END_TRY_IGNORE_BLOCK;
|
||||
}
|
||||
|
||||
nsresult nsCocoaWindow::SetNonClientMargins(LayoutDeviceIntMargin& margins) {
|
||||
nsresult nsCocoaWindow::SetNonClientMargins(const LayoutDeviceIntMargin& margins) {
|
||||
NS_OBJC_BEGIN_TRY_BLOCK_RETURN;
|
||||
|
||||
SetDrawsInTitlebar(margins.top == 0);
|
||||
|
|
|
@ -8681,7 +8681,7 @@ void nsWindow::SetCompositorWidgetDelegate(CompositorWidgetDelegate* delegate) {
|
|||
}
|
||||
}
|
||||
|
||||
nsresult nsWindow::SetNonClientMargins(LayoutDeviceIntMargin& aMargins) {
|
||||
nsresult nsWindow::SetNonClientMargins(const LayoutDeviceIntMargin& aMargins) {
|
||||
SetDrawsInTitlebar(aMargins.top == 0);
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -360,7 +360,7 @@ class nsWindow final : public nsBaseWidget {
|
|||
void GetCompositorWidgetInitData(
|
||||
mozilla::widget::CompositorWidgetInitData* aInitData) override;
|
||||
|
||||
nsresult SetNonClientMargins(LayoutDeviceIntMargin& aMargins) override;
|
||||
nsresult SetNonClientMargins(const LayoutDeviceIntMargin&) override;
|
||||
void SetDrawsInTitlebar(bool aState) override;
|
||||
mozilla::LayoutDeviceIntCoord GetTitlebarRadius();
|
||||
LayoutDeviceIntRect GetTitlebarRect();
|
||||
|
|
|
@ -84,7 +84,7 @@ class HeadlessWidget : public nsBaseWidget {
|
|||
return NS_OK;
|
||||
}
|
||||
virtual nsresult SetNonClientMargins(
|
||||
LayoutDeviceIntMargin& margins) override {
|
||||
const LayoutDeviceIntMargin& margins) override {
|
||||
// Headless widgets have no chrome margins, so just ignore the call.
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -1702,7 +1702,7 @@ LayoutDeviceIntPoint nsBaseWidget::GetClientOffset() {
|
|||
return LayoutDeviceIntPoint(0, 0);
|
||||
}
|
||||
|
||||
nsresult nsBaseWidget::SetNonClientMargins(LayoutDeviceIntMargin& margins) {
|
||||
nsresult nsBaseWidget::SetNonClientMargins(const LayoutDeviceIntMargin&) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
|
|
@ -259,7 +259,7 @@ class nsBaseWidget : public nsIWidget, public nsSupportsWeakReference {
|
|||
LayoutDeviceIntRect GetClientBounds() override;
|
||||
LayoutDeviceIntRect GetScreenBounds() override;
|
||||
[[nodiscard]] nsresult GetRestoredBounds(LayoutDeviceIntRect& aRect) override;
|
||||
nsresult SetNonClientMargins(LayoutDeviceIntMargin& aMargins) override;
|
||||
nsresult SetNonClientMargins(const LayoutDeviceIntMargin&) override;
|
||||
LayoutDeviceIntPoint GetClientOffset() override;
|
||||
void EnableDragDrop(bool aEnable) override{};
|
||||
nsresult AsyncEnableDragDrop(bool aEnable) override;
|
||||
|
|
|
@ -938,7 +938,7 @@ class nsIWidget : public nsISupports {
|
|||
* icon and window title text. Glass desktops will refuse to set
|
||||
* dimensions between zero and size < system default.
|
||||
*/
|
||||
virtual nsresult SetNonClientMargins(LayoutDeviceIntMargin& aMargins) = 0;
|
||||
virtual nsresult SetNonClientMargins(const LayoutDeviceIntMargin&) = 0;
|
||||
|
||||
/**
|
||||
* Sets the region around the edges of the window that can be dragged to
|
||||
|
|
|
@ -1043,8 +1043,7 @@ nsresult nsWindow::Create(nsIWidget* aParent, nsNativeWidget aNativeParent,
|
|||
// These match the margins set in browser-tabsintitlebar.js with
|
||||
// default prefs on Windows. Bug 1673092 tracks lining this up with
|
||||
// that more correctly instead of hard-coding it.
|
||||
LayoutDeviceIntMargin margins(0, 2, 2, 2);
|
||||
SetNonClientMargins(margins);
|
||||
SetNonClientMargins(LayoutDeviceIntMargin(0, 2, 2, 2));
|
||||
|
||||
// Reset the WNDPROC for this window and its whole class, as we had
|
||||
// to use our own WNDPROC when creating the the skeleton UI window.
|
||||
|
@ -2670,14 +2669,9 @@ void nsWindow::SetDrawsInTitlebar(bool aState) {
|
|||
return window->SetDrawsInTitlebar(aState);
|
||||
}
|
||||
|
||||
if (aState) {
|
||||
// top, right, bottom, left for nsIntMargin
|
||||
LayoutDeviceIntMargin margins(0, -1, -1, -1);
|
||||
SetNonClientMargins(margins);
|
||||
} else {
|
||||
LayoutDeviceIntMargin margins(-1, -1, -1, -1);
|
||||
SetNonClientMargins(margins);
|
||||
}
|
||||
// top, right, bottom, left
|
||||
SetNonClientMargins(aState ? LayoutDeviceIntMargin(0, -1, -1, -1)
|
||||
: LayoutDeviceIntMargin(-1, -1, -1, -1));
|
||||
}
|
||||
|
||||
void nsWindow::ResetLayout() {
|
||||
|
@ -2967,7 +2961,7 @@ bool nsWindow::UpdateNonClientMargins(bool aReflowWindow) {
|
|||
return true;
|
||||
}
|
||||
|
||||
nsresult nsWindow::SetNonClientMargins(LayoutDeviceIntMargin& margins) {
|
||||
nsresult nsWindow::SetNonClientMargins(const LayoutDeviceIntMargin& margins) {
|
||||
if (!mIsTopWidgetWindow || mBorderStyle == BorderStyle::None)
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
|
||||
|
|
|
@ -272,7 +272,7 @@ class nsWindow final : public nsBaseWidget {
|
|||
void SetTransparencyMode(TransparencyMode aMode) override;
|
||||
TransparencyMode GetTransparencyMode() override;
|
||||
void UpdateOpaqueRegion(const LayoutDeviceIntRegion& aOpaqueRegion) override;
|
||||
nsresult SetNonClientMargins(LayoutDeviceIntMargin& aMargins) override;
|
||||
nsresult SetNonClientMargins(const LayoutDeviceIntMargin&) override;
|
||||
void SetResizeMargin(mozilla::LayoutDeviceIntCoord aResizeMargin) override;
|
||||
void SetDrawsInTitlebar(bool aState) override;
|
||||
void UpdateWindowDraggingRegion(
|
||||
|
|
|
@ -1613,9 +1613,8 @@ void AppWindow::SyncAttributesToWidget() {
|
|||
nsIntMargin margins;
|
||||
windowElement->GetAttribute(u"chromemargin"_ns, attr);
|
||||
if (nsContentUtils::ParseIntMarginValue(attr, margins)) {
|
||||
LayoutDeviceIntMargin tmp =
|
||||
LayoutDeviceIntMargin::FromUnknownMargin(margins);
|
||||
mWindow->SetNonClientMargins(tmp);
|
||||
mWindow->SetNonClientMargins(
|
||||
LayoutDeviceIntMargin::FromUnknownMargin(margins));
|
||||
}
|
||||
|
||||
NS_ENSURE_TRUE_VOID(mWindow);
|
||||
|
|
Загрузка…
Ссылка в новой задаче