ui: the readouts show in a strip under the plot when the dock is hidden

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Martino FerrariandClaude Sonnet 4.6 committed 2026-11-03 10:47:11 +01:00
1 parent 54f2722fea
commit c8d9d04f59
7 files changed
+282 -22

No files matched your search

+9 -2
View File
@@ -4013,6 +4013,11 @@ gboolean tick(gpointer user) {
app->sidebar_syncing = false;
}
}
// The readouts strip is on screen exactly when the dock is not. Decided here, right after the wish was
// re-asserted and *before* the collapsing below (which makes the split view write `show-sidebar`
// false itself until the next frame re-asserts it): read after it, the strip would show for one frame
// each time the window narrowed.
sync_readouts_strip(*app);
const int window_w = gtk_widget_get_width(app->window);
if (window_w > 0) {
adw_overlay_split_view_set_collapsed(ADW_OVERLAY_SPLIT_VIEW(app->side_view),
@@ -4976,6 +4981,8 @@ void on_activate(GtkApplication* application, gpointer user) {
app->badge_bar = GTK_WIDGET(gtk_builder_get_object(app->window_ui, "badge_bar"));
app->badge_signals = GTK_WIDGET(gtk_builder_get_object(app->window_ui, "badge_signals"));
app->badge_system = GTK_WIDGET(gtk_builder_get_object(app->window_ui, "badge_system"));
app->readouts_strip = GTK_WIDGET(gtk_builder_get_object(app->window_ui, "readouts_strip"));
app->strip_box = GTK_WIDGET(gtk_builder_get_object(app->window_ui, "readouts_strip_box"));
// A missing id is the one mistake neither the build nor `GtkBuilder` sees, and every use below would
// be a null pointer.
if (app->window == nullptr || side_view == nullptr ||
@@ -4983,7 +4990,7 @@ void on_activate(GtkApplication* application, gpointer user) {
app->status_badge == nullptr ||
app->status_label == nullptr || app->status_info_button == nullptr ||
app->status_row == nullptr || app->badge_bar == nullptr || app->badge_signals == nullptr ||
app->badge_system == nullptr ||
app->badge_system == nullptr || app->readouts_strip == nullptr || app->strip_box == nullptr ||
side == nullptr || app->dock_scroller == nullptr || app->dock_page == nullptr) {
return;
}
@@ -5165,7 +5172,7 @@ void on_activate(GtkApplication* application, gpointer user) {
// switch that turns it back on. The trigger's body is deliberately *not* disabled: a trigger is
// configured before it is switched on, so its settings have to stay editable while it is off.
gtk_widget_set_sensitive(app->cursors_body, FALSE);
gtk_widget_set_sensitive(app->dock_cursor_grid, FALSE);
dock_set_cursors_sensitive(*app, false); // the dock's grid and the strip's chips, together
// The arm controls are the one part of the trigger pane that needs trigger mode running: both of them,
// and the compact line's visibility, are stated from the toggle by `sync_arm_buttons()`.
sync_arm_buttons(*app);