Skip to content

Let the theme style the round menu buttons - #600

Merged
corecoding merged 1 commit into
corecoding:developfrom
Octopustank:fix/round-menu-button-theme-class
Oct 11, 2026
Merged

corecoding merged 1 commit into
corecoding:developfrom
Octopustank:fix/round-menu-button-theme-class

Conversation

@Octopustank

@Octopustank Octopustank commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Closes #599

Problem

The three round buttons at the top of the popup (Refresh, System
Monitor, Preferences) are St.Buttons built with

style_class: 'message-list-clear-button button vitals-button-action'

(extension.js, _createRoundButton). message-list-clear-button is
the shell's own class for the Clear button in the notification list,
where it only carries rules under .message-list-controls — so in
Vitals' popup it contributes nothing, and the circular look the borrow
was presumably after actually comes from vitals-button-action's own
geometry. What the buttons do wear from the theme is the generic
.button styling.

Change

  • Drop the borrowed message-list-clear-button, keeping the generic
    button class — the hook the shell theme styles for background and
    interactive states — plus vitals-button-action.
  • vitals-button-action now owns only geometry (radius, padding,
    min-size) and the symbolic icon style; background and hover/active
    states come from the theme.
  • Remove the extension's own hover/focus border, including the
    transparent default border added in 2020 to stop size flicker when
    the border appeared on hover. The theme's interactive states change
    background and box-shadow, not borders, so the flicker does not
    return.

Buttons keep the same icons, handlers, size and circular shape under the
default theme, and now follow the same theme rules as other popup
buttons instead of borrowing a class scoped to another widget.

Behavior on my machine with blur-my-shell (using refactor/unified-blur-backend branch):
图片

Notes

Open PR #596 also touches stylesheet.css (.vitals-panel-label-fixed),
a few lines above; the two edits do not overlap.

No schema, prefs, or locale changes; no version bump (EGO owns
submission versioning).

The three round buttons in the popup (Refresh, System Monitor,
Preferences) borrowed the shell's message-list-clear-button class to
obtain their circular look. That class only exists for the Clear button
in the notification list and is scoped to .message-list-controls
there, so under any popup theme that styles popup controls it no longer
produces the intended look.

Keep the generic .button class, which every GNOME button already
carries and which the shell theme and popup themes hook for background
and interactive states, and let vitals-button-action own only the
geometry (radius, padding, min-size) plus the icon style. The
hover/focus border the extension declared itself is removed: the 2020
commit that added it existed to stop size flicker, which no longer
applies once the border is left to the theme.
@Octopustank
Octopustank force-pushed the fix/round-menu-button-theme-class branch from 9cb34eb to b25cda7 Compare October 11, 2026 02:04
@Octopustank

Copy link
Copy Markdown
Contributor Author

Rebased onto current develop (25acbcb). The conflict was contextual only in stylesheet.css, where #597's measured icon margins replaced the same region; the button-rule change from this PR is applied on top of it. No functional changes.

@corecoding

Copy link
Copy Markdown
Owner

I sat down to merge this branch, saw the conflict - was going to reach out but you beat me to it. Thank you!

@corecoding
corecoding merged commit 4449631 into corecoding:develop Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Round menu buttons borrow a shell class that carries no rules in this context

2 participants