diff --git a/src/ui.cpp b/src/ui.cpp
index cd3aa0b..f768826 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -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);
diff --git a/src/ui/main-window.ui b/src/ui/main-window.ui
index 6817e15..8903bfe 100644
--- a/src/ui/main-window.ui
+++ b/src/ui/main-window.ui
@@ -4,7 +4,8 @@
+
+