dab60d5580
The RenameFolderMenu uses the internal box as a menu item, while PopupMenu expects to have PopupBaseMenuItem based children with a delegate set. Instead of using a custom menu with a customized box acting as menu item,just add a RenameFolderMenuItem that inherits from the parent, adjusting the features as we need them. In fact, the rename folder menu item doesn't need any label, padding or default styling so we can reuse PopupMenuBaseItem after we use our styling properties and we set the Ornament to HIDDEN. To get the proper style in place, define rename-folder-popup and rename-folder-popup-item to override the default popup-menu-item rule padding instead of using margins. Pass the menu item as menu's focusActor as this will key-focus it on pop-up, by overriding the key_focus_in() vfunc we can then delegate the focus handling to the entry's clutter-text. Also override the map() vfunc in order to update the entry's content before mapping the entry. Finally, use the item's activate method in order to tell the parent menu we're done with it and that the menu can be closed. As consequence we can also remove the menu's popup() method, and just use the default open(). https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720 |
||
---|---|---|
.. | ||
gnome-shell-sass | ||
calendar-today.svg | ||
checkbox-focused.svg | ||
checkbox-off-focused.svg | ||
checkbox-off.svg | ||
checkbox.svg | ||
dash-placeholder.svg | ||
gnome-shell-high-contrast.scss | ||
gnome-shell.scss | ||
key-enter.svg | ||
key-hide.svg | ||
key-layout.svg | ||
key-shift-latched-uppercase.svg | ||
key-shift-uppercase.svg | ||
key-shift.svg | ||
meson.build | ||
message-indicator-symbolic.svg | ||
no-events.svg | ||
no-notifications.svg | ||
noise-texture.png | ||
pad-osd.css | ||
pointer-double-click-symbolic.svg | ||
pointer-drag-symbolic.svg | ||
pointer-primary-click-symbolic.svg | ||
pointer-secondary-click-symbolic.svg | ||
process-working.svg | ||
README.md | ||
running-indicator.svg | ||
toggle-off-dark.svg | ||
toggle-off-hc.svg | ||
toggle-off.svg | ||
toggle-on-dark.svg | ||
toggle-on-hc.svg | ||
toggle-on.svg |
Summary
Do not edit the CSS directly, edit the source SCSS files and the CSS files will be generated automatically when building with meson + ninja and left inside the build directory to be incorporated into the gresource XML (you'll need to have sassc installed).
How to tweak the theme
Adwaita is a complex theme, so to keep it maintainable it's written and processed in SASS, the generated CSS is then transformed into a gresource file during gtk build and used at runtime in a non-legible or editable form.
It is very likely your change will happen in the _common.scss file. That's where all the widget selectors are defined. Here's a rundown of the "supporting" stylesheets, that are unlikely to be the right place for a drive by stylesheet fix:
File | Description |
---|---|
_colors.scss | global color definitions. We keep the number of defined colors to a necessary minimum, most colors are derived from a handful of basics. It is an exact copy of the gtk+ counterpart. Light theme is used for the classic theme and dark is for GNOME3 shell default. |
_drawing.scss | drawing helper mixings/functions to allow easier definition of widget drawing under specific context. This is why Adwaita isn't 15000 LOC. |
_common.scss | actual definitions of style for each widget. This is where you are likely to add/remove your changes. |
You can read about SASS on its web page. Once you make your changes to the _common.scss file, you can run ninja to generate the final CSS files.