[ruby-list:41843] Re: ruby/tkでウィンドウにフォーカスがないときにもイベントを捕捉する方法

From: <kot-hara@...>
Date: 2006-02-22 12:13:58 UTC
List: ruby-list #41843
原です。
永井さん、アドバイスありがとうございます。

 > ここで言っている「ディスプレイ」がウィンドウマネージャが管理する画面の
> ことであるならば,そこで発生したイベントを捉えるということは
> ウィンドウマネージャからイベントを盗み取るということに等しいですから,
> 通常の手段ではできないのではないかと思います.
この手段はあきらめようと思います。

> {TkRoot,TkToplevel}#overrideredirect(true) でウィンドウマネージャの
> 管理外にしたトップレベルのウィンドウを #geometry メソッドで
> 配置しておくというのが次善の策ではないかと思います.
この方針で行こうと思います。
具体的には、トップレベルのウィンドウの装飾をoverrideredirect(true)で取っ払ったうえで、ウィンドウのサイズを1×1ピクセルにしてディスプレイの左上隅に常に最前面で表示されるようにしておいて、フォーム上でマウスのダブルクリックが起きたら、なにかをする、というようなものを考えています。
さらに具体的に言うと、ウィンドウのフォーカスを変える機能を、Alt+Tabを押すかわりにマウスのクリックでできるようにするアプリケーションを作ろうとしています。

・・・と思ったのですが、ウィンドウを常に最前面に表示させることができませんでした。grabとかfocusとかいろいろとやってみたのですが。。。
Tk.messageBox みたいに常に最前面に表示かつ他のアプリケーションも実行できる、というようなのが実現できるといいのですがなにぶん力量不足で。。。

KotaHara@secom


In This Thread

Prev Next