1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! **The deeper records between frames** (bl-3257): the one read this pane
//! posts rather than stands, and why it is the one.
//!
//! # Five of the pane's six reads stand, and the sixth is addressed
//!
//! The records pane's other reads are about *the selected conversation*, which
//! is a subject the window already holds, so they stand while the pane is open
//! and cost nothing when it is not (`crate::state::Standing`). The step
//! drill-in is about **one step of it**, and the window holds no such
//! selection — so a standing read would have to invent one and then hold it,
//! which is a second authority for a row an operator clicked.
//!
//! So the control on a steps row posts the read, exactly as the login pane's
//! `models` is posted off a provider row (DESIGN §4.24), and for the same
//! reason: it is a question about a row rather than about the pane.
//!
//! # The answer says which step it is about, so the model holds no second name
//!
//! `reply/step` echoes the `seq` it was asked by. That is the address, the
//! answer's own field, and the thing the paint keys on — so nothing here
//! remembers what was asked, and a reply that arrives after the operator
//! clicked another row cannot paint under the wrong one.
use Model;