python-wnck を使用してウィンドウにフォーカスを設定しようとしています。
このライブラリに関連する唯一のドキュメントはhttps://developer.gnome.org/libwnck/stable/WnckWindow.htmlからのものです
ここSOの別の質問で見つけたコードを使用して、ウィンドウタイトルを使用してウィンドウを検索できましたが、ウィンドウにフォーカスを当てる方法がわかりません。
上記のドキュメントから、関数を見つけました:
wnck_window_activate(WnckWindow *window, guint32 timestamp);
そのため、Pythonで「window.activate(0)」のようなこの関数を使用しようとしましたが、これは失敗したようで、タスクバーのアイコンが点滅しましたが、フォーカスがありません。
ターミナルで次のメッセージが表示されます。
(windowTest.py:17485): Wnck-WARNING: Received a timestamp of 0; window activation may not function properly
したがって、実際には有効なタイムスタンプを入力する必要があるかもしれませんが、これを取得する方法がわかりません。
これはsoarを使用しているコードです:
import pygtk
pygtk.require('2.0')
import gtk
import wnck
import re
import sys
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration()
titlePattern = re.compile('.*Geany.*')
windows = screen.get_windows()
for w in windows:
if titlePattern.match(w.get_name()):
print w.get_name()
w.activate(0)