@@ -21,15 +21,24 @@ let set_at at v elem =
21
21
Undoable. return ~undo res
22
22
23
23
module AttributeActions = struct
24
+ let act_on_id action id =
25
+ let id = Jstr. concat [ Jstr. v " #" ; id ] in
26
+ match Brr.El. find_first_by_selector id with
27
+ | None -> Undoable. return ()
28
+ | Some elem -> action elem
29
+
24
30
let act_on_elem class_ action elem =
25
31
match Brr.El. at (Jstr. v class_) elem with
26
32
| None -> Undoable. return ()
27
33
| Some v when Jstr. equal Jstr. empty v -> action elem
28
- | Some v -> (
29
- let id = Jstr. concat [ Jstr. v " #" ; v ] in
30
- match Brr.El. find_first_by_selector id with
31
- | None -> Undoable. return ()
32
- | Some elem -> action elem)
34
+ | Some id -> act_on_id action id
35
+
36
+ let act_on_elems class_ action elem =
37
+ match Brr.El. at (Jstr. v class_) elem with
38
+ | None -> Undoable. return ()
39
+ | Some v when Jstr. equal Jstr. empty v -> action elem
40
+ | Some v ->
41
+ Jstr. cuts ~sep: (Jstr. v " " ) v |> Undoable.List. iter (act_on_id action)
33
42
34
43
let up window elem =
35
44
act_on_elem " up-at-unpause" (Universe.Window. up window) elem
@@ -41,10 +50,10 @@ module AttributeActions = struct
41
50
act_on_elem " center-at-unpause" (Universe.Window. center window) elem
42
51
43
52
let unstatic _window elem =
44
- act_on_elem " unstatic-at-unpause" (set_class " unstatic" true ) elem
53
+ act_on_elems " unstatic-at-unpause" (set_class " unstatic" true ) elem
45
54
46
55
let static _window elem =
47
- act_on_elem " static-at-unpause" (set_class " unstatic" false ) elem
56
+ act_on_elems " static-at-unpause" (set_class " unstatic" false ) elem
48
57
49
58
let focus window elem =
50
59
let action elem =
@@ -63,16 +72,16 @@ module AttributeActions = struct
63
72
act_on_elem " unfocus-at-unpause" action elem
64
73
65
74
let reveal _window elem =
66
- act_on_elem " reveal-at-unpause" (set_class " unrevealed" false ) elem
75
+ act_on_elems " reveal-at-unpause" (set_class " unrevealed" false ) elem
67
76
68
77
let unreveal _window elem =
69
- act_on_elem " unreveal-at-unpause" (set_class " unrevealed" true ) elem
78
+ act_on_elems " unreveal-at-unpause" (set_class " unrevealed" true ) elem
70
79
71
80
let emph _window elem =
72
- act_on_elem " emph-at-unpause" (set_class " emphasized" true ) elem
81
+ act_on_elems " emph-at-unpause" (set_class " emphasized" true ) elem
73
82
74
83
let unemph _window elem =
75
- act_on_elem " unemph-at-unpause" (set_class " emphasized" false ) elem
84
+ act_on_elems " unemph-at-unpause" (set_class " emphasized" false ) elem
76
85
77
86
let execute _window elem =
78
87
let action elem =
@@ -106,7 +115,7 @@ module AttributeActions = struct
106
115
in
107
116
Undoable. return ~undo ()
108
117
in
109
- act_on_elem " exec-at-unpause" action elem
118
+ act_on_elems " exec-at-unpause" action elem
110
119
111
120
let do_ window elem =
112
121
let do_ =
0 commit comments