fune/widget/ThemeCocoa.h
Sam Johnson b47354dd67 Bug 1871612 - Improve non-native theme tooltips on macOS. r=emilio
After bug 1696988, the non-native theme can draw tooltips on macOS in some scenarios such as about:preferences. The non-native theme draws a rounded rectangle with a border that is the same color as the text, which looks pretty out-of-place on macOS--tooltips on macOS do not have rounded corners, and the border is subtle compared to the text color.

However, after bug 1871507, the window server is drawing both the correct background and border for the tooltip already. The non-native theme no longer needs to draw any background or border for tooltips on macOS.

Differential Revision: https://phabricator.services.mozilla.com/D197299
2024-01-01 09:50:27 +00:00

42 lines
1.3 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_widget_ThemeCocoa_h
#define mozilla_widget_ThemeCocoa_h
#include "Theme.h"
#include "ScrollbarDrawingCocoa.h"
namespace mozilla::widget {
class ThemeCocoa : public Theme {
public:
explicit ThemeCocoa(UniquePtr<ScrollbarDrawing>&& aScrollbarDrawing)
: Theme(std::move(aScrollbarDrawing)) {}
LayoutDeviceIntSize GetMinimumWidgetSize(
nsPresContext* aPresContext, nsIFrame* aFrame,
StyleAppearance aAppearance) override;
NS_IMETHOD DrawWidgetBackground(gfxContext* aContext, nsIFrame*,
StyleAppearance, const nsRect& aRect,
const nsRect& aDirtyRect,
DrawOverflow) override;
bool CreateWebRenderCommandsForWidget(
wr::DisplayListBuilder& aBuilder, wr::IpcResourceUpdateQueue& aResources,
const layers::StackingContextHelper& aSc,
layers::RenderRootStateManager* aManager, nsIFrame*, StyleAppearance,
const nsRect& aRect) override;
protected:
virtual ~ThemeCocoa() = default;
};
} // namespace mozilla::widget
#endif