comparison dep/animia/src/win/x11.cc @ 167:31735c8592bc

dep/animia: make x11 window walking actually work this is HORRIBLY slow, and I'm not *entirely* sure why...
author paper@DavesDouble.local
date Sun, 19 Nov 2023 05:32:06 -0500
parents 54c5d80a737e
children 0fc126d52de4
comparison
equal deleted inserted replaced
166:54c5d80a737e 167:31735c8592bc
102 102
103 ::Window root_return; 103 ::Window root_return;
104 ::Window parent_return; 104 ::Window parent_return;
105 105
106 int status = ::XQueryTree(display, window, &root_return, &parent_return, &children_arr, &num_children); 106 int status = ::XQueryTree(display, window, &root_return, &parent_return, &children_arr, &num_children);
107 if (status < Success) 107 if (!status || !children_arr)
108 continue; 108 continue;
109 109
110 if (num_children < 1) { 110 if (num_children < 1) {
111 ::XFree(children_arr); 111 ::XFree(children_arr);
112 continue; 112 continue;
118 118
119 ::XFree(children_arr); 119 ::XFree(children_arr);
120 120
121 std::set<::Window> children_children; 121 std::set<::Window> children_children;
122 122
123 if (!WalkWindows(display, children_children, children)) 123 if (WalkWindows(display, children_children, children))
124 children.insert(children_children.begin(), children_children.end()); 124 children.insert(children_children.begin(), children_children.end());
125 } 125 }
126 126
127 return true; 127 return true;
128 } 128 }