(57)【要約】【課題】ユーザのジェスチャは、デバイス上で動作する特定のオペレーティングシステム又はＯＳに結び付けられていることがある。デュアルスクリーンタッチパネルデバイスが実装され得る場合には、一つのスクリーンから他方のスクリーンへとアプリケーション又はウィンドウを簡単に動かすジェスチャを提供しない可能性がある。【解決手段】オペレーティングシステムに依存しないジェスチャのための、デュアルスクリーンによって実装される方法であって：前記デュアルスクリーンデバイスの一つのスクリーンにおいて接触点を検出する接触点検出ステップ；オペレーティングシステムに依存しないジェスチャの存在を決定するジェスチャ決定ステップ；及び前記オペレーティングシステムに依存しないジェスチャに関連する動作を起動するジェスチャ起動ステップ；を有する方法を提供する。【選択図】図２
2011248888.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムに依存しないジェスチャのための、デュアルスクリーンによって実装される方法であって：
前記デュアルスクリーンデバイスの一つのスクリーンにおいて接触点を検出する接触点検出ステップ；
オペレーティングシステムに依存しないジェスチャの存在を決定するジェスチャ決定ステップ；及び
前記オペレーティングシステムに依存しないジェスチャに関連する動作を起動するジェスチャ起動ステップ；
を有する方法。
【請求項２】
請求項１に記載の方法であって、
前記ジェスチャ決定ステップは、指に基づくタッチと形状に基づくタッチとを区別する
方法。
【請求項３】
請求項１に記載の方法であって、
前記オペレーティングシステムに依存しないジェスチャの存在を決定する前記ジェスチャ決定ステップは、前記ジェスチャが認識されたことをユーザに表示するユーザ表示ステップを含む
方法。
【請求項４】
請求項３に記載の方法であって、
前記ジェスチャが認識されたことをユーザに表示する前記ユーザ表示ステップは、前記デュアルスクリーンデバイスの前記一つのスクリーン上に仮想キーボードを起動し設置する
方法。
【請求項５】
請求項１に記載の方法であって、さらに、
前記一つのスクリーンに現れる仮想キーボードを起動する仮想キーボード起動ステップ
を有する方法。
【請求項６】
請求項５に記載の方法であって、さらに、
前記仮想キーボードが現れたとき、前記一つ目のスクリーンに存在しているアプリケーションを、前記デュアルスクリーンデバイスの二つ目のスクリーンに配置するアプリケーション配置ステップ
を有する方法。
【請求項７】
請求項１に記載の方法であって、さらに、
異なるユーザに定義されたオペレーティングシステムに依存しないジェスチャを提供するジェスチャ提供ステップ
を有する方法。
【請求項８】
デュアルスクリーンデバイスであって：
一つ以上のプロセッサ；
前記プロセッサと連結しているメモリ；
前記デュアルスクリーンデバイスの一つのスクリーンにおけるタッチ及び形状の情報を特定する接触点認識部；及び
前記タッチと形状の情報を処理し、かつ、特定の形状を特定し、かつ、前記特定の形状をあるオペレーティングシステムに依存しないジェスチャへ関連付けるジェスチャ認識部；
を有するデュアルスクリーンデバイス。
【請求項９】
請求項８に記載のデュアルスクリーンデバイスであって、
前記接触点認識部及び前記ジェスチャ及び前記ジェスチャ認識部は、カスタマイズされたオペレーティングシステムに依存しないジェスチャを提供するジェスチャエンジンの一部である
デュアルスクリーンデバイス。
【請求項１０】
請求項８に記載のデュアルスクリーンデバイスであって、
前記ジェスチャ認識部が仮想キーボードと関連付けられたジェスチャを認識したとき、前記仮想キーボードが起動する
デュアルスクリーンデバイス。
【請求項１１】
請求項１０に記載のデュアルスクリーンデバイスであって、
一つ以上のウィンドウが、前記仮想キーボードが現れた第一のスクリーンから前記デュアルスクリーンデバイスの第二のスクリーンへと移動される
デュアルスクリーンデバイス。
【請求項１２】
請求項１０に記載のデュアルスクリーンデバイスであって、
認識された前記ジェスチャに基づいて前記仮想キーボードが前記デュアルスクリーンデバイスの第一のスクリーン上の中心に置かれる
デュアルスクリーンデバイス。
【請求項１３】
請求項１０に記載のデュアルスクリーンデバイスであって、さらに
前記デュアルスクリーンデバイスの物理的なケースにタクタイルエイドが設けられている
デュアルスクリーンデバイス。
【請求項１４】
請求項１３に記載のデュアルスクリーンデバイスであって、
前記タクタイルエイドは、前記デュアルスクリーンデバイスの前端に一つ以上の左端インジケータ、左バンプインジケータ、中央隆起インジケータ、右バンプインジケータ及び右端インジケータを含む
デュアルスクリーンデバイス。
【請求項１５】
請求項１０に記載のデュアルスクリーンデバイスであって、さらに
オペレーティングシステムが制御するタッチの情報をオペレーティングシステムへ送信するダイバータロジックを有する
デュアルスクリーンデバイス。
【請求項１６】
デュアルスクリーンデバイスにおいて仮想キーボードを起動し、ウィンドウを移動する方法であって：
複数の点及び形状に基づくジェスチャから前記仮想キーボードが関連付けられるキーボードに基づくジェスチャを特定するキーボードジェスチャ特定ステップ；
前記ウィンドウを前記デュアルスクリーンデバイスの第一のスクリーンから第二のスクリーンへ移動するウィンドウ移動ステップ；
前記第一のスクリーン上で前記仮想キーボードを起動するキーボード起動ステップ；及び
前記キーボードに基づくジェスチャに関するタッチの位置に基づいて仮想キーボードをセンタリングするキーボード配置ステップ
を有する方法。
【請求項１７】
請求項１６に記載の方法であって、
前記キーボードジェスチャ特定ステップは、前記第一のスクリーン上でツーハンズダウンのジェスチャに基づく
方法。
【請求項１８】
請求項１６に記載の方法であって、
前記ウィンドウ移動ステップは、前記第一のスクリーンに前記ウィンドウを再表示することを含み、前記仮想キーボードが非活性化されたとき、互いにウィンドウのＺオーダーに基づいてウィンドウが移動され再表示されるウィンドウ再表示ステップ
を有する方法。
【請求項１９】
請求項１６に記載の方法であって、前記キーボード配置ステップは、指の位置と前記仮想キーボードのホーム列に基づいてセンタリングする
方法。
【請求項２０】
請求項１６に記載の方法であって、さらに、
一つ以上の、ツーハンズダウン、スリーフィンガータップ、スウィープ及びグラブの、形状に基づくジェスチャを認識し、区別する
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、ユーザジェスチャのための方法及びデュアルスクリーンデバイスに関し、特に、オペレーティングシステムに依存しないジェスチャのためのデュアルスクリーンデバイスによって実装される方法及び該デュアルスクリーンデバイスに関する。
【背景技術】
【０００２】
典型的なタッチスクリーンユーザインターフェースは、指のジェスチャを用いて実行される。そのような指のジェスチャは、タッチスクリーンユーザインターフェース上の単一の点へと分解される。その指のジェスチャ又は接触点が単一の点へと分解されることについて、その形状に関わらず、前記タッチスクリーンユーザインターフェースへと適用される。したがって、タッチスクリーンユーザインタフェース上で実行されるタッチジェスチャは点に制限される。そのような指のジェスチャは、点に制限されるため、タッチスクリーンインターフェースがタッチコマンド又は命令を理解するために、正確でなければならないことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ユーザのジェスチャは、デバイス上で動作する特定のオペレーティングシステム又はＯＳに結び付けられていることがある。デュアルスクリーンタッチパネルデバイスが実装され得る場合には、一つのスクリーンから他方のスクリーンへとアプリケーション又はウィンドウを簡単に動かすジェスチャを提供しない可能性がある。
【０００４】
例えば、仮想キーボードを実装しているデュアルスクリーンラップトップにおいて、仮想キーボードが呼び出されると、スクリーンの一つに表示されることがある。仮想キーボードが呼び出される前に、１つ以上のアプリケーション又はウィンドウがそのスクリーン上で存在することがある。そのアプリケーションは、完全に消えるか覆われることがある。
【０００５】
特にアプリケーション又はウィンドウを移動するために、ＯＳが提供するジェスチャが利用可能でない可能性がある。さらに、ＯＳによって提供されるジェスチャは、仮想キーボードが消えた時、（再び）存在したままのアプリケーション又はウィンドウを処理しない可能性がある。
【０００６】
デュアルスクリーンデバイス向けの仮想キーボードには短所もある。ある仮想キーボードは、編集可能なフィールドがフォーカスを得るとすぐに表示される、ポップアップウィンドウであることがある。従って、ユーザが単にコンテンツを閲覧したい場合、仮想キーボードは邪魔になる。これによりユーザは、仮想キーボードが表示された後、手動で仮想キーボードを適当な位置に置く必要がある可能性がある。
【０００７】
そのような仮想キーボードは、定義済みのアプリケーションとして実行されることがある。仮想キーボードアプリケーションを呼び出したり閉じたりする特定のタッチジェスチャは存在しないこともある。さらに、仮想キーボードは、個人によって使用するために、適切に、センタリングされないこともある。言い換えると、一つの万能サイズのキーボードが提供されることがある。さらに、仮想キーボードは滑らかなので、タッチタイピストを支援するため、キーの位置を適切に認識するためのタクタイルエイドが何ら存在しないことがある。
【課題を解決するための手段】
【０００８】
上述した課題を解決し目的を達成するため、本発明にかかる方法は、オペレーティングシステムに依存しないジェスチャのための、デュアルスクリーンによって実装される方法であって：前記デュアルスクリーンデバイスの一つのスクリーンにおいて接触点を検出する接触点検出ステップ；オペレーティングシステムに依存しないジェスチャの存在を決定するジェスチャ決定ステップ；及び前記オペレーティングシステムに依存しないジェスチャに関連する動作を起動するジェスチャ起動ステップ；を有する。
【０００９】
また、上述した課題を解決し目的を達成するため、本発明にかかるデュアルスクリーンデバイスは、デュアルスクリーンデバイスであって：一つ以上のプロセッサ；前記プロセッサと連結しているメモリ；前記デュアルスクリーンデバイスの一つのスクリーンにおけるタッチ及び形状の情報を特定する接触点認識部；及び前記タッチと形状の情報を処理し、かつ、特定の形状を特定し、かつ、前記特定の形状をあるオペレーティングシステムに依存しないジェスチャへ関連付けるジェスチャ認識部；を有する。
【００１０】
さらに、上述した課題を解決し目的を達成するため、本発明にかかる方法は、デュアルスクリーンデバイスにおいて仮想キーボードを起動し、ウィンドウを移動する方法であって：複数の点及び形状に基づくジェスチャから前記仮想キーボードが関連付けられるキーボードに基づくジェスチャを特定するキーボードジェスチャ特定ステップ；前記ウィンドウを前記デュアルスクリーンデバイスの第一のスクリーンから第二のスクリーンへ移動するウィンドウ移動ステップ；前記第一のスクリーン上で前記仮想キーボードを起動するキーボード起動ステップ；及び前記キーボードに基づくジェスチャに関するタッチの位置に基づいて仮想キーボードをセンタリングするキーボード配置ステップを有する。
【図面の簡単な説明】
【００１１】
【図１】例示的なデュアルスクリーンデバイスと仮想キーボードの図である。
【図２】ジェスチャ認識を実装する例示的なデバイスのブロック図である。
【図３】ジェスチャの決定のプロセスのためのフローチャートである。
【図４Ａ】説明のための例示的な手のタッチジェスチャを示す図である。
【図４Ｂ】説明のための例示的な手のタッチジェスチャを示す図である。
【図５】仮想キーボードとタクタイルエイドを備える例示的なデュアルスクリーンデバイスの図である。
【図６】多数のウィンドウ／アプリケーションと仮想キーボードを呼び出す例示的なデュアルスクリーンデバイスの図である。
【図７】仮想キーボードの呼び出しと、アクティブウィンドウの位置調整のプロセスのためのフローチャートである。
【発明を実施するための形態】
【００１２】
発明の詳細な説明は、添付されている図面への言及と共に記述される。図面において、参照番号の最も左の数字が、参照番号が最初に現れる図面を特定する。機能や構成要素に言及するための図面全体にわたって同一の番号が用いられる。
【００１３】
複数の実施形態は、カスタマイズ可能で、デバイスの使用モデルに固有のものであり、デバイス上で動作するオペレーティングシステム（ＯＳ）に依存しないジェスチャを用いるデュアルスクリーンタッチパネルデバイスの使い勝手を高めるものである。
【００１４】
いくつかの実施形態は、一つのスクリーンからもう一つのスクリーンへアプリケーションウィンドウを移動することを可能にするジェスチャを提供する。ＯＳによって無視されるタッチデータを用いて、ＯＳとのデフォルトのユーザインタラクションに影響を及ぼすことなく、ユーザエクスペリエンスを高めるためのカスタムジェスチャがデバイスに追加され得る。  
いくつかの実装において、例えばラップトップなどのデュアルスクリーンタッチパネルデバイスは、ユーザがさらなるスクリーン空間を欲するとき、仮想キーボードを隠すことができる。ある典型的なＯＳは、通常、共通のタスクのためのキーボードショートカットを有することがあるため、仮想キーボードが使用されるとき、追加のジェスチャが必要とされることがある。
【００１５】
そのうえ、追加のジェスチャは、ＯＳに組み込まれたジェスチャを変更することなく追加され得る。また追加のジェスチャは、動的にジェスチャ認識エンジンに追加され得る、ユーザ定義のカスタムジェスチャを可能にする。このことは、ジェスチャがＯＳを更新することなく付け足され又は取り去られることを可能にする。言い換えると、前記ジェスチャはＯＳに依存しない。
【００１６】
図１はデュアルスクリーンタッチパネルデバイス（以下デバイスという）１０２を表している。前記デバイス１０２はラップトップコンピュータ又は他のデバイスであっても良い。デバイス１０２は、上部のタッチパネル面又はＢ面１０４、及び、下部のタッチパネル面又はＣ面１０６の２つのタッチパネル面を含む。いくつかの実装において、面１０４及び１０６はユーザ向けの入力制御手段を提供し、ウィンドウとアプリケーションを表示する。
【００１７】
例えば従来のラップトップコンピュータなどのデバイスとは異なり、物理的なキーボードデバイスは提供されない。しかしながら、いくつかの実装においては、ユーザ入力のためにキーボードを実装することが望ましい。デバイス１０２は、呼び出される仮想キーボード１０８を提供する。さらに後で説明するように、仮想キーボード１０８は様々なジェスチャを実装することによって呼び出され、消去されることができる。
【００１８】
図２はデバイス１０２の例示的なアーキテクチャを表す。デバイス１０２は一つ以上のプロセッサ２００、オペレーティングシステム又はＯＳ２０２及びプロセッサ２００に連結されたメモリ２０４を含めることができる。メモリ２０４は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、外部メモリ及び外部メモリを含む（ただし必ずしもこれらに限定されない）様々なタイプのメモリ及び／又はメモリデバイスを含むことができる。
【００１９】
さらに、メモリ２０４は、デバイス１０２によって使用可能なコンピュータ読み取り可能な命令を含むことができる。ここに記載された構成要素は、メモリ２０４の一部として統合され又は含まれ得ることが理解されるべきである。
【００２０】
デバイス１０２は、タッチスクリーンハードウェア２０６を含む。タッチスクリーンハードウェア２０６は、タッチパネル面１０４、タッチパネル面１０６、タッチパネル面１０４と１０６の一部であるセンサー及び物理入力装置を有する。タッチスクリーンハードウェア２０６は、タッチパネル面１０４と１０６上で有効化された点の検出を提供する。
【００２１】
タッチパネルファームウェア２０８は、タッチスクリーンハードウェア２０６の物理的なセンターからデータを抽出することができる。抽出されたデータは、画像データを含んだタッチデータのストリームとして転送される。もしタッチスクリーンハードウェア２０６上でタッチがなされなければ、何のデータも転送されない。
【００２２】
データ（すなわち、データのストリーム）は、接触点認識部２１０へ伝えられる。接触点認識部２１０は、そのタッチの形状、タッチされた場所及びタッチされた時を決定する。さらに後に説明するように、そのタッチの形状は、実装されたジェスチャの種類を決定する。
【００２３】
接触点認識部２１０は、ジェスチャ認識部２１２へ形状情報を送る。ジェスチャ認識部２１２は、接触点認識部２１０から受け取ったタッチ及び形状情報を処理し、一つの特定の形状と、その形状に関連付けられ得るジェスチャを決定する。ジェスチャ認識部２１２は、形状の変更、形状の位置／形状の位置の変更もまた決定する。
【００２４】
例えば、あるプロプライエタリで高級なタッチアプリケーションプログラムインターフェース（API）２１４を実装している接触点認識部２１０は、データをダイバータロジック２１６に送る。ジェスチャ認識部２１２は、あるプロプライエタリなジェスチャＡＰＩ２１８を通じて、ダイバータロジック２１６へデータを送ることもできる。ダイバータロジック２１６は、接触点認識部２１０及びジェスチャ認識部２１２から受け取ったコンテンツ又はデータが転送されるべきかどうか決定する。例えば、もし仮想キーボード１０８がＣ面１０６上でアクティブで動作しているとき、コンテンツやデータを送る必要はない。仮想キーボード１０８は、Ｃ面１０６からの入力を吸い上げるためである。
【００２５】
ダイバータロジック２１６は、ヒューマンインターフェースドライバ（HID）  ＡＰＩ２２０を通じて、オペレーティングシステムヒューマンインターフェースドライバ２２２へデータを送ることができる。前記オペレーティングシステムヒューマンインターフェースドライバ２２２は、ＯＳ２０２と通信を行う。接触点認識部２１０及びジェスチャ認識部２１２は、ＯＳ２０２から切り離されているので、ＯＳ２０２に含まれる接触点のジェスチャは影響を受けない。
【００２６】
例えば、ジェスチャはＯＳ２０２からは認識されない動作によって引き起こされ得るので、ジェスチャがタッチスクリーン又はＣ面１０６上のいかなる場所においてなされ、かつ、アクティブ（すなわち、ターゲット）ウィンドウに作用することで、例えばウィンドウフォーカスの変更などのイベントは起きない。
【００２７】
加えて、異なるジェスチャが、接触点認識部２１０及びジェスチャ２１２が更新されることによって追加され得る。接触点認識部２１０及びジェスチャ認識部２１２は、ジェスチャ認識エンジンとみなすことができる。
【００２８】
あるプロプライエタリなジェスチャ及び高級なタッチＡＰＩ２２４を通じて、ダイバータロジック２１６は、アプリケーションレイヤ２２６へとデータを供給することができる。オペレーティングシステムヒューマンインターフェースドライバ２２２は、ＯＳ固有のタッチＡＰＩ２２８を通じて、アプリケーションレイヤ２２６へとデータを送信することができる。アプリケーションレイヤ２２６は、デバイス１０２上で動作するアプリケーションウィンドウとともに適宜受信したデータ（すなわち、ジェスチャデータ）を処理する。
【００２９】
先に説明したように、ジェスチャ認識部２１０は、タッチ及び形状データを認識するために実現される。そのジェスチャ認識部２１０は、事前にタッチデータを処理し、ＯＳ２００から分離されている、タッチソフトウェア又はデバイス２１０のジェスチャ認識部とみなされ得る。さらに、タッチは、例えば「フィンガータッチ（Finger  Touch）」、「ブロブ（Blob）」及び「パーム（Palm）」などのカテゴリによって分類され得る。
【００３０】
前記ジェスチャは、「点」に基づくものと比較して、それらが「形状」に基づくものである点において、従来の指のタッチに基づくジェスチャと区別される。いくつかの実装において、指のタッチデータは「点」に基づくものであるので、指のタッチデータだけがＯＳ２００に送られても良い。「ブロブ」及び「パーム」のような形状に基づくタッチは除外することができ、ＯＳ２００には送られないことができる。しかしながら、ジェスチャ認識部２１０は全てのタッチデータを受信することができる。
【００３１】
一度ジェスチャが認識されると、ジェスチャ処理が開始されたことを示すユーザフィードバックが提供され、ＯＳ２００からは全てのタッチが隠され、ジェスチャ処理を始めることができる。ジェスチャが完了（すなわち、タッチスクリーン上でそれ以上ない）
したとき、通常の処理は再開され得る。
【００３２】
図３は、ジェスチャ認識及び接触点の出力先変更の処理の例のフローチャートである。処理３００は、デバイス１０２によって実行可能な命令として実装されても良い。手法が示された順序は、制限事項として解釈されることを意図したものではない。示された手法のブロックのいかなる番号も、その手法又は代替の手法を実装するために組み合わせることができる。さらに、個々のブロックは、ここに示された主題の趣旨及び範囲を逸脱せずに、本手法から削除されても良い。さらには、本手法は、本発明の範囲から逸脱せずに、いかなる適切なハードウェア、ソフトウェア、ファームウェア又は組み合わせにおいても実装されてもよい。
【００３３】
ブロック３０２において、タッチスクリーン上で接触点を検出する処理が実行される。その検出は、先に説明したデバイスのＣ面上で実行され、先に説明した処理がなされても良い。
【００３４】
一つのジェスチャの存在に応じて一つの判定が行われる（ブロック３０４）。もしジェスチャが存在するとき、次のブロック３０４の「ＹＥＳ」の分岐にしたがい、ジェスチャが認識されていることを示す表示がなされ得る。例えば、ある透明のフルスクリーンウィンドウが、ユーザの指の下に表示されても良い。
【００３５】
ブロック３０８において、ジェスチャの処理が実行される。前記処理は、図２に関して先に説明したとおりに実行されても良い。
【００３６】
もしブロック３０４において、ジェスチャが存在していない旨の判定がなされたとき、ブロック３０４の「ＮＯ」の分岐にしたがい、孤立した指のタッチがあるかどうかの判定がなされる（ブロック３１０）。
【００３７】
もし孤立した指のタッチがあるとき、ブロック３１０の「ＹＥＳ」の分岐にしたがい、ブロック３１２において、前記接触点がオペレーティングシステムへと送られる。ブロック３１４において、他の接触点を待ち、処理はブロック３０２へと戻る。
【００３８】
もし孤立した指のタッチがないとき、ブロック３１０の「ＮＯ」の分岐にしたがい、ブロック３１４が実行され、他の接触点を待つ。
【００３９】
図４Ａ及び４Ｂは、ジェスチャの例を表している。４つのジェスチャの例が表されている。しかしながら、他のジェスチャも適用可能であることが予定されており、特に形状に基づくジェスチャについて適用可能であることが予定されている。４つの例示的なジェスチャは以下の通りである。ａ）仮想キーボード１０８を起動するために用いられてもよい「ツーハンズダウン（Two  hands  down）」、ｂ）反対のスクリーン（すなわち、Ｂ面）上にブラウザのリンクを表示するために用いられてもよい「スリーフィンガータップ（Three  Finger  Tap）」、ｃ）アクティブなアプリケーション（ウィンドウ）を素早く切り替えるために用いられる「スウィープ（Sweep）」、及びｄ）２つのスクリーンの周りで一つのアクティブなウィンドウを素早く移動するために用いられる「グラブ（Grab）」である。
【００４０】
既に説明したように、オペレーティングシステム又はＯＳ２０２は、前記ジェスチャを認識しないので、オペレーティングシステムを更新することなく多数のジェスチャが付け足され、取り去られることができる。いくつかの実装において、ユーザがカスタムジェスチャを作成できるよう、ジェスチャエディタ（例えば、接触点認識部２１０、ジェスチャ認識部２１２）が提供されても良い。
【００４１】
スクリーンのいかなる領域においても、単一のジェスチャ動作は所望の動作を起動することができ、そのことは特定の領域をタッチすることよりも簡単なことがある。一度その動作が開始すると、手順を実行するためにさらに多くの可能性があるため、その動作を実行するためにより低い正確さが必要とされてもよい。例えば、そのようなジェスチャは、お決まりのアプリケーションを起動するためや、素早くシステムをロックするため、その他のタスクを実行するために用いられ得る。そのようなジェスチャの例を以下に説明する。
【００４２】
ジェスチャ４００は、「ツーハンズダウン」ジェスチャを表す。先に説明したように、デバイス１０２のようなデュアルスクリーンデバイスは、物理キーボードを有しないことがある。仮想キーボード１０８は、典型的にはＣ面で提供される物理キーボードの代わりに、Ｃ面１０６のタッチスクリーン上で使用されることができる。
【００４３】
「ツーハンズダウン」ジェスチャは、実際にタッチスクリーンに触れている接触点４０４−Ａから４０４−Ｌを用いて、タッチスクリーン上に置かれた手４０２−Ａ及び４０２−Ｂを規定する。接触点４０４は、「ツーハンズダウン」ジェスチャと関連付けられた、認識形状を提供する。前記「ツーハンズダウン」ジェスチャは、デバイスＣ面１０６上で仮想キーボード１０８を素早く起動するために用いられても良い。
【００４４】
ジェスチャ４０６は、「スリーフィンガータップ」を表す。「スリーフィンガータップ」ジェスチャは、共に密着している３本の指を規定する。前記ジェスチャは、一つの手及び実際の接触点４１０−Ａから４１０−Ｃを取り込む。そのタッチ処理は、このアクションの接触点４１０の組を、ブロブ及び／又はブロブから生じた接触点の混合として分類する。接触点４１０の組は、オペレーティングシステム（例えばＯＳ２０２）からは見えない（認識されない）。
【００４５】
「スリーフィンガータップ」ジェスチャのアクションは、反対の面（例えばＢ面１０４）上のブラウザウィンドウ内で、タップされたユニバーサルリソースロケータ又はＵＲＬを開くために使用されても良い。言い換えれば、もしそのタップがＣ面１０６上のブラウザで起こったとき、ブラウザウィンドウはＢ面１０４で開くことができる。あるいは、もしタップがＢ面１０４上のブラウザ内でなされたとき、ＵＲＬはＣ面のブラウザ内に現れても良い。この機能／ジェスチャは、デバイス１０２のようなデュアルタッチスクリーンデバイスのために、ユニークなインターネットブラウジングのユーザモデルを有効にすることができる。
【００４６】
ジェスチャ４１０は、「スウィープ」ジェスチャを表す。「スウィープ」ジェスチャは、タッチスクリーン（例えば、Ｃ面１０６）に接する接触点４１２−Ａ及び４１２−Ｂ、又は、接触点４１２−Ｃ及び４１２−Ｄを規定する。「スウィープ」ジェスチャは、「カラテチョップ」のように、タッチスクリーンに触れている手のひらの側面（すなわち接触点４１２）を取り込む。
【００４７】
「スウィープ」ジェスチャと関連付けられ得るアクションは、素早くアプリケーションとアプリケーションを切り替えるためのものであっても良い。ほとんどの、ウィンドウで構成されたオペレーティングシステムにおいて、そのようなアクション（すなわち、アプリケーション間で切り替えを行う）は、通常キーボードショートカットを使って行われる。しかし、仮想キーボード１０８は、デュアルスクリーンのラップトップでは常には存在していない可能性があるので、このジェスチャにより素早くアプリケーション間の切り替えを行うことができる。
【００４８】
ある例示的な操作において、「スウィープ」ジェスチャが最初に開始されたとき、現在実行中のアプリケーションを示すアイコンのリストが、現在アクティブなアプリケーションとともにハイライトされてスクリーン上で表示しても良い。左方向にスウィープするとリストは逆に進み、右方向にスウィープすると前に進む。手がタッチスクリーンの表面から離れたとき、現在選択されているアプリケーションがアクティブになる。
【００４９】
ジェスチャ４１４は、「グラブ」ジェスチャを表す。「グラブ」ジェスチャは、タッチスクリーンに接触している５つの接触点４１６−Ａから４１６−Ｅ、言い換えればタッチスクリーン上に同時に置かれた５本の指を規定する。既に説明した他のジェスチャとは異なり、「グラブ」ジェスチャは、ブロブでない（non-blob）接触点を含む。しかしながら、前記接触点は、オペレーティングシステム（例えばＯＳ２０２）にはみえない（すなわち認識されない）ように認識される。なぜなら、接触点認識ソフトウェア（例えば、接触点認識部２０８）は、スクリーン上に３つ以上の接触点が存在するとき、オペレーティングシステム（例えば、ＯＳ２０２）によって提供されないためである。
【００５０】
注目すべきは、ほとんどのユーザは、タッチスクリーンのスキャンレートの範囲内において、タッチスクリーン面状に３本以上の指を常に置いていない可能性があることである。例示的な操作において、「グラブ」ジェスチャは、２つのスクリーン（すなわち、面１０４及び１０６）の一つのアクティブなウィンドウを素早く移動するために用いられても良い。「グラブ」ジェスチャが認識された後、ユーザは一本の指を除いて全ての指を表面から持ち上げてもよい。そして、動作を起こすため、上、下、左又は右どちらかに動かしても良い。
【００５１】
例えば、上への動作が、ウィンドウをＢ面１０４へと移動しても良い。下への動作が、ウィンドウをＣ面１０６へと移動しても良い。そして左への動作又は右への動作により、現在の面の上にあるウィンドウと、反対の面のウィンドウの循環移動を開始しても良い（例えば、方向に依存して、最初に現在のスクリーンでフルスクリーンウィンドウのサイズが変わり、次に現在のスクリーンの左／右半分、次に反対の面の右／左半分、次に反対の面のフルスクリーン、次に反対の面の左／右半分、次に最初の面の右／左半分、次にウィンドウの元の配置）。最後のアクションによりユーザは、ウィンドウの端やハンドルを掴むための正確なタッチをすることなく、２つのディスプレイ領域において共通した位置に素早くウィンドウを移動することできる。
【００５２】
図５は、仮想キーボード１０８及びタクタイルエイドを備えるデバイス１０２を表す。既に説明したように、「ツーハンズダウン」ジェスチャは、Ｃ面１０６上の仮想キーボード１０８を起動するために使用されることができる。仮想キーボード１０８は、電力を抑えるため、あるいはユーザによって追加のスクリーン空間が望まれるとき、隠されても良い。既に説明し、さらに以下で説明するように、ジェスチャと方法は、ユーザが隠れた仮想キーボード１０８を本能的に復元でき、タイピングを快適にするため仮想キーボード１０８を動的にセットし、仮想キーボード１０８をより便利にするためにスクリーン上のほかのウィンドウを管理できるよう、提供される。
【００５３】
ウィンドウ管理は必須である可能性がある。なぜならば、仮想キーボード１０８が復元されたとき、仮想キーボード１０８が表示されていた場所に以前表示されていたコンテンツは覆い隠されるためである。物理的補助器具又はタクタイルエイドは、タッチタイピストが、仮想キーボード１０８を見ることなくキーの位置をみつけるのを支援するため、デバイス１０２上に設置されても良い。物理的補助器具は、ユーザの手の位置に関して触覚的なフィードバックを与え、タイピング中にキーボードに視線を落とす必要性を減らすために「筋肉の記憶」を利用する。
【００５４】
既に説明し、かつ後に詳しく説明するように、次のようなコンセプトが実装されてもよい。既に説明したタッチジェスチャは、ユーザが希望するタッチスクリーン面上の場所に動的にキーボードをセットするためのロジックを含む仮想キーボード１０８を隠し、かつ、復元するために用いられても良い。物理的補助器具又はタクタイルエイドは、タッチスクリーンに対するユーザの手の位置のフィードバックをユーザに与えるため、ラップトップのより低層面の工業上又は物理的な設計に含まれても良い。より低い面上に仮想キーボードが復元されたとき、ユーザがタイピング入力をどこにしているのかわかるように、移動しなければ隠されてしまうウィンドウ又はアプリケーションを動的に移動するロジックが提供されても良い。
【００５５】
既に説明したように、「ツーハンズダウン」ジェスチャは、仮想キーボード１０８を起動して呼び出すために用いられても良い。「ツーハンズダウン」ジェスチャが起動した後、仮想キーボード１０８が、Ｃ面１０６上に表示される。いくつかの実装において、Ｃ面１０６上に表示される仮想キーボード１０６は、スクリーン又はＣ面１０６の幅を埋める。しかし、全スクリーン（Ｃ面１０６）は占有しない。これにより、ユーザの望む通りに、キーボードはＣ面１０６上で上方向５００及び下方向５０２へ移動できる。
【００５６】
例えば、キーボード又は「ツーハンズダウン」ジェスチャが検出されたとき、仮想キーボード１０８は、２つの手の中指（他の実装においては、人差し指が検出される）の下に置かれたホーム列（すなわち、「Ｆ」と「Ｈ」を有する列）と共に、Ｃ面１０６上に垂直に配置されても良い。仮想キーボード１０８が最初に表示されたとき、無効化されていてもよい。なぜならば、キーボードの停止時間が存在する可能性があるからである。したがって、その時にスクリーン又はＣ面１０６に触れることがあっても、キーストロークはタイプされない。
【００５７】
仮想キーボード１０８の位置がセットされ、ユーザはタイピングを開始することができる。仮想キーボード１０８を隠すため、「スウィープ」ジェスチャのようなジェスチャが実装されても良い。他の実装においては、もしユーザが定義したタイムアウトの時間にスクリーン上でタッチがされない場合、仮想キーボード１０８は自動的に隠れても良い。
【００５８】
タッチスクリーンは滑らかであるため、ユーザは、触覚によるフィードバックを得られない。タッチタイピングで利用される触角によるフィードバックは、キーを見ることなくキーをタイプすることを助けるため、物理キーボードによって提供される。ユーザがスクリーン上で自分の指が水平にどこにあるかを見つけるのを助けるため、タクタイルエイド又は物理的支援機器はデバイスのカバー（例えば、ノートブック又はラップトップコンピュータの前端）に設置されても良い。タクタイルエイド又は物理的支援機器は、ユーザの手首／手のひらがデバイス１０２のＣ面１０６に沿ったどの場所にあるか、ユーザフィードバックを与える。
【００５９】
例示的なタクタイルエイドは、左端インジケータ５０４−Ａ、左バンプ＃１インジケータ５０４−Ｂ、左バンプ＃２インジケータ５０４−Ｃ、中央隆起インジケータ５０４−Ｄ、右バンプ＃１インジケータ５０４−Ｅ、右バンプ＃２インジケータ５０４−Ｆ及び右端インジケータ５０４−Ｇを含む。デバイス１０２の前端の図が５０６によって示されている。
【００６０】
仮想キーボード１０８のハンドプレースメント（タクタイルエイド）又はインジケータ５０４は、デバイス１０２のケースの前端５０６に沿って高くなった構造を提供してもよい。その場所は、仮想キーボード１０８上でユーザがタイプするとき、手首又は手のひらを普段は休ませる場所である。高くなった構造は、ユーザが感じる程度に十分高くあるべきであるが、バンプがユーザを不快にするほど高くあるべきではない。
【００６１】
例示的なインジケータの高さは、１／３２インチから３／３１インチの範囲内であってもよい。インジケータ５０４は、もしユーザが手首又は手のひらをデバイス１０２の前端に置いたとき、ユーザが少なくともインジケータの一つを常に感じることができるよう、設置されても良い。それらのインジケータ５０５を用いて、ユーザは、デバイスの前端に沿って手の位置についてフィードバックを常に得ることができる。仮想キーボード１０８の自動垂直配置（後述する）と併用されるとき、インジケータ５０４によって、ユーザは、快適にタイプするために手をどこに置く必要があるか感じることができる。
【００６２】
ユーザがデバイス１０２をしばしば使用するとき、ユーザは手首／手のひらでインジケータ５０４を感じることができ、インジケータ５０４と相対的に指の位置をマップすることができる。いずれ、ユーザは、タイピングを確認するためにキーボードを見る必要性が減り、キーに関する指の位置を筋肉の記憶を頼ることができる。
【００６３】
図６は、仮想キーボード１０８の実装による予想される予想のウィンドウ配置を表している。例えば、例示的なデュアルスクリーンデバイス（例えば、デバイス１０２）は、複数のウィンドウ／アプリケーション及び一つの仮想キーボードを呼び出す。Ｂ面１０４及びＣ面１０６は、ある構成６００の表示から始まってある構成６０２の表示になる。
【００６４】
構成６００において、アプリケーション又はウィンドウ「２」６０６及び「３」６０８がＢ面１０４上に表示されており、ウィンドウ「１」及び「４」がＣ面１０６上に表示されている。構成６０２において、仮想キーボード１０８は、Ｃ面１０６上に呼び出されて起動され、ウィンドウ「１」６０４、「２」６０６、「３」６０８及び「４」６１０はＢ面１０４へと移動されている。
【００６５】
仮想キーボード１０８がＣ面１０６上に表示されるとき、スクリーン全体を覆うので、スクリーンはアプリケーションウィンドウを閲覧するためにはもはや使用できない。さらに重要なことには、もしウィンドウ「１」６０４又はウィンドウ「４」６１０のような、仮想キーボード１０８の入力のためのアクティブなアプリケーション（ウィンドウ）が存在すると、ユーザはもはやタイプした通りのキーストロークの表示から文字列を理解することができない。
【００６６】
これを予期して、仮想キーボード１０８が表示されたとき、ユーザが見ることができるよう、Ｃ面のウィンドウはＢ面スクリーンへと移動される。このウィンドウの移動によって、あるウィンドウが他のウィンドウに対して相対的に可視となる、ディスプレイの順序又はＺオーダー（Z-order）は変わらない。この例では、ウィンドウ６０４、６０６、６０８及び６１０はそれらの表示順序又はＺオーダーに従って番号が付されている。もし全てのウィンドウが同一の左上座標に位置していたとき、ウィンドウ「１」６０４が一番上となり、ウィンドウ「２」６０６がウィンドウ「１」６０４の下になり、ウィンドウ「３」３０８がウィンドウ「２」の下になり、ウィンドウ「４」６１０が一番下になる。
【００６７】
この例では、構成６００において、アクティブなアプリケーションウィンドウは、ウィンドウ「１」６０である。このウィンドウは、キーボード入力を受けつけるウィンドウとなる。仮想キーボードが有効化（構成６０２）されたとき、ウィンドウ「１」６０４及びウィンドウ「４」６１０は、Ｂ面１０６のスクリーン上で同一の相対座標へと移動される。いくつかのオペレーティングシステムは、アプリケーションを終了することなくスクリーン空間を使えるようにするためのアプリケーションウィンドウの「最小化」と、ウィンドウをその前の状態へと復元させる機能をサポートしていることも注意すべきである。
【００６８】
この例では、もしウィンドウ「４」６１０が、仮想キーボード１０８が有効化される前に最小化され、次に仮想キーボード１０８が有効になっている間に復元されたとき、ウィンドウ「４」６１０はキーボードによって隠される。この方法は、そのような状況に対処するものである。もし、Ｃ面１０６上のウィンドウが最小化され、続いて仮想キーボード１０８が有効化され、ユーザが仮想キーボードが有効である間にウィンドウをアクティブにしたとき、そのウィンドウはＢ面１０４に復元される。
【００６９】
構成６０２は、移動後のウィンドウの位置を表している。ウィンドウ「４」６１０は、ウィンドウ「３」６０８によって隠されているため、もはや見ることができない。ウィンドウ「１」６０４は、アクティブなウィンドウであるため、現在ウィンドウ「２」６０６の上にある。仮想キーボード１０８が隠されたとき、全ての移動されたウィンドウは、それらの元のスクリーン（すなわち、構成６００）へ戻る。もしウィンドウ（例えば、ウィンドウ「１」６０４及び「４」６１０）が、Ｂ面１０４上で移動されていたとき、それらはＣ面１０６上で同じ相対位置へ移動される。
【００７０】
図７は、仮想キーボードを呼び出し、ウィンドウの位置を決めるための例示的な処理７００についてのフローチャートである。処理７００は、デバイス１０２によって実行される実行可能な命令として実装されても良い。手法が示された順序は、制限事項として解釈されることを意図したものではない。示された手法のブロックのいかなる番号も、その手法又は代替の手法を実装するために組み合わせることができる。さらに、個々のブロックは、ここに示された主題の趣旨及び範囲を逸脱せずに、本手法から削除されても良い。さらには、本手法は、本発明の範囲から逸脱せずに、いかなる適切なハードウェア、ソフトウェア、ファームウェア又は組み合わせにおいても実装されてもよい。
【００７１】
手のジェスチャが検出されたかどうかについて、判定が行われる。もし手のジェスチャが検出されなければ、ブロック７０２の「ＮＯ」の分岐にしたがって、手のジェスチャが検出されるまで判定が行われる。もし手のジェスチャが検出されると、ブロック７０２の「ＹＥＳ」の分岐にしたがって、次にブロック７０４が実行される。
【００７２】
ブロック７０４において、指の位置についての計算が行われる。この例では、指は中指である。しかし、他の指（すなわち、人差し指）が使われても良い。具体的には、中指の「Ｙ」位置が検出される。
【００７３】
第二の手のジェスチャが検出されると、判定が行われる。もし第二の手のジェスチャが検出されると、ブロック７の「ＹＥＳ」の分岐にしたがって、ブロック７０８が実行される。
【００７４】
ブロック７０８において、第一の手のジェスチャの指のＹ位置と第二の手のジェスチャの指のＹ位置との平均値が求められる。
【００７５】
第二の手のジェスチャが認識されなければ、ブロック７０６の「ＮＯ」の分岐にしたがって、あるいはブロック７０８の実行の後、ブロック７１０が実行される。
【００７６】
ブロック７１０において、一つの手のジェスチャ又は二つの手のジェスチャのＹ位置の平均のいずれかのＹ位置に、ホーム列（すなわち、「Ｊ」及び「Ｋ」を含む列）とともに無効化された仮想キーボード（例えば、仮想キーボード１０８）が表示される。
【００７７】
ブロック７１２において、仮想キーボードが起動される（呼び出される）とき、一つの面上、言い換えればＣ面上で動作しているウィンドウ又はアプリケーションは、他の面、言い換えればＢ面へと移動させられる。
【００７８】
もしユーザの手がスクリーンから離れると、判定が行われる。もし手がスクリーンから離れていないと判定されると、ブロック７１４の「ＮＯ」の分岐にしたがって、ブロック７０４が実行される。もし手がスクリーンから離れていると判定されると、ブロック７１４の「ＹＥＳ」の分岐にしたがって、ブロック７１６が実行される。
【００７９】
ブロック７１６において、仮想キーボード（例えば仮想キーボード１０８）の有効化が実行され、仮想キーボードへのタッチとキーストロークが可能になり、受け入れられる。
【００８０】
規定のタイムアウト期間の経過後にユーザがスクリーンから手を離したかどうか、もしくは、スリープに入るか仮想キーボードを無効化させるキーボードジェスチャ（例えば、「スウィープ」ジェスチャ）が実行されたかどうかについて、判定がなされる。もしそのようなタイムアウト又はジェスチャが判定されなかったとき、ブロック７１８の「ＮＯ」の分岐にしたがって、ブロック７１６が実行され続ける。もしそのような判定がなされれば、ブロック７１６の「ＹＥＳ」の分岐にしたがって、ブロック７２０が実行される。
【００８１】
ブロック７２０において、「リターンリスト」に基づいて全てのウィンドウとアプリケーションの配置又は移動が実行される。具体的には、仮想キーボードが起動され（呼び出され）るより前にＣ面にあったウィンドウ又はアプリケーションは、Ｃ面の前の位置へと戻される。
【００８２】
ここで提示された図及び他のフロー図に関しては例示された方法の詳細が示されているが、環境次第で、図に表されたいくつかの振る舞いは説明された順に実行される必要はなく、かつ、修正されてもよく、かつ／又は丸ごと除外されてもよいことが理解されるべきである。
【００８３】
このアプリケーションにおいて説明されたように、モジュール及びエンジンは、ソフトウェア、ハードウェア、ファームウェア又はそれらの組み合わせを用いて実装されても良い。さらに、説明された振る舞い及び方法は、一つ以上のコンピュータが読み取り可能なストレージメディア（ＣＲＳＭ）を含むメモリに保存された命令に基づいて、コンピュータ、プロセッサ又は他のコンピューティングデバイスによって実装されても良い。
【００８４】
前記ＣＲＳＭは、保管された命令を実装するためのコンピューティングデバイスによってもアクセス可能な、いかなる利用可能な物理メディアであってもよい。ＣＲＳＭは、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read-Only  Memory）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）、フラッシュメモリ又は他のソリッドステートメモリ技術、ＣＤ−ＲＯＭ（Compact  Disk  Read-Only  Memory）、ＤＶＤ（Digital  Versatile  Disks）又は他の光ディスクストレージ、磁気ディスクストレージ又は他の時期ストレージデバイス又は希望する情報を記録でき、コンピューティングデバイスによってアクセス可能な他のいかなる媒体を含んでよい。
【符号の説明】
【００８５】
１０２  デュアルスクリーンタッチパネルデバイス
１０４  Ｂ面
１０６  Ｃ面
１０８  仮想キーボード
２００  プロセッサ
２０２  オペレーティングシステム
２０４  メモリ
２０６  タッチスクリーンハードウェア
２０８  タッチパネルファームウェア
２１０  接触点認識部
２１２  ジェスチャ認識部
２１６  ダイバータロジック
２２２  オペレーティングシステムヒューマンインターフェースドライバ
２２６  アプリケーションレイヤ
【図１】
2011248888.tif 000003
【図２】
2011248888.tif 000004
【図３】
2011248888.tif 000005
【図４Ａ】
2011248888.tif 000006
【図４Ｂ】
2011248888.tif 000007
【図５】
2011248888.tif 000008
【図６】
2011248888.tif 000009
【図７】
2011248888.tif 000010