2009年11月26日木曜日

AdobeAIRの透明なウィンドウはLinuxでは邪魔者になる罠

AdobeAIRでGrowl風の通知ウィンドウとして、複数作成して表示したい!という事がしたい。

で、はじめはmx:Windowでいくつも画面を作って表示していたのですが、画面を閉じる際に結構CPUを食う状態になってしまった。
で、その対策として、一つの透明画面を作って、ぺたぺたとウィンドウっぽい表示のパネルを貼るように替えました。
透明な画面が前にあったとしても、後ろに見える画面をクリックすると、その後ろの画面が操作できるので。
そうすると、当然ですがCPUの消費も押さえられてよかったーよかったーと思っていたのですが....

Mac,Windowsの動きは上記なのですが、Linuxでは違う事に気づく。
Linuxの場合、透明の画面が前にあると、後ろに見える画面の操作が出来なくなってしまう。

フルスクリーンのものをつくっちゃうと、全く操作不能の状態になった! って感じになってしまいます。

この差についての記述はみつけられていないのですが、
Adobe AIR 1.5 * Managings WindowのalwaysInFront についての説明の所で以下の記述が。
On the Linux operating system, different window managers enforce different rules regarding the window display order:

・On some window managers, utility windows are always displayed in front of normal windows.
・On some window managers, a full screen window with alwaysInFront set to true is always displayed in front of other windows that also have alwaysInFront set to true.


なかなか手強い...
複数Windowを作成する方式にまた戻して、CPUを食わない方法を探るのがよいのか...と悩み中。
• • •