Skip to main content

is_driving

Function is_driving 

Source
pub fn is_driving() -> bool
Expand description

Whether this viewer is the one the user is controlling. Several viewers can show the same account at once; only the driving one should act on the user’s behalf.

Examples found in repository?
examples/together_ui.rs (line 99)
83    fn event(&mut self, event: Event, cx: &mut Context) {
84        match event {
85            Event::Plugin { name, .. } if name == "together.changed" => {
86                self.reload(cx);
87                self.paint();
88                // A commit from an event is sampled on the next frame;
89                // ask for one.
90                cx.request_frame();
91            }
92            Event::Resize { .. } => {
93                self.paint();
94                cx.request_frame();
95            }
96            Event::Pointer(pointer) if pointer.kind == PointerKind::Down => {
97                // Side-effect free unless this viewer is the one the user
98                // is driving, and then exactly once across viewers.
99                if !view::is_driving() {
100                    return;
101                }
102                // `send` returns at once: the companion's answer arrives as
103                // the value it writes, not here.
104                let _ = claims().once("together.rebuild", 5_000, || {
105                    let _ = cx.calls().send("rebuild", &(), Target::Singleton);
106                });
107            }
108            _ => {}
109        }
110    }