Aug 01, 2006

ウィンドウの外へのドラッグを検出する(アイデア)

タブのウィンドウ外へのドラッグで新規ウィンドウを開く(タブを分割する)とか、サイドバーのウィンドウ外へのドラッグでサイドバーを切り離すとか、どうやって実現すればよいだろうか。

思い付いたのは、現在のウィンドウを覆う形で透明のウィンドウを開いて、そこへのドラッグオーバー・ドロップを検出するという方法。

例えばタブであれば、ウィンドウ外へのドラッグアウトではウィンドウの下にひとまわり大きな透明ウィンドウを配置して、ウィンドウの周囲10ピクセルほどを検出エリアにしてそこに触れたら「ウィンドウ外へ出た」と判断する(検出エリアを2重にして、ドラッグアウトとドラッグインを判別できるようにすれば、何秒以上ウィンドウ外に留まったらウィンドウ外へのドロップとみなすという処理もできるかもしれない)。ウィンドウ内へのドロップインでは、ドロップ対象のウィンドウの上に透明なウィンドウを重ねてそこへのドロップを検出する。という感じ。

ただ、常にこれをやるようにすると、URLショートカットの作成だとかリンクの読み込みだとかそういう操作ができなくなってしまうかもしれないので、設定か何かで挙動を切り替えられるようにしないといけないかなあ。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能