web-dev-qa-db-ja.com

take-vector-screenshot:スクリーンショットを撮る前にウィンドウに焦点を合わせる

使ってます take-vector-screenshot PDFスクリーンショットを撮る。

起動時take-vector-screenshot、スクリーンショットプロセスを開始するには、ウィンドウ内のボタンをクリックする必要があります。次に、スクリーンショットを撮るウィンドウを選択する必要があります。

A button is required to be clicked to start the process

このボタン(上の写真)をクリックする過程で、実際にキャプチャしたいウィンドウからフォーカスが変わります。したがって、私が取得するスクリーンショットは、フォーカスされていないウィンドウのものであり、これは望ましくありません。

私は使えます wmctrl -a $WINDOW_TITLEスクリーンショットを撮りたいウィンドウにフォーカスしますが、前に置くと機能しません。 sleep 3

これを機能させる方法はありますか?

1
Adam Williams

これは(どういうわけか)私のシェルに関連しているようです。

bashを実行してから_sleep 2; wmctrl -a WindowTitle_を実行すると、正常に動作します。

zshでは毎回失敗しますが、理由はわかりません。

ただし、これは問題を解決しません:保存ダイアログが表示されてもウィンドウがフォーカスされないためです。 forking _gtk-vector-screenshot_とgtk_window_set_accept_focus(window, False);への呼び出しを追加することで、問題のこの部分を修正しました。保存ダイアログも削除したので、PDFはホームディレクトリに書き込まれるだけです。それはハックですが、プロジェクトはもう維持されておらず、私のために機能します。

1
Adam Williams