Kam-nagi Software

 

 
adoliBeDITORIAL

1999/7/22 「IMはさりげなく」

 IMを切り替えた瞬間、ワークスペースが切り替わってしまった。BeOSを使っている人なら一度はそんな経験があると思います。今回紹介するのはその動作を抑制する方法。
 adolibe04で紹介したheyユーテリティを再び使用します。
 Terminalで、次のコマンド列を入力します。

hey input_server set Workspaces of Window 1 to 4294967295
hey input_server set Workspaces of Window 2 to 4294967295


 さあ、とっととUserBootcriptにつっこんじまいましょう :D
 ちょこっとだけ解説。B_FLOATING_ALL_WINDOW_FEELを持ったWindowは、Workspacesが切り替わっても表示され続けるという特徴を持っています。ただし、これはapp_serverが逐一WindowのWorkspacesをカレントに切り替えてくれているだけで、B_ALL_WORKSPACESが指定されているからではありません。そのため、特定のWorkspaceでWindowをHideし、Workspaceを切り替えてから再びそのWindowをShowすると、WindowをHideしたWorkspaceに切り替わってしまうというのが先程の動作の真相です。
 原理がわかればあとは簡単で、該当するWindowのWorkspacesにB_ALL_WORKSPACES (0xffffffff)を設定してやれば万事解決というわけです。

 自作のプログラムでB_FLOATING_ALL_WINDOW_FEELなウィンドウを扱う場合は、注意しておく必要があるでしょう。

 

 

yun@be-in.org