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