(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスのウィンドウを管理する方法であって、
前記コンピューティングデバイス上で実行されるアプリケーションのアプリケーションウィンドウのタイル型配列を自動的に保持するウィンドウ生成システムを実行するステップであって、前記ウィンドウ生成システムが、前記コンピューティングデバイスに接続された第１のディスプレイおよび前記コンピューティングデバイスに接続された第２のディスプレイ上での前記アプリケーションウィンドウのタイル型表示を可能にし、１つまたは複数のアプリケーションウィンドウが前記ウィンドウ生成システムによって前記ディスプレイのいずれかに表示されたときに、それらのアプリケーションウィンドウがそれらが表示されているディスプレイを実質的に完全に占有し、前記ウィンドウ生成システムが、どのディスプレイが入力のフォーカスを現在有するかを追跡するステップと、
前記コンピューティングデバイス上のアプリケーションの標識を含むアプリケーションランチャを、前記コンピューティングデバイス上で実行するステップであって、前記第１のディスプレイにも前記第２のディスプレイにも関係しない第１のユーザ入力に応答して、前記アプリケーションランチャが起動可能であり、前記標識に向けられた第２のユーザ入力は対応する選択されたアプリケーションの起動によって応答され、前記アプリケーションランチャは一度に一つのディスプレイのみに表示され、前記アプリケーションランチャが前記ディスプレイのいずれかに表示されたときに、前記アプリケーションランチャを表示していないディスプレイに向けられたユーザ入力は前記アプリケーションランチャを非表示にしない、ステップと、
前記アプリケーションランチャが前記第１のディスプレイに表示されておらず、かつ、前記第１のディスプレイのみが前記入力のフォーカスを現在有するときに、（ｉ）前記アプリケーションランチャが前記第２のディスプレイに表示されているか否かを判断し、表示されていると判断された場合、前記第２のディスプレイの前記アプリケーションランチャを非表示にし、（ｉｉ）前記第１のディスプレイに前記アプリケーションランチャを表示することによって、前記アプリケーションランチャを起動する第１のユーザ入力に応答するステップと、
前記アプリケーションランチャが前記第１のディスプレイに表示されておらず、かつ、前記第２のディスプレイのみが前記入力のフォーカスを現在有するときに、（ｉ）前記アプリケーションランチャが前記第１のディスプレイに表示されているか否かを判断し、表示されていると判断された場合、前記第１のディスプレイの前記アプリケーションランチャを非表示にし、（ｉｉ）前記第２のディスプレイに前記アプリケーションランチャを表示することによって、前記アプリケーションランチャを起動する第１のユーザ入力に応答するステップと、
前記アプリケーションランチャが現在表示されている前記ディスプレイにのみ関係する第２のユーザ入力に応答して、選択されたアプリケーションウィンドウを、前記アプリケーションランチャが現在表示されている前記ディスプレイに表示し、前記アプリケーションランチャを非表示にするステップと、
前記アプリケーションランチャが現在表示されていない前記ディスプレイにのみ関係する第２のユーザ入力に応答して、選択されたアプリケーションウィンドウを、前記アプリケーションランチャが現在表示されていない前記ディスプレイに表示し、前記選択されたアプリケーションウィンドウを表示したあとに、前記アプリケーションランチャの表示を、前記アプリケーションランチャが現在表示されている前記ディスプレイに維持するステップと、
前記アプリケーションランチャが前記コンピューティングデバイスよって表示されている間に、前記ウィンドウ生成システムによって、前記アプリケーションウィンドウのうちの２つ以上を前記第２のディスプレイ上にタイル型配列で維持するステップとを含む、方法。
【請求項２】
前記アプリケーションランチャが、それぞれ対応するアプリケーションを表現する複数のグラフィックを含み、グラフィックが選択されたときに、対応するアプリケーションが起動され、前記グラフィックが選択されたときに前記アプリケーションランチャを表示していたディスプレイがどのディスプレイであっても、対応するアプリケーションウィンドウがそのディスプレイを実質的に完全に占有する、請求項１に記載の方法。
【請求項３】
前記アプリケーションウィンドウが閉じたとき、または別のディスプレイに移動したときに、前記アプリケーションランチャが、同じディスプレイ上に再度表示される、請求項２に記載の方法。
【請求項４】
前記アプリケーションランチャが、最近使ったアプリケーションのリストを含み、前記アプリケーションランチャを、前記第１のディスプレイおよび前記第２のディスプレイの両方に表示することができるが、一度に１つのディスプレイに表示することしかできない、請求項１に記載の方法。
【請求項５】
プロセッサと、前記プロセッサによって実行されたときに前記プロセッサによって実行されるアプリケーションのアプリケーションウィンドウを表示するウィンドウ生成システムを記憶する記憶装置と、第１のディスプレイとを備えるコンピューティングデバイスであって、
実行されたときに、第２のディスプレイが前記コンピューティングデバイスにローカルに接続されている場合には前記第１のディスプレイおよび前記第２のディスプレイ上にアプリケーションウィンドウを表示することができる前記ウィンドウ生成システムであって、ユーザインタフェース要素をさらに備え、アプリケーションウィンドウがいずれかのディスプレイ上に表示されたときに、前記アプリケーションウィンドウが当該ディスプレイを実質的に完全に占有するように、または当該ディスプレイ上の前記アプリケーションウィンドウおよび任意の他のアプリケーションウィンドウが当該ディスプレイを実質的に完全に占有するように、アプリケーションウィンドウをいずれかのディスプレイ上に表示する前記ウィンドウ生成システムを備え、
前記ウィンドウ生成システムは、
前記コンピューティングデバイス上のアプリケーションの標識を含む前記ユーザインタフェース要素を、前記コンピューティングデバイス上で実行することであって、前記第１のディスプレイにも前記第２のディスプレイにも関係しない第１のユーザ入力に応答して、前記ユーザインタフェース要素が起動可能であり、前記標識に向けられた第２のユーザ入力は対応する選択されたアプリケーションの起動によって応答され、前記ユーザインタフェース要素が前記ディスプレイのいずれかに表示されたときに、前記ユーザインタフェース要素を表示していないディスプレイに向けられたユーザ入力は前記ユーザインタフェース要素を非表示にせず、
前記ユーザインタフェース要素が前記第１のディスプレイに表示されておらず、かつ、前記第１のディスプレイのみが入力のフォーカスを現在有するときに、（ｉ）前記ユーザインタフェース要素が前記第２のディスプレイに表示されているか否かを判断し、表示されていると判断された場合、前記第２のディスプレイの前記ユーザインタフェース要素を非表示にし、（ｉｉ）前記第１のディスプレイに前記ユーザインタフェース要素を表示することによって、前記ユーザインタフェース要素を起動する第１のユーザ入力に応答し、
前記ユーザインタフェース要素が前記第１のディスプレイに表示されておらず、かつ、前記第２のディスプレイのみが入力のフォーカスを現在有するときに、（ｉ）前記ユーザインタフェース要素が前記第１のディスプレイに表示されているか否かを判断し、表示されていると判断された場合、前記第１のディスプレイの前記ユーザインタフェース要素を非表示にし、（ｉｉ）前記第２のディスプレイに前記ユーザインタフェース要素を表示することによって、前記ユーザインタフェース要素を起動する第１のユーザ入力に応答し、
前記ユーザインタフェース要素が現在表示されている前記ディスプレイにのみ関係する第２のユーザ入力に応答して、選択されたアプリケーションウィンドウを、前記ユーザインタフェース要素が現在表示されている前記ディスプレイに表示し、前記ユーザインタフェース要素を非表示にし、
前記ユーザインタフェース要素が現在表示されていない前記ディスプレイにのみ関係する第２のユーザ入力に応答して、選択されたアプリケーションウィンドウを、前記ユーザインタフェース要素が現在表示されていない前記ディスプレイに表示し、前記選択されたアプリケーションウィンドウを表示したあとに、前記ユーザインタフェース要素の表示を、前記ユーザインタフェース要素が現在表示されている前記ディスプレイに維持するように構成されている、コンピューティングデバイス。
【請求項６】
前記ウィンドウ生成システムが、ユーザが前記ディスプレイの両方に入力を向けることを可能にし、ユーザが１つのディスプレイから他のディスプレイにアプリケーションウィンドウを移動させることを可能にする、請求項５に記載のコンピューティングデバイス。
【請求項７】
前記ユーザインタフェース要素が１つのディスプレイ上に表示されているときに、ユーザが、他のディスプレイ上に表示されている任意のアプリケーションウィンドウとインタラクトすることができ、前記他のディスプレイ上に表示されているいずれのアプリケーションウィンドウの表示も中断させることなく前記ユーザインタフェース要素とインタラクトすることができ、前記ユーザインタフェース要素とインタラクトしてアプリケーションウィンドウの表示をトリガすることができる、請求項５に記載のコンピューティングデバイス。
【請求項８】
前記アプリケーションウィンドウが、前記ウィンドウ生成システムによって重なり合うことができず、前記コンピューティングデバイスが、重なり合うことができるアプリケーションウィンドウを包含するウィンドウ包含ウィンドウをさらに含み、前記ウィンドウ包含ウィンドウが、前記ユーザインタフェース要素とのインタラクションによって呼び出すことができ、前記ウィンドウ包含ウィンドウが、その中に包含されていないアプリケーションウィンドウとは重なり合うことができない、請求項５に記載のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
[001]  コンピューティングの分野では、アプリケーションにウィンドウを与えるためにウィンドウ生成環境が使用されている。コンピューティングデバイス上で実行されるアプリケーションまたはプログラムは、ユーザがそのアプリケーションとインタラクト（対話）するための対応するアプリケーションウィンドウを有することがある。さらに、１つのコンピューティングデバイスにローカルに接続された複数のディスプレイ上に複数のウィンドウを同時に表示する方法も既知である。通常は、マルチディスプレイコンピューティングデバイスのオペレーティングシステムは、複数のディスプレイを管理するための詳細を取り扱い、ディスプレイのミラーリングまたはディスプレイの連結など、様々な表示モードを実現することができる。
【０００２】
[002]  通常は、ウィンドウ生成システムまたは環境は、ウィンドウを制御および管理するためにユーザがインタラクトすることができるシステミックなユーザインタフェース要素を含む。例えば、ＯＳ  Ｘ（商標）は、「ａｐｐ  ｌａｕｎｃｈｅｒ」ツールを有し、Ａｎｄｒｏｉｄ（商標）オペレーティングシステムは、アプリケーションを開始し、システム設定にアクセスするために使用されるデフォルトの「Ｌａｕｎｃｈｅｒ」を提供し、様々なバージョンのＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）は、「Ｓｔａｒｔ」要素、ファストスイッチリスト、およびその他の要素を提供している。さらに、同様の機能を提供するサードパーティアプリケーションも多数ある。
【０００３】
[003]  今日まで、このようなアプリケーションを制御するためのユーザインタフェース要素は、同一デバイスに接続された複数のディスプレイの存在下では、効率的かつ直観的に動作することができなかった。アプリケーション管理用のアドオンユーザインタフェースプログラムは、複数のディスプレイを滑らかに一貫して使用できるようにするのに有用である可能性がある論理を、場合によってはカーネルレベルで欠いていることが多い。上述したものなど、システムによって提供されるアプリケーションマネージャは、マルチディスプレイのユーザエクスペリエンス用には設計されていないので、ユーザが複数のディスプレイを使用しているときに期待するような挙動を実現するに至っていない。
【０００４】
[004]  以下では、複数のディスプレイを備えたコンピューティングデバイス用のアプリケーション管理ユーザインタフェース要素を提供することに関連する技術について述べる。
【発明の概要】
【０００５】
[005]  以下の概要は、単に、後述の詳細な説明で説明するいくつかの概念の導入として与えるものである。この概要は、包括的なものではなく、後記の特許請求の範囲に記載する請求する主題の範囲を規定するためのものではない。
【０００６】
[006]  本明細書に記載するのは、第１のディスプレイおよび第２のディスプレイ上のアプリケーションウィンドウのタイル型配列を自動的に保持するウィンドウ生成システムを実行するコンピューティングデバイスのための技術である。ユーザインタフェース要素は、アプリケーションを開くために使用することができるアプリケーションの標識を有する。第１のユーザ入力に応答して、ユーザインタフェース要素が第１のディスプレイ上に表示され、ユーザインタフェース要素が第１のディスプレイ上に表示されている間に、ウィンドウ生成システムは、アプリケーションウィンドウのうちの２つ以上を、第２のディスプレイ上にタイル型配列で保持する。ユーザインタフェース要素は、システムユーザインタフェースの一部であってもよく、様々な方法で実施することができる。例えば、ユーザインタフェース要素は、場合によってはユーザによって選択される１組のアプリケーション表現のフルスクリーンセットであってもよいし、最近使ったアプリケーションのリスト、または開いているアプリケーションのリストなどであってもよい。
【０００７】
[007]  付随する特徴の多くについて、以下で、添付の図面と関連付けて考慮される以下の詳細な説明を参照して説明する。
【図面の簡単な説明】
【０００８】
[008]  本明細書は、以下の詳細な説明を添付の図面に照らして読めば、より良好に理解されるであろう。これらの図面において、同じ参照番号は、添付の明細書において同じ部分を指している。
【０００９】
【図１】[009]図１は、第１のディスプレイおよび第２のディスプレイを有するコンピューティングデバイスを示す図である。
【図２】[010]図２は、タイル型ウィンドウ生成システムによって提供される例示的なウィンドウレイアウトを示す図である。
【図３】[011]図３は、手作業で、またはシステム事象の結果として実行することができるウィンドウ動作を示す図である。
【図４】[012]図４は、タイル型ウィンドウ生成システムによって提供される、またはタイル型ウィンドウ生成システム上で実施されるグラフィカルユーザインタフェースを示す図である。
【図５】[013]図５は、フルスクリーンアプリケーションランチャの一例を示す図である。
【図６】[014]図６は、第１のディスプレイおよび第２のディスプレイ上で活動化可能なユーザインタフェース要素の一例を示す図である。
【図７】[015]図７は、ユーザがグラフィック表現をディスプレイ間で移動させることができるマルチディスプレイの実施形態を示す図である。
【図８】[016]図８は、アプリケーションランチャを複数のディスプレイ上で実施する実施形態を示す図である。
【図９】[017]図９は、第２のディスプレイ上に表示されたアプリケーションランチャを示す図である。
【図１０】[018]図１０は、コンピューティングデバイスの詳細を示す図である。
【発明を実施するための形態】
【００１０】
[019]  以下に述べる実施形態は、複数のディスプレイを備えたコンピューティングデバイス用のアプリケーション管理ユーザインタフェース要素を提供することに関する。説明では、まず、複数のディスプレイ用のウィンドウ生成システムの概要について述べる。次に、タイル型または非オクルージョン型のウィンドウ生成システムについて述べる。次に、アプリケーションウィンドウの管理および操作用のユーザインタフェース要素について述べ、その後に、どのようにすればそれらのユーザインタフェース要素を１つのマルチディスプレイ設定に統合することができるかを説明する。
【００１１】
[020]  図１は、アプリケーションプロセス１０４を管理し、対応するウィンドウ１０６を、コンピューティングデバイス１００のディスプレイアダプタまたはグラフィックスポートに接続することができる第１のディスプレイ１０８Ａおよび第２のディスプレイ１０８Ｂ上に表示するオペレーティングシステム１０２を有するコンピューティングデバイス１００を示す図である（本明細書では、「第１のディスプレイ」および「第２のディスプレイ」は任意のディスプレイを指す用語であり、何らかの順序を意味するものではない）。説明では、参照番号「１０８」は、これらのディスプレイのうちのいずれかである可能性があるディスプレイを指す。さらに、本明細書における２つのディスプレイについての全ての記述は、３つ以上のディスプレイに容易に拡張することができる。つまり、２つのディスプレイについて述べられている記述はいずれも、暗黙的に、設けられる可能性がある追加のディスプレイにも当てはまる。
【００１２】
[021]  コンピューティングデバイス１００は、図１０を参照して後述する様々なタイプのうちのいずれであってもよい。コンピューティングデバイス１００は、オペレーティングシステム１０２およびアプリケーションプロセス１０４を記憶する記憶装置と、それらを実行するプロセッサとを少なくとも有するものと仮定することができる。複数のプロセスを表す個別のウィンドウを備えたウィンドウ生成システムも、またウィンドウのないプロセスも存在する可能性があるが、説明を容易にするために、本明細書では、アプリケーションプロセス１０４は、それぞれが少なくとも１つの対応するウィンドウ１０６（アプリケーションウィンドウと呼ぶこともある）を有するものと仮定する。プロセス１０４は、通常はプロセス識別子を有する個別に管理される実行単位であり、少なくとも部分的にはオペレーティングシステムによって管理される記憶単位（ヒープメモリおよび／またはスタックメモリ）である、周知のオペレーティングシステムオブジェクトであり、オペレーティングシステム１０２が保持するプロセス識別子のプロセステーブルを用いて管理することができる。
【００１３】
[022]  ウィンドウ生成システム１１０は、オペレーティングシステム１０２と部分的に一体化する、または密に結合することができる。本明細書では、これらの構成要素の区別は重要ではない。これは、オペレーティングシステム自体がウィンドウ生成システムとなるように考慮されることもあるからである。ウィンドウ生成システム１１０は、様々なタイプの入力デバイスを用いてユーザによって入力される入力事象（例えばタッチ／ストローク、クリック、キー押し、マウスドラッグなど）を取り扱うなど、コンピューティングの技術分野で既知の機能を有することができる。ウィンドウ生成システム１１０は、関連するイベントを取り扱うことによって、または、ユーザインタラクションによって、ウィンドウを閉じる、ウィンドウを移動する、ウィンドウをサイズ変更する、入力をウィンドウに向ける、また複数の同時ウィンドウをレンダリングするなど、アプリケーションウィンドウ１０６も管理する。ウィンドウ生成システム１１０は、アプリケーションに特定のものではないバックグラウンド制御およびシステム制御（ユーザインタフェース要素）を提供することもできるが、これについては以下でさらに述べる。
【００１４】
[023]  図２は、タイル型ウィンドウ生成システムによって提供される例示的なウィンドウレイアウトを示す図である。タイル型ウィンドウ生成システムは、アプリケーションウィンドウ用の共有ディスプレイスペース（複数のディスプレイを含む）を、場合によってはアプリケーションウィンドウが互いにオクルードしないようにしながら、それらのアプリケーションウィンドウのディスプレイスペースの占有率を実質的に最大化するように管理することができる。場合によっては、例えば手作業によるウィンドウの再配列をプレビューする、ドラッグ中またはその他の過渡的な状態にあるウィンドウを示す、予想される動作をプレビューする、ダイアログを表示する、システミックなユーザインタフェース要素を表示するなどのために、一時的にオクルージョンを利用することができる。さらに、「ディスプレイの占有率を実質的に最大化する」とは、場合によってはサイズ変更用ディバイダ、クロック、美観上の余白、わずかな隙間、情報バナーなどのシステムのユーザインタフェース要素のために多少のスペースを残して、ディスプレイの縁部まで、または縁部付近までディスプレイスペースをカバーするようにアプリケーションウィンドウをサイジングすることを指している。
【００１５】
[024]  いくつかのタイル型ウィンドウ生成システムは、境界線、タイトルバー、メニューバーなど従来のウィンドウ要素を、ウィンドウから省略することがある。すなわち、アプリケーションウィンドウは、没入型の性質を有することもあり、例えば、ウィンドウ装飾が最小限しかない、または全くなかったり、通常は多くのソフトウェアアプリケーションの「フルスクリーン」モードと関連付けられる外観であったりすることもある。アプリケーションウィンドウは、同一ディスプレイ上に複数のアプリケーションウィンドウが表示される場合でも、このような外観を有することがある。
【００１６】
[025]  図２を参照すると、第１の例示的なレイアウト１２０は、ディスプレイ１０８を実質的に占有する第１のアプリケーションウィンドウ１２２、またはタイル型ウィンドウ生成システムによって管理される管理ディスプレイ区域１２４を示す。
【００１７】
[026]  第２の例示的なレイアウト１２６は、自動的に挿入されるかインタラクションによって挿入されるかに関わらず、第２のアプリケーションウィンドウ１２８の追加を反映しており、タイル型ウィンドウ生成システムは、現在表示されているアプリケーションウィンドウ１２２、１２８のディスプレイ１０８の占有率をある程度最大化させるように、このウィンドウレイアウトを自動的に管理する。タイル型ウィンドウ生成システム（ウィンドウマネージャ）は、ウィンドウとウィンドウの間にディバイダ１３０を挿入することができ、ユーザは、このディバイダ１３０を移動させることにより、タイル型配列を維持しながら、ディバイダ１３０に隣接するアプリケーションウィンドウをサイズ変更することができる。
【００１８】
[027]  第３の例示的なレイアウト１３２は、第３のアプリケーション１３４が挿入されている状態を示している。タイル型レイアウト管理では、ユーザは、挿入する第３のアプリケーションウィンドウ１３４を指定する、かつ／あるいは場合によっては第３のアプリケーションウィンドウ１３４を挿入するスロットまたは位置を指定するだけでよいこともある。これは、タイル型ウィンドウマネージャが、表示されているアプリケーションウィンドウを自動的にサイズ変更する、または新たなアプリケーションウィンドウを受け入れるためのその他の手段を講じることがあるからである。
【００１９】
[028]  第４の例示的なレイアウト１３４および第５の例示的なレイアウト１３６は、使用することができる画面領域のその他の区分を示している。説明を簡単にするために、以下で述べる例では、水平方向には一列しかアプリケーションウィンドウがないタイリングを示すが、直線的な配列であればどのような配列でも使用することができ、場合によっては非対称な配列であってもよい。
【００２０】
[029]  図３は、手作業で、またはシステム事象（システムイベント）の結果として実行することができるウィンドウ動作を示す図である。ディスプレイ１０８に初期ウィンドウ配列が与えられた状態から、タイル型ウィンドウ生成システム１４０は、アプリケーションＡを閉じ、アプリケーションＢが自動的にサイズ変更されてディスプレイ１０８を占有するようにすることができる。アプリケーションは、手作業で閉じられることもあるし、エラーなどのシステム事象のために閉じられることもある。アプリケーションＣが初期レイアウトに挿入されると、アプリケーションＡおよびＢは、アプリケーションＣの新たに表示されるアプリケーションウィンドウを受け入れるようにタイル型ウィンドウ生成システム１４０によって自動的にサイズ変更される。サイズ変更動作は、例えばディバイダ１３０をユーザが操作することによって実行して、アプリケーションウィンドウへのディスプレイスペースの割当てを変化させることができる。現在表示されているアプリケーションまたは別のアプリケーションがフルスクリーンモードになった場合、またはディスプレイ１０８を実質的に完全に（排他的に）占有するようにサイズ変更された場合には、その他のアプリケーションウィンドウは、ディスプレイ１０８から排除される。ユーザは、アプリケーション（例えばアプリケーションＣ）を選択して、表示されている任意の他のアプリケーションと置き換えることができる。
【００２１】
[030]  図４は、タイル型ウィンドウ生成システム１４０によって提供される、またはタイル型ウィンドウ生成システム１４０上で実施されるグラフィカルユーザインタフェース１８０を示す図である。グラフィカルユーザインタフェース１８０の要素および特徴は、単なる例であり、その他のタイプの特徴も企図され、様々なアプリケーションウィンドウおよびアプリケーショングループにも同様に適用可能である（例えば、検索特徴は、アプリケーションおよびアプリケーショングループオブジェクトの両方を戻すこともある）。さらに、ときには、グラフィカルユーザインタフェース１８０のユーザインタフェース要素のうちの一部または全てが、表示されないことも、またはユーザからの入力によって要求されたときにしか表示されないこともある。
【００２２】
[031]  タイル型ウィンドウ生成システム１４０は、ユーザがコンピューティングデバイス上のアプリケーションを管理することを可能にする様々な特徴または機構を有することができる。本明細書では「ユーザインタフェース要素」または「システム要素」と呼ぶこともあるこのような特徴は、最近使ったアプリケーションのモジュール１８２、アクティブなアプリケーションのモジュール１８４、および／またはお気に入りモジュール１８６を含むことがある。
【００２３】
[032]  これらのモジュールは、ウィンドウ生成システムと協働して（またはその一部であって）、意味的に関連する情報をトラッキングする。アプリケーションが開いている、または使用されているときには、ウィンドウ生成システムは、最近使用したアプリケーションの標識を、最近使ったアプリケーションのリスト１８８に読込むことができる。ウィンドウ生成システムは、アクティブなアプリケーションのリスト１９０の読込みまたは提供も同様に行うことができる。アクティブなアプリケーションのリスト１９０は、任意の接続されているモニタに現在表示されているアプリケーション、および／または現在実行中または中断中であるが表示はされていないアプリケーションを含むこともある。同様に、ユーザは、お気に入りのアプリケーションのリスト１９２も保持することができる。
【００２４】
[033]  これらのリストを、グラフィカルユーザインタフェース１８０が使用して、状況に応じてアプリケーションまたはアプリケーショングループを活動化するためにユーザが呼び出して使用することができる対応するユーザインタフェース要素１９４、１９６、１９８を表示する。ユーザインタフェース要素１９４、１９６、１９８は、いくつかの実施形態では、永続的に表示されることもあるが、他の実施形態では、ハードウェアまたはソフトウェアのボタンを押してから離した後、ホットキーが押されている間、あるいはタッチジェスチャが入力された後など、ユーザ入力によって活動化されたときのみ表示される。ユーザインタフェース要素１９４、１９６、１９８のうちの一部は、アプリケーションを開くために使用されたとき、表示を持続する入力が終了したとき、またはユーザが閉じるコマンドを呼び出したときに、非表示にされることもある。
【００２５】
[034]  図４のシステムユーザインタフェース要素１９４、１９６、１９８は、単なる例であり、アプリケーションのリストを提供するその他のベースを使用することもできる。例えば、「全てのアプリケーション」というユーザインタフェース要素を設けて、コンピューティングデバイスに以前インストールされた全てのアプリケーションを表すユーザが活動化できるグラフィック表現を示すこともできる。上述のタイプのユーザインタフェース要素はいずれも、フルスクリーン要素として実施することもでき、例えば、特殊なタイプのアプリケーションウィンドウとしてウィンドウ生成システムが管理することもできる。
【００２６】
[035]  図５は、フルスクリーンアプリケーションランチャ２２０（別のタイプのシステムユーザインタフェース要素であり、「ランチャ」、「スイッチャ」、グラフィカルユーザシェルなどと呼ばれることもある）の一例を示す図である。フルスクリーンアプリケーションランチャ２２０は、ユーザがインタラクションによってアプリケーションを管理することを可能にする別の手段である。アプリケーションランチャ２２０は、ユーザ設定可能であることもあり、例えば、対応するアプリケーションを表現する、ユーザが選択した、またはユーザが配列したアプリケーション表現（アプリケーション・リプレゼンテーション）２２２を有する。本明細書で使用する「起動する」という用語は、アプリケーションを最初に開くこと（例えば新たなプロセスを開始するなど）、およびアプリケーションの既に実行中の（場合によっては休眠中の）アプリケーションウィンドウを開く（表示する）ことの両方を指す。
【００２７】
[036]  一実施形態では、アプリケーション表現２２２は、例えば他のアプリケーション、システムサービス、またはネットワークベースリソースから受信する動的に更新されるコンテンツを表示することができる。このようなライブ更新は、アプリケーション表現のアプリケーションが開いていないときでも行うことができる。アプリケーションランチャは、スクロール可能サーフェスとして実施することができ、また、クロック、ログアウトメカニズム、ネットワーク状態情報、システムまたはアプリケーションの通知などのダッシュボード様の特徴を含むこともできる。ときには、以下で述べるように、アプリケーションランチャ２２０は、ユーザから要求されるまで表示されないこともある。
【００２８】
[037]  アプリケーション表現２２２は、インタラクティブに、再配列したり、除去したり、追加したり、場合によってはサイズ変更したり、設定によって構成したり、動的なコンテンツを有するアプリケーションによって更新したりすることができる。アプリケーション表現２２２を、ユーザが活動化または選択して、対応するアプリケーションウィンドウを開くこともできる。いくつかの実施形態では、アプリケーションランチャは、グラフィックアプリケーション表現２２２が作動されてアプリケーションウィンドウを開いたときに非表示にされる。これは、開いたアプリケーションウィンドウが、アプリケーションランチャが使用されていたディスプレイ上でアプリケーションランチャに取って代わることができるからである。
【００２９】
[038]  図６は、第１のディスプレイ１０８Ａおよび第２のディスプレイ１０８Ｂ上で活動化可能であるユーザインタフェース要素１９４の一例を示す図である。簡潔にするために、ユーザインタフェース要素１９４のマルチディスプレイ挙動（最近使ったアプリケーションのリスト１８８に対応する）についてのみ説明する。ただし、このマルチディスプレイ挙動は、任意の他のタイプのシステムユーザインタフェース要素でも容易に実施することができる。
【００３０】
[039]  ユーザインタフェース要素１９４は、対応するアプリケーションのグラフィックアプリケーション表現２２２を含む。アプリケーション表現は、対応するアプリケーションのサムネイル画像（ライブまたは以前に取り込まれたもの）、あるいはそのアプリケーションを表現するグラフィックシンボルとして表示することができる。アプリケーション表現２２２は、ユーザが、インタラクティブに、例えばクリックまたはタッチによって選択する、あるいはユーザインタフェース要素１９４からドラッグすることができる。アプリケーション表現２２２が活動化される、またはドラッグから解除されると、対応するアプリケーションウィンドウが開く。様々な視覚効果を使用することができる。例えば、直前のレイアウトまたは新たに現れるレイアウトのレンダリングは、拡大してディスプレイを占有した後でウィンドウのライブ活動化に切り替わるようなアニメーションにすることができる。いくつかの実施形態では、アプリケーション表現２２２は、一群のアプリケーションのグループを表現することもあり、これを使用すれば、それら全てのアプリケーションを一度に開くことができる。なお、ポインタ２２４は表示されることも表示されないこともあり、本明細書では、ポインタ２２４は、グラフィックポインタだけでなくユーザによって移動または入力される入力点も示すことがあることに留意されたい。
【００３１】
[040]  ユーザインタフェース要素１９４のマルチディスプレイ挙動に関連して、ユーザインタフェース要素は、１実施形態では、第１のディスプレイ１０８Ａまたは第２のディスプレイ１０８Ｂのいずれかでユーザが開くことができ、任意選択により、図６の４つの連続した段階に示すように、両方のディスプレイで同時に表示できないこともある。さらに、ユーザインタフェース要素１９４が表示されたとき、他方のディスプレイ（ユーザインタフェース要素１９４を表示していないディスプレイ）のアプリケーションウィンドウは、影響を受けないので、維持される。したがって、一方のディスプレイが１つまたは複数のアプリケーションウィンドウを有しているときに、他方のディスプレイはシステムユーザインタフェース要素を有することができ、一方とのインタラクションが、他方に影響を及ぼす必要はない。
【００３２】
[041]  順に見ていくと、ユーザインタフェース要素１９４は、最初は表示されないが、利用可能であり、第１のディスプレイ１０８Ａまたは第２のディスプレイ１０８Ｂのいずれかでユーザによって活動化される。図６の一番上の部分に示すように、ユーザインタフェース要素１９４は、ユーザ入力によって表示され、最近使用されたアプリケーションに対応するアプリケーション表現２２２を示す。なお、この時点では、ユーザインタフェース要素１９４がどのディスプレイに表示されるかに関わらず、同じアプリケーション表現が表示されることに留意されたい。しかし、アプリケーション「ａｐｐ６」のアプリケーション表現２２２がユーザによって活動化されると、ユーザインタフェース要素１９４は非表示になり、タイル型ウィンドウ生成システムが、ユーザインタフェース要素１９４が表示されていたのと同じディスプレイ、すなわち第１のディスプレイ１０８Ａ上で、アプリケーション「ａｐｐ６」のアプリケーションウィンドウ１０６を開き、表示する。アプリケーション「ａｐｐ６」は、この時点でアクティブになっているので、最近使ったアプリケーションのリスト１８８（またはソースモニタが他方のディスプレイ上に見えていた場合にはソースモニタである可能性もある）から除去され、第１のディスプレイ１０８Ａ上でアプリケーション「ａｐｐ６」によって取って代わられたアプリケーション「ａｐｐ１３」が、最近使ったアプリケーションのリスト１８８に追加される（この時点で、ユーザインタフェース要素１９４が他方のディスプレイ上で開いていた場合には、ユーザインタフェース要素１９４は「ａｐｐ６」ではなく「ａｐｐ１３」を含むことになる）。なお、アプリケーション「ａｐｐ６」のアプリケーションウィンドウ１０６を開いても、第２のディスプレイ１０８Ｂ上に表示されているアプリケーションウィンドウには影響を及ぼさず、このアプリケーションウィンドウは、引き続き表示され、インタラクティブ型マルチタスキングに利用可能であることに留意されたい。
【００３３】
[042]  図６の上から２番目の部分に示すように、ユーザが第２のディスプレイ１０８Ｂでユーザインタフェース要素１９４を活動化するとき、ユーザは、アプリケーション「ａｐｐ１３」のアプリケーション表現を選択し、これにより、第１のディスプレイ１０８Ａの内容には影響を及ぼすことなく第２のディスプレイ１０８Ｂの内容を変化させ、また、最近使ったアプリケーションのリスト１８８を更新し、第２のディスプレイ１０８Ｂ上にアプリケーション「ａｐｐ１３」のアプリケーションウィンドウを表示する。このプロセスは、任意のアプリケーションについて無限に繰り替えることができる。マルチディスプレイ挙動は、ディスプレイのいずれか１つをマスタディスプレイまたは制御側ディスプレイとして指定しなくても実施することができる。これは、ディスプレイが、ユーザインタフェース要素１９４（またはその他の任意のユーザインタフェース要素である場合もある）およびそれを使用した効果に関して対等なピアとして扱われるからである。
【００３４】
[043]  図７は、グラフィック表現２２２をユーザがディスプレイ間で移動させることができるマルチディスプレイの実施形態を示す図である。この場合には、グラフィック表現は、ユーザインタフェース要素１９４の外部にドラッグされ、最初のディスプレイ（例えば第２のディスプレイ１０８Ｂ）または他方のディスプレイ上に配置することができる。対象アプリケーション（「ａｐｐ１３」）は、別のアプリケーションに取って代わることもできるし、あるいは他のアプリケーションの中に挿入することもできる。アプリケーション表現２２２が（ディスプレイ間を移動して）他方のディスプレイ上でドロップされた場合には、統合された最近使ったアプリケーションのリスト１８８が、それに応じて更新されて、他方のディスプレイ上で取って代わられたアプリケーションを含むようになる。すなわち、例えば、アプリケーション「ａｐｐ６」が追加される。
【００３５】
[044]  上記の説明から分かるように、最近使ったアプリケーションのリスト１８８の内容およびユーザインタフェース要素１９４の外観は、それがどのディスプレイに表示されているか、またはアプリケーションウィンドウがどのディスプレイで開かれるかに関わらず、複数のディスプレイの間で一貫している。さらに、１つのディスプレイに限定されたアクティビティは、他のいかなるディスプレイに表示されているものにも影響を及ぼさないが、休眠状態である場合には、ユーザインタフェース要素１９４は、後に他方のディスプレイに表示された場合に、このようなアクティビティを反映することになる。
【００３６】
[045]  図８は、複数のディスプレイ上でアプリケーションランチャ２２０を実施する実施形態を示す図である。最初に、図８の一番上に示すように、第１のディスプレイ１０８Ａおよび第２のディスプレイ１０８Ｂの両方が、全てマルチタスクユーザインタラクティビティに利用可能な１つまたは複数のタイル型（または没入型）のアプリケーションウィンドウを表示する。例えばジェスチャ、キーの組合せ、ハードウェアまたはソフトウェアのボタンなど、ユーザが入力するとアプリケーションランチャ２２０を活動化（表示）することができる既定の入力がある場合もある。これらの活動化入力は、いかなる特定のディスプレイに特定のものでもないが、それらがどのディスプレイに影響を及ぼすかは、どのディスプレイが現在ユーザによって使用されているか（例えばどのディスプレイがポインタを有するか、またはどのディスプレイがユーザ入力を受け取るウィンドウを有するかなど）によって決まることがある。あるいは、アプリケーションランチャ２２０の呼出し入力をどのディスプレイに向けるかは、そのディスプレイが入力レイヤとして機能している、または入力レイヤと結合されている場合には、直接決定することができる。
【００３７】
[046]  ユーザ入力を受け取り、一度にいずれかのディスプレイであることができる特定の対象ディスプレイに向けると、ウィンドウ生成システムは、図８の真ん中の部分に示すように、その対象ディスプレイ上にアプリケーションランチャ２２０を表示する。同時に、他の１つまたは複数のディスプレイ（非対象の１つまたは複数のディスプレイ）上の１つまたは複数のアプリケーションウィンドウは、アプリケーションランチャ２２０の表示の直接の影響は受けず、引き続きマルチタスクユーザ入力に利用可能である。同様に、アプリケーションランチャ２２０が（明示的または暗示的に）解除される、または非表示になったときも、他のディスプレイ上の１つまたは複数のアプリケーションウィンドウはいずれも影響を受けない。
【００３８】
[047]  アプリケーションランチャ２２０が任意の１つのディスプレイに表示されたとき、例えばアプリケーションウィンドウとインタラクトする、他のディスプレイに向けられたユーザ入力が、アプリケーションランチャ２２０を非表示にすることはなく、アプリケーションランチャ２２０は、ユーザによって使用されるように利用可能な状態のままであり、場合によってはダッシュボード式にライブの情報を表示したり、他のシステム機能を提供したりすることもある。アプリケーションランチャ２２０が第１のディスプレイに表示され、ランチャを呼び出す入力が第２のディスプレイに向けられている場合には、アプリケーションランチャ２２０は、第１のディスプレイから除去され、第２のディスプレイに表示される。
【００３９】
[048]  図９は、第２のディスプレイ１０８Ｂに表示されたアプリケーションランチャ２２０を示す図である。ユーザが第１のディスプレイ１０８Ａでマルチタスキングを行っており、アプリケーションランチャ２２０を活動化すると、ウィンドウ生成システムは、アプリケーションランチャ２２０を第２のディスプレイ１０８Ｂから第１のディスプレイ１０８Ａに移行させる。したがって、第２のディスプレイ１０８Ｂにおけるその後のいかなるマルチタスキングも、第１のディスプレイ１０８Ａ上のアプリケーションランチャ２２０に影響を及ぼす必要はない（逆も同様である）。
【００４０】
[049]  図８の真ん中の部分に示すように、表示されるアプリケーションランチャ２２０とインタラクトして、アプリケーションウィンドウを開く、またはその他のアプリケーション管理機能を実行することができる。アプリケーション「ａｐｐ４」のアプリケーション表現がユーザによって選択されると、対応するアプリケーションウィンドウが、アプリケーションランチャ２２０を表示していたのと同じディスプレイに表示される（これにより、ユーザインタフェース要素１９４、１９６、１９８のうちの１つによって使用されるアプリケーションリストを更新することもある）。１実施形態では、選択されたアプリケーションウィンドウが、アプリケーションランチャ２２０に取って代わり、ディスプレイを実質的に完全に占有するように表示されるが、同時に、他方のディスプレイ上のアプリケーションウィンドウはいずれも影響を受けない。１実施形態では、ユーザは、入力を与えて、アプリケーションランチャ２２０を明示的に隠すことができ、この場合には、アプリケーションランチャ２２０が開かれる前に表示されていた１つまたは複数のアプリケーションウィンドウが再表示されることになる。
【００４１】
[050]  ときには、複数のディスプレイのうちの１つまたは複数が、切断される、または作動不能になることがある。アプリケーションキャプチャ特徴を実施して、そのディスプレイに表示されていたアプリケーションウィンドウの標識を取り込むことによって、このディスプレイの喪失に対応することもできる。上記の１つまたは複数のディスプレイが所定の期間（例えば５分）以内に再接続された場合には、アプリケーションウィンドウが、その１つまたは複数のディスプレイ上に自動的に表示され、切断される前のその１つまたは複数のディスプレイの外観を再現する。なお、全てのディスプレイが切断された場合には、このタイマは、適用されないこともあることに留意されたい。すなわち、ディスプレイドライバが更新中であるとき、遠隔マシンに接続中であるとき、または何らかのシステム障害が発生したときなど、利用可能なディスプレイがないというシナリオもあり得る。そのような場合には、全ての画面を復元することができる。
【００４２】
[051]  オペレーティングシステムおよび／またはウィンドウ生成システムが複数のモニタを取り扱う方法にさらに関連して、ウィンドウ生成システムは、アプリケーションをインタラクティブにディスプレイ間で移動させることを可能にすることもある。例えば、ユーザは、第１のディスプレイ上のウィンドウを第２のディスプレイまでドラッグすることができることもある（あるいは、ユーザは、「ディスプレイを切り替える」コマンドを入力することもある）。すなわち、ウィンドウ生成システムは、タイル型配列を維持し、連結されたディスプレイモデル内でシームレスにユーザインタフェース要素を提供することができる。
【００４３】
[052]  上述の実施形態から分かるように、コンピューティングデバイスが接続されたディスプレイを１つしか有していないときに、アプリケーションを開く、または他のアプリケーション管理機能を実行するために、いくつかのシステムユーザインタフェース要素が利用可能である可能性がある。第２のディスプレイが接続されたときに、それらのシステムユーザインタフェース要素は、休眠状態である、または現在表示されていない場合であっても、両方のディスプレイで活動化されるように等しく利用可能になる。さらに、一方のディスプレイにおけるそれらの表示または使用が、他方のディスプレイの内容に影響を及ぼす必要はない。一方のディスプレイにおいてユーザインタフェース要素が非活動化されたとき、または非表示にされたときに、他方のディスプレイの内容（例えばウィンドウ）は、引き続きそのディスプレイに表示され続けることもある。
【００４４】
[053]  図１０は、上述の実施形態を実施することができるコンピューティングデバイス１００の一例を示す図である。コンピューティングデバイス１００は、１つまたは複数のディスプレイ２６６、ならびに記憶デバイス２６２およびプロセッサ２６４を有することができる。これらの要素は、コンピューティングの技術分野で十分に理解されている方法で協働することができる。さらに、入力デバイス２６８が、コンピューティングデバイス１００と一体化される、またはコンピューティングデバイス１００と通信していることもある。ディスプレイ２６６は、例えば固体表面ディスプレイ（例えばプラズマ、液晶など）、プロジェクタ、タッチセンス式表面など、コンピューティングデバイスから出力される信号を表示するために使用される任意の様々なデバイスとすることができる。コンピューティングデバイス１００は、任意の形状計数を有することができる、または任意のタイプの格納デバイスに入れて使用することができる。例えば、家庭器具、ロボット、およびその他の機械を制御するためには、タッチセンス式制御パネルが使用されることが多い。コンピューティングデバイス１００は、スマートフォン、タブレットコンピュータ、ゲーム機またはヘッドレスサーバなど、手持ち型デバイスの形態とすることもできる。
【００４５】
[054]  上述の実施形態および特徴は、揮発性または不揮発性のコンピュータ可読またはデバイス可読デバイスに記憶された情報の形態で実現することができる。これは、少なくとも、光学記憶装置（例えばコンパクトディスク読取り専用メモリ（CD-ROM）、磁気媒体、フラッシュ読取り専用メモリ（ROM）、またはその他の任意のデジタル情報を物理的物質に記憶するデバイスなどのデバイスを含むと考えられる。記憶される情報は、機械実行可能命令（例えばコンパイルされた実行可能バイナリコード）、ソースコード、バイトコード、あるいはコンピューティングデバイスが上述の様々な実施形態を実行することを可能にする、または上述の様々な実施形態を実行するようにコンピューティングデバイスを構成するために使用することができるその他の任意の情報の形態とすることができる。これは、また、少なくとも、実施形態を実行するプログラムの実行中の中央処理装置（CPU）命令などの情報を記憶するランダムアクセスメモリ（RAM）および／または仮想メモリなどの揮発性メモリ、ならびにプログラムをロードして実行することを可能にする情報を記憶した不揮発性媒体を含むとも考えられる。これらの実施形態および特徴は、携帯可能デバイス、ワークステーション、サーバおよびモバイル無線デバイスなど、任意のタイプのコンピューティングデバイスで実行することができる。
【図１】
0006273354.tif 000002
【図２】
0006273354.tif 000003
【図３】
0006273354.tif 000004
【図４】
0006273354.tif 000005
【図５】
0006273354.tif 000006
【図６】
0006273354.tif 000007
【図７】
0006273354.tif 000008
【図８】
0006273354.tif 000009
【図９】
0006273354.tif 000010
【図１０】
0006273354.tif 000011