LINUX.ORG.RU

такое пойдет?

void attach_opened_clients()
{
	Window dw1, dw2;
	Window* wins;
	int n_wins, i;
	XWindowAttributes attrs;
	XQueryTree(dpy, root, &dw1, &dw2, &wins, &n_wins);
	for (i = 0; i < n_wins; i++) {
		XGetWindowAttributes(dpy, wins[i], &attrs);
		if (attrs.map_state != IsUnmapped)
			//напиши тут свой клевый код!

wieker ★★
()
Ответ на: комментарий от wieker

Смотря что делается. Некоторая информация хранится в самом окне (или в ассоциированной окну структуре на стороне X сервера), так что установить её и прочитать можно и без оконного менеджера - например _NET_WM_PID. Вещи завязанные на менеджер, типа списка окон, как-то тоже делаются. Ничего сверхъестественного тут тоже не вижу - менеджер знает список top level окон, и устанавливает соответствующий атом на Root окне. Оттуда его могут прочитать клиенты, и узнать список открытых top level окон. Всё это делается через обычное X API.

alex_custov ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.