Skip to content

Commit

Permalink
chore: cherry-pick 30a32e6 from chromium (#35370) (#35968)
Browse files Browse the repository at this point in the history
  • Loading branch information
rzhao271 committed Oct 11, 2022
1 parent 0858a08 commit a03ec15
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 9 deletions.
2 changes: 1 addition & 1 deletion shell/browser/ui/views/win_caption_button.cc
Expand Up @@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Modified from chrome/browser/ui/views/frame/windows_10_caption_button.cc
// Modified from chrome/browser/ui/views/frame/windows_caption_button.cc

#include "shell/browser/ui/views/win_caption_button.h"

Expand Down
13 changes: 5 additions & 8 deletions shell/browser/ui/views/win_icon_painter.cc
Expand Up @@ -25,7 +25,7 @@ void DrawRect(gfx::Canvas* canvas,

void DrawRoundRect(gfx::Canvas* canvas,
const gfx::Rect& rect,
int radius,
float radius,
const cc::PaintFlags& flags) {
gfx::RectF rect_f(rect);
float stroke_half_width = flags.getStrokeWidth() / 2;
Expand Down Expand Up @@ -74,7 +74,7 @@ void WinIconPainter::PaintMaximizeIcon(gfx::Canvas* canvas,
void WinIconPainter::PaintRestoreIcon(gfx::Canvas* canvas,
const gfx::Rect& symbol_rect,
const cc::PaintFlags& flags) {
const int separation = std::floor(2 * canvas->image_scale());
const int separation = base::ClampFloor(2 * canvas->image_scale());
gfx::Rect icon_rect = symbol_rect;
icon_rect.Inset(gfx::Insets::TLBR(separation, 0, 0, separation));

Expand Down Expand Up @@ -113,29 +113,26 @@ void Win11IconPainter::PaintMaximizeIcon(gfx::Canvas* canvas,
cc::PaintFlags paint_flags = flags;
paint_flags.setAntiAlias(true);

const float corner_radius = 2 * canvas->image_scale();
const float corner_radius = canvas->image_scale();
DrawRoundRect(canvas, symbol_rect, corner_radius, flags);
}

void Win11IconPainter::PaintRestoreIcon(gfx::Canvas* canvas,
const gfx::Rect& symbol_rect,
const cc::PaintFlags& flags) {
const int separation = std::floor(2 * canvas->image_scale());
const int separation = base::ClampFloor(2 * canvas->image_scale());
gfx::Rect icon_rect = symbol_rect;
icon_rect.Inset(gfx::Insets::TLBR(separation, 0, 0, separation));

cc::PaintFlags paint_flags = flags;
paint_flags.setAntiAlias(true);

// Bottom left ("in front") rounded square.
const float bottom_rect_radius = 1 * canvas->image_scale();
const float bottom_rect_radius = canvas->image_scale();
DrawRoundRect(canvas, icon_rect, bottom_rect_radius, flags);

// Top right ("behind") top+right edges of rounded square (2.5x).
icon_rect.Offset(separation, -separation);
// Apply inset to left+bottom edges since we don't draw arcs for those edges
constexpr int top_rect_inset = 1;
icon_rect.Inset(gfx::Insets::TLBR(0, top_rect_inset, top_rect_inset, 0));

const float top_rect_radius = 2.5f * canvas->image_scale();
DrawRoundRectEdges(canvas, icon_rect, top_rect_radius, flags);
Expand Down

0 comments on commit a03ec15

Please sign in to comment.