Почему некоторые (например, Emacs и Chrome) X windows сообщают об отсутствии имени и класса? - PullRequest
0 голосов
/ 14 марта 2012

Когда я использую python-xlib для захвата текущего сфокусированного окна с помощью get_input_focus (), имя и класс окна устанавливаются правильно для Konsole, но для Chrome и Emacs это просто пустые строки (хотя идентификатор окна кажется действительным все трое). Почему?

Как я могу получить название и процесс владельца этих окон? Поскольку я использую KDE, использование DBUS для этих целей является опцией, но я бы предпочел более общее решение.

1 Ответ

0 голосов
/ 14 марта 2012

Если найден подобный вопрос здесь: Как определить текущее приложение?

Я немного изменил это:

cur_window = the_display.get_input_focus().focus
cur_class = None
while cur_class is None:
    cur_name = cur_window.get_wm_name()
    cur_class = cur_window.get_wm_class()
    if cur_class is None:
        cur_window = cur_window.query_tree().parent

и теперь это работает.

...