MCPcopy Create free account
hub / github.com/Recordscript/recordscript / next

Method next

libs/scrap/src/x11/iter.rs:61–95  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

59 type Item = Display;
60
61 fn next(&mut self) -> Option<Display> {
62 loop {
63 if let Some((ref mut inner, root)) = self.inner {
64 // If there is something in the current screen, return that.
65 if inner.rem != 0 {
66 unsafe {
67 let data = &*inner.data;
68 let name = get_atom_name(self.server.raw(), data.name);
69
70 let display = Display::new(
71 self.server.clone(),
72 data.primary != 0,
73 Rect {
74 x: data.x,
75 y: data.y,
76 w: data.width,
77 h: data.height,
78 },
79 root,
80 name,
81 );
82
83 xcb_randr_monitor_info_next(inner);
84 return Some(display);
85 }
86 }
87 } else {
88 // If there is no current screen, the screen iterator is empty.
89 return None;
90 }
91
92 // The current screen was empty, so try the next screen.
93 self.inner = Self::next_screen(&mut self.outer, &self.server);
94 }
95 }
96}
97
98fn get_atom_name(conn: *mut xcb_connection_t, atom: xcb_atom_t) -> String {

Callers

nothing calls this directly

Calls 3

get_atom_nameFunction · 0.85
rawMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected