0

xlib を使用して単純なウィンドウ マネージャーを作成しています。このコードは、フレーム ウィンドウと呼ばれるクライアント ウィンドウよりもわずかに大きいウィンドウに、クライアント ウィンドウを再親化します。クリック トゥ フォーカス ポリシーを実装しようとしています。フレームウィンドウでマウスボタンが押されたときにボタンプレスイベントを取得し、ボタンプレスでフレームウィンドウを上げることができます。ただし、クライアント ウィンドウでマウス ボタンを押してもイベントが発生しません。クライアント ウィンドウでマウス ボタンが押された場合でも、このイベントをトラップし、フレーム ウィンドウを上げるという考え方です。

4

1 に答える 1

0

子ウィンドウで XGrabButton() する必要があります。次の問題は、ボタンが押されたときに子ウィンドウがフォーカスを失うことです。おそらく、「フォーカス ウィンドウ」について独自の考えを維持し、detail=NotifyGrab イベントでは変更しないでください。たとえば、メタシティのソース コードを参照してください。

于 2010-08-21T14:23:44.773 に答える