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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// devela::ui::event::target
//
//! Defines [`EventTarget`].
//
use crate::;
_impl_init!;
/// Identifies what an [`Event`][crate::Event] is conceptually directed to.
///
/// - Some backends (X11, Wayland, Win32, macOS) generate window–scoped events.
/// These are represented as [`EventTarget::Window`], carrying a window
/// identifier meaningful to the backend.
///
/// - Device–level sources (gamepads, MIDI devices, libinput devices, sensors)
/// do not report a window association. These use [`EventTarget::Device`] with
/// a device identifier meaningful to the backend or driver.
///
/// - Some events conceptually apply to the whole application or have no
/// specific target (timers, system notifications, compositor signals).
/// These use [`EventTarget::Global`].
///
/// Backends are free to choose their own identifier space, but values must be
/// stable enough that the caller can reliably distinguish sources over time.
///
/// This allows a unified cross-backend event pipeline without leaking backend-
/// specific handle types into the UI layer.