Как найти gtkwindow по названию - PullRequest
2 голосов
/ 14 июня 2011

Я работаю над Ubuntu. Я пишу приложение, чтобы сделать снимок экрана gtkwindow. Но теперь я не могу получить указатель gtkwindow по заголовку окна. Есть ли способ найти gtkwindow по названию?

1 Ответ

2 голосов
/ 17 октября 2011

Gtk не имеет API для этого. Вы получаете только объекты GtkWindow для окон, которые вы создаете сами. Вы должны делать это на более низком уровне и использовать xlib напрямую. Сначала вы должны получить объект Display для вашего дисплея (в основном это объект, представляющий соединение с вашим Xserver, и он необходим, потому что Xclient может показывать окна на нескольких Xserver одновременно). Используйте gdk_x11_get_default_xdisplay(), чтобы получить экран по умолчанию, если у вас нет другого представления о том, как получить определенный экран. Тогда вы получите корневое окно с DefaultRootWindow(). Чтобы получить список дочерних окон, используйте XQueryTree(). И чтобы получить название окна для сравнения используйте XFetchName(). Обратите внимание, что окна в контексте X не идентичны тому, что воспринимается как окна. Кадры оконного менеджера - это окна (иногда с несколькими уровнями), содержащие фактические окна приложения как дочерние, поэтому XQueryTree(), возможно, придется использовать повторно.

Вас также может заинтересовать libwnck , который может немного упростить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...