diff options
| author | Victor Kareh <[email protected]> | 2025-09-03 07:42:45 -0400 | 
|---|---|---|
| committer | Luke from DC <[email protected]> | 2025-09-05 01:45:06 +0000 | 
| commit | 4a2eebdd0f20a9ea4f60d63fe03837f9a39350ba (patch) | |
| tree | 09aa967bb2d118dc7dd7b8fec4136e96b9915b33 /src/ui/theme.c | |
| parent | 1e9133c2c09c30c5cb3ae91786c5f83365ccabd7 (diff) | |
| download | marco-1.28.tar.bz2 marco-1.28.tar.xz | |
theme: Fix left-side Fitt's Law1.28
When calculating the clickable area on the left-most button of
a maximized window, we need to take into account the layout components,
not just the button size.
Fixes mate-desktop/mate-themes#318
Diffstat (limited to 'src/ui/theme.c')
| -rw-r--r-- | src/ui/theme.c | 17 | 
1 files changed, 6 insertions, 11 deletions
| diff --git a/src/ui/theme.c b/src/ui/theme.c index 60b456a3..dadc9ab8 100644 --- a/src/ui/theme.c +++ b/src/ui/theme.c @@ -1003,17 +1003,12 @@ meta_frame_layout_calc_geometry (const MetaFrameLayout  *layout,            rect->clickable.width = button_width;            rect->clickable.height = button_height; -          if (i == n_right - 1) +          /* For the last right button on maximized/right-tiled windows, extend clickable area to the top-right edge (Fitts's law)*/ +          if (i == n_right - 1 && (flags & META_FRAME_MAXIMIZED || flags & META_FRAME_TILED_RIGHT))              { -              /* Extend clickable area to the right edge */ +              rect->clickable.y = 0;                rect->clickable.width += layout->right_titlebar_edge + layout->right_width + layout->button_border.right; - -              /* For maximized and right-tiled windows, extend clickable area to the top edge (Fitts's law)*/ -              if (flags & META_FRAME_MAXIMIZED || flags & META_FRAME_TILED_RIGHT) -                { -                  rect->clickable.y = 0; -                  rect->clickable.height = button_y + button_height; -                } +              rect->clickable.height = button_y + button_height;              }          } @@ -1054,12 +1049,12 @@ meta_frame_layout_calc_geometry (const MetaFrameLayout  *layout,            rect->clickable.width = button_width;            rect->clickable.height = button_height; -          /* For the first left button on maximized/left-tiled windows, extend to top-left corner (Fitts's law) */ +          /* For the first left button on maximized/left-tiled windows, extend clickable area to top-left corner (Fitts's law) */            if (i == 0 && (flags & META_FRAME_MAXIMIZED || flags & META_FRAME_TILED_LEFT))              {                rect->clickable.x = 0;                rect->clickable.y = 0; -              rect->clickable.width = rect->visible.x + button_width; +              rect->clickable.width += layout->left_titlebar_edge + layout->left_width + layout->button_border.left;                rect->clickable.height = button_y + button_height;              }          } | 
