ui: draw the sidebar tabs without the placeholder icon

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Martino FerrariandClaude Opus 4.6 committed 2026-11-02 12:11:16 +01:00
1 parent 5bb23e6a0a
commit 0c6e69957d
6 files changed
+75 -8

No files matched your search

+6 -1
View File
@@ -252,7 +252,12 @@ Part of [CLAUDE.md](../../CLAUDE.md). These are rules that cost a defect to lear
session file. An icon-only version existed (policy `narrow`, empty titles, the pills named in code by
`name_side_tabs()`, because `narrow` still draws a label beside an icon); it was reversed because the
glyphs were not understandable. A page added with an empty title is a blank pill, and
`switcher: … pills=N labels=N pages=N` reads it as `labels` below `pills`.
`switcher: … pills=N labels=N images=0 pages=N` reads it as `labels` below `pills`. **No icon at all**
is not what "no `icon-name`" gives you: `AdwViewSwitcherButton` always builds a `GtkImage` and falls
back to `image-missing` (the `[x]` placeholder, which also squeezed the title to "Meas..."), and no
property turns it off. `keep_tabs_icon_free()` (`src/ui_source.cpp`) hides every image in the switcher,
re-hides one that is shown again, and re-runs on the stack's `items-changed` (connected *after* the
switcher's own, so the new button exists) and on the switcher's `map`; `images=0` is the reading.
- **An *overlaid* sidebar covers the plot, so a drag out of it has nowhere to land.** `collapsed` in an
`AdwOverlaySplitView` means the sidebar sits *on* the plot rather than beside it: the pointer is over the
list, never over a drop target, and a signal can be dragged but not dropped. `row_drag_sidebar()` hides