BeOS で floater にして常に手前に表示を実現しようとしたら、Deskbar にウィンドウが表示されなくなった件については小手先のテクニックでなんとかごまかせそうなことがわかりました。(「なんとかなりそう」ではないことに注意)
常に手前に表示する floater ウィンドウとは別にダミーのウィンドウ(こいつは floater にしない)を (-10000,-10000)-(-10000,-10000) みたいな画面外の座標に作っておきます。Deskbar にダミーウィンドウが表示されるので、ダミーウィンドウの名前を floater ウィンドウと同じ名前にしておけばごまかせます。
ダミーウィンドウの WindowActivated() でアクティブになるときに、floater ウィンドウを Activate(true) してやります。これで、Deskbar からダミーウィンドウが選ばれたら floater ウィンドウがアクティブになります。
注意点としては、floater はアクティブにしても、その前にアクティブだったウィンドウが非アクティブにならないことです。なので、そのままだとダミーウィンドウもアクティブ状態です。ここでさらに Deskbar をクリック(このタイミングで floater ウィンドウは非アクティブになります)。それからダミーウィンドウを選ぶとアクティブが変わらないと考えられるのか、ダミーウィンドウはアクティブになりますが floater ウィンドウをアクティブにできません。
そこで、ダミーウィンドウの WindowActivate() で floater ウィンドウを Activate する前に、自分自身を Activate(false) してやります。どっか別のアプリがアクティブ状態になりますがまあ仕方ないでしょう。(^^;
それから注意点その2として、ワークスペースを切り替えたときにダミーウィンドウも同じワークスペースへ移動させる必要があります。そうしないと、Deeskbar からダミーウィンドウを選んだときに元のワークスペースに戻ってしまいます。(あと、Deskbar のウィンドウの横に別ワークスペースにあるというアイコンが出てしまうというのもありますね)
で、常に手前に表示状態で発生する次のことは制限事項にするしかないようです。
・すべてのワークスペースに表示される。
・Workspaces にウィンドウが表示されない。
・別のウィンドウがアクティブなときに、常に手前に表示しているウィンドウをクリックすると、元のウィンドウがアクティブなまま。
……というあたりをテストアプリ作って検証しただけで、CoveredCalc への組み込みはまだ行っていません。
常に手前に表示する floater ウィンドウとは別にダミーのウィンドウ(こいつは floater にしない)を (-10000,-10000)-(-10000,-10000) みたいな画面外の座標に作っておきます。Deskbar にダミーウィンドウが表示されるので、ダミーウィンドウの名前を floater ウィンドウと同じ名前にしておけばごまかせます。
ダミーウィンドウの WindowActivated() でアクティブになるときに、floater ウィンドウを Activate(true) してやります。これで、Deskbar からダミーウィンドウが選ばれたら floater ウィンドウがアクティブになります。
注意点としては、floater はアクティブにしても、その前にアクティブだったウィンドウが非アクティブにならないことです。なので、そのままだとダミーウィンドウもアクティブ状態です。ここでさらに Deskbar をクリック(このタイミングで floater ウィンドウは非アクティブになります)。それからダミーウィンドウを選ぶとアクティブが変わらないと考えられるのか、ダミーウィンドウはアクティブになりますが floater ウィンドウをアクティブにできません。
そこで、ダミーウィンドウの WindowActivate() で floater ウィンドウを Activate する前に、自分自身を Activate(false) してやります。どっか別のアプリがアクティブ状態になりますがまあ仕方ないでしょう。(^^;
それから注意点その2として、ワークスペースを切り替えたときにダミーウィンドウも同じワークスペースへ移動させる必要があります。そうしないと、Deeskbar からダミーウィンドウを選んだときに元のワークスペースに戻ってしまいます。(あと、Deskbar のウィンドウの横に別ワークスペースにあるというアイコンが出てしまうというのもありますね)
で、常に手前に表示状態で発生する次のことは制限事項にするしかないようです。
・すべてのワークスペースに表示される。
・Workspaces にウィンドウが表示されない。
・別のウィンドウがアクティブなときに、常に手前に表示しているウィンドウをクリックすると、元のウィンドウがアクティブなまま。
……というあたりをテストアプリ作って検証しただけで、CoveredCalc への組み込みはまだ行っていません。