次のページ 前のページ 目次へ

5. 技術的議論

自動的にカーソルを拡大化する、X プログラムを書くことは可能でしょうか?

(部分)解 1

XTEST 拡張から、XTestCompareCursor を使うのです。 どのウインドウに対して、マウスポインタは"既知の"カーソルセット (例えばカーソルフォント)とそのウインドウのカーソルの比較に入ります。 もしカーソルが見つかれば、それを拡大化したものに置き換え、見つからなければ そのままにするか、普通のカーソルに置き換えます。この方法は XTest 拡張の 有効なもののみで実現されます。

解 2

XCreate*Cursor Xlib 関数に対するすべての要求を中断し、 その他の要求は変えずに本来の X サーバに中継する代理 X サーバを書くことです。 そこで、XCreate*Cursor の要求が拡大化されたカーソルを使うように 変更させるのです。

この代理サーバは、例えば:1. のような新しいディスプレイをつくり出します。 このディスプレイに接続するすべてのクライアント、例えば xterm -display :1 は本来のサーバ、通常 :0、に表示され、そのマウスカーソルが自動的に 拡大されるのです。しかし、:0 に接続したクライアントのマウスカーソルは 変わらないのです。


次のページ 前のページ 目次へ