1    type TextBox
2        let selection_z = Control.offset_z
3        selection@atom.subscribe { prev_x x -> case x of
4            None ->
5                selection_rectangle.is_visible = false
6    
7            Some (u, v) ->
8                assert v > u
9    
10               if prev_x.is_none then
11                   selection_rectangle.is_visible = true
12   
13               let offsets = text_block.offsets
14               let offset_u = offsets[u].left
15               let offset_v = offsets[v].left
16               let vector = Vector3 x = offset_u as f32 + offset as f32
17                                    y = 0
18                                    z = selection_z
19               selection_rectangle.position = vector
20                                   set_fixed_width (offset_v - offset_u)
21                                   set_fixed_height text_block.height }
22       |> push_token
23