(57)【要約】【課題】データ処理システムでフォアグラウンドおよびバックグラウンドでウィンドウを管理する方法、装置、およびコンピュータ命令を提供すること。【解決手段】ポップアップ・ウィンドウをフォアグラウンドで提示する要求の受取に応答して、ユーザ入力についてバッファを監視する。フォアグラウンドのアプリケーションが割込み可能なアプリケーションであるかどうかに関する判定を行う。ポップアップ・ウィンドウは、ユーザ入力が存在せず、識別されたアプリケーションが割込み可能アプリケーションである場合にフォアグラウンドに提示される。
2006521610.tif 000002
【特許請求の範囲】
【請求項１】
フォアグラウンドおよびバックグラウンドでウィンドウを管理する、データ処理システムにおける方法であって、
前記バックグラウンドから前記フォアグラウンドにポップアップ・ウィンドウを移動する要求の受取に応答して、ユーザ入力がバッファに存在するかどうかを判定するステップと、
ユーザ入力が前記バッファに存在する場合に、前記バックグラウンドから前記フォアグラウンドに前記ポップアップ・ウィンドウを移動する前記要求を無視するステップと、
ユーザ入力が前記バッファに存在しない場合に、前記ポップアップを前記バックグラウンドから前記フォアグラウンドに移動するステップと
を含む方法。
【請求項２】
前記ユーザ入力がないことに応答して、識別されたアプリケーションを形成するために前記フォアグラウンドで実行中のアプリケーションを識別するステップと、
前記識別されたアプリケーションが割込み不能アプリケーションであるかどうかを判定するステップと、
前記識別されたアプリケーションが割込み不能アプリケーションである場合に、前記バックグラウンドから前記フォアグラウンドへの前記ポップアップ・ウィンドウの移動をさせないステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記判定するステップは、
前記識別されたアプリケーションを割込み不能アプリケーションのリストと比較するステップと、
前記識別されたアプリケーションが割込み不能アプリケーションの前記リストのアプリケーションと一致する場合に、前記識別されたアプリケーションを割込み不能アプリケーションとして識別するステップと
を含む、請求項２に記載の方法。
【請求項４】
割込み不能アプリケーションの前記リストは、ユーザ生成である、請求項３に記載の方法。
【請求項５】
前記ポップアップ・ウィンドウは、非同期ポップアップ・ウィンドウである、請求項１に記載の方法。
【請求項６】
前記ポップアップ・ウィンドウは、インスタント・メッセンジャ・アプリケーション用である、請求項１に記載の方法。
【請求項７】
前記バッファは、キーボード・バッファおよびマウス入力バッファのうちの少なくとも１つである、請求項１に記載の方法。
【請求項８】
ユーザ・アクティビティが前記バッファに存在する場合に、ユーザ選択の時間期間の後に前記判定ステップを再開始すること
をさらに含む、請求項１に記載の方法。
【請求項９】
フォアグラウンドおよびバックグラウンドでウィンドウを管理するデータ処理システムであって、
前記バックグラウンドから前記フォアグラウンドにポップアップ・ウィンドウを移動する要求の受取に応答して、ユーザ入力がバッファに存在するかどうかを判定する監視手段と、
ユーザ入力が前記バッファに存在する場合に、前記バックグラウンドから前記フォアグラウンドに前記ポップアップ・ウィンドウを移動する前記要求を無視する無視手段と、
ユーザ入力が前記バッファに存在しない場合に、前記ポップアップを前記バックグラウンドから前記フォアグラウンドに移動する移動手段と
を含む、データ処理システム。
【請求項１０】
前記ユーザ入力がないことに応答して、識別されたアプリケーションを形成するために前記フォアグラウンドで実行中のアプリケーションを識別する識別手段と、
前記識別されたアプリケーションが割込み不能アプリケーションであるかどうかを判定する判定手段と、
前記識別されたアプリケーションが割込み不能アプリケーションである場合に、前記バックグラウンドから前記フォアグラウンドへの前記ポップアップ・ウィンドウの移動をさせない防止手段と
をさらに含む、請求項９に記載のデータ処理システム。
【請求項１１】
前記判定手段は、
前記識別されたアプリケーションを割込み不能アプリケーションのリストと比較する比較手段と、
前記識別されたアプリケーションが割込み不能アプリケーションの前記リストのアプリケーションと一致する場合に、前記識別されたアプリケーションを割込み不能アプリケーションとして識別する識別手段と
を含む、請求項１０に記載のデータ処理システム。
【請求項１２】
割込み不能アプリケーションの前記リストは、ユーザ生成である、請求項１１に記載のデータ処理システム。
【請求項１３】
前記ポップアップ・ウィンドウは、非同期ポップアップ・ウィンドウである、請求項９に記載のデータ処理システム。
【請求項１４】
前記ポップアップ・ウィンドウは、インスタント・メッセンジャ・アプリケーション用である、請求項９に記載のデータ処理システム。
【請求項１５】
前記バッファは、キーボード・バッファおよびマウス入力バッファのうちの少なくとも１つである、請求項９に記載のデータ処理システム。
【請求項１６】
コンピュータに請求項１ないし８のいずれか一項に記載のステップを実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、改善されたデータ処理システムに関し、具体的には、データ処理システムでウィンドウを管理する方法、装置、およびコンピュータ命令に関する。より具体的には、本発明は、バックグラウンド・モードとフォアグラウンド・モードの間でのウィンドウの移動を管理する方法、装置、およびコンピュータ命令に関する。
【背景技術】
【０００２】
インスタント・メッセージングは、オンライン・チャット媒体であり、ユーザがネットワーク・データ処理システムを介してリアルタイムで互いに通信し、共同作業することを可能にする。インスタント・メッセージングは、一般に、インターネットを介して使用される。インスタント・メッセージング・アプリケーションは、お互いをオンライン連絡先として確立したユーザの状況を監視し、報告する。この情報は、通常、ウィンドウ内でユーザに提示される。インスタント・メッセージング・アプリケーションは、しばしば、仕事を行うユーザによっても使用される。インスタント・メッセージングを使用することによって、ビジネス・ユーザが、お互いが求めに応じられるかどうかを見ることができ、望まれる連絡先が求めに応じられるようになった時に同僚または顧客とテキスト会話を開始することができる。
【０００３】
通常、インスタント・メッセージング・アプリケーションを用いると、ユーザ間の通信は、通信が望まれる人の名前をユーザが選択することによって開始される。次に、ユーザは、ダイアログ・ボックスにメッセージを入力し、「ｓｅｎｄ（送信）」を押す。これらのメッセージは、他方の選択された受信側のコンピュータに即座に表示される。
【０００４】
現在まで、インスタント・メッセージングは、主にホーム・ユーザ用に開発されてきたが、ホーム・ユーザとビジネス・ユーザによって同様に使用されてきた。インスタント・メッセージングを用いると、組織が、この「必要な」テクノロジをビジネス・セッティングで展開し、使用することが可能になる。
【０００５】
インスタント・メッセージングは、有用なツールであるが、ユーザが他の文書を扱っている間にメッセージを有するウィンドウがポップ・アップすることが、気を散らし、いらいらさせる可能性がある。たとえば、ユーザが、ワード・プロセッサ・アプリケーションを使用して文書を入力しつつあり、インスタント・メッセージが受信された場合に、ポップアップ・ウィンドウが、デスクトップのフォーカスを変更する。言い換えると、ワード・プロセッシング文書が、フォアグラウンドからバックグラウンドに移動すると同時に、ポップアップ・ウィンドウがフォアグラウンドに移動する。ユーザが情報をタイプしている場合に、この入力が、しばしば、文書ではなくポップアップ・ウィンドウにリダイレクトされる。現在、ユーザは、「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ（邪魔をしないで）」または「ａｗａｙ（非在席）」プリファレンスをセットして、このタイプの気を散らすことを避けることができる。しかし、この機構は、アクティブ化のためにユーザ対話を必要とする。
【０００６】
さらに、フォーカスのそのような変更は、インスタント・メッセージング・アプリケーションの異なる連絡先を表す異なるポップアップ・ウィンドウについても発生する場合がある。その結果、ユーザが、不正なメッセージをタイプし、意図されない連絡先に送信する場合がある。「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ」または「ａｗａｙ」プリファレンスの使用は、非効率的である。というのは、ユーザが連絡先へのメッセージの送信を開始したならば、この状況が変更され、もはや、ポップアップ・ウィンドウをフォアグラウンドに提示することが防止されなくなるからである。フォーカスの変更は、他のウィンドウイング・アプリケーションに関しても発生し得る。したがって、フォーカスの変更は、ウィンドウをフォアグラウンドに押しやるすべてのアプリケーションについて発生する可能性がある。その結果、類似する問題が、インスタント・メッセージング・アプリケーションに加えて、他のウィンドウイング・アプリケーションから生じる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、データ処理システムでポップアップ・ウィンドウなどのウィンドウを管理する改善された方法、装置、およびコンピュータ命令を有することが有利である。
【課題を解決するための手段】
【０００８】
本発明は、データ処理システムでフォアグラウンドおよびバックグラウンドでウィンドウを管理する方法、装置、およびコンピュータ命令を提供する。ポップアップ・ウィンドウをフォアグラウンドで提示する要求の受取に応答して、ユーザ入力についてバッファを監視する。フォアグラウンドのアプリケーションが割込み可能なアプリケーションであるかどうかに関する判定を行う。ポップアップ・ウィンドウは、ユーザ入力が存在せず、識別されたアプリケーションが割込み可能アプリケーションである場合にフォアグラウンドに提示される。
【０００９】
本発明を、これから、添付図面を参照して、例としてのみ説明する。
【発明を実施するための最良の形態】
【００１０】
ここで図面、具体的には図１を参照すると、本発明の好ましい実施形態に従って本発明を実施できるデータ処理システムの絵図が示されている。コンピュータ１００が示されており、これには、システム・ユニット１０２、ビデオ・ディスプレイ端末１０４、キーボード１０６、フロップ・ドライブおよび他のタイプの永久記憶媒体およびリムーバブル記憶媒体を含むストレージ・デバイス１０８、およびマウス１１０が含まれる。たとえば、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロホン、および類似物などの追加の入力デバイスを、パーソナル・コンピュータ１００に含めることができる。コンピュータ１００は、米国ニューヨーク州アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ社の製品であるＩＢＭ  ｅＳｅｒｖｅｒコンピュータまたはＩｎｔｅｌｌｉＳｔａｔｉｏｎコンピュータなどの適当なコンピュータを使用して実施することができる（ＩｎｔｅｌｌｉＳｔａｔｉｏｎはＩＢＭ  Ｃｏｒｐ社の商標である）。図示の表現に、コンピュータが示されているが、本発明の他の実施形態を、ネットワーク・コンピュータなど、他のタイプのデータ処理システムで実施することができる。コンピュータ１００に、コンピュータ１００内で動作するコンピュータ可読媒体に存在するシステム・ソフトウェアによって実施できるグラフィカル・ユーザ・インターフェース（ＧＵＩ）が含まれることも好ましい。
【００１１】
図２を参照すると、本発明を実施できるデータ処理システムのブロック図が示されている。データ処理システム２００は、図１のコンピュータ１００など、本発明の処理を実施するコードまたは命令を配置できるコンピュータの例である。データ処理システム２００は、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）ローカル・バス・アーキテクチャを使用している。図示の例ではＰＣＩバスが使用されているが、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）およびＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などの他のバス・アーキテクチャを使用することができる。プロセッサ２０２およびメイン・メモリ２０４が、ＰＣＩブリッジ２０８を介してＰＣＩローカル・バス２０６に接続される。ＰＣＩブリッジ２０８には、プロセッサ２０２用の統合メモリ・コントローラおよびキャッシュ・メモリも含めることができる。ＰＣＩローカル・バス２０６への追加接続は、直接構成要素相互接続を介してまたはアドイン・ボードを介して行うことができる。図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１０、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）ホスト・バス・アダプタ２１２、および拡張バス・インターフェース２１４が、直接構成要素接続によってＰＣＩローカル・バス２０６に接続されている。対照的に、オーディオ・アダプタ２１６、グラフィックス・アダプタ２１８、およびオーディオ／ビデオ・アダプタ２１９は、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス２０６に接続されている。拡張バス・インターフェース２１４は、キーボードおよびマウス・アダプタ２２０、モデム２２２、および追加メモリ２２４に接続を提供する。ＳＣＳＩホスト・バス・アダプタ２１２は、ハード・ディスク・ドライブ２２６、テープ・ドライブ２２８、およびＣＤ−ＲＯＭドライブ２３０に接続を提供する。
【００１２】
オペレーティング・システムが、プロセッサ２０２で稼動し、図２のデータ処理システム２００内のさまざまな構成要素の調整およびその制御の提供に使用される。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社から入手できるＷｉｎｄｏｗｓ（Ｒ）ＸＰなどの市販オペレーティング・システムとすることができる（Ｗｉｎｄｏｗｓ（Ｒ）はＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ社の商標である）。Ｊａｖａ（Ｒ）などのオブジェクト指向プログラミング・システムが、オペレーティング・システムとあいまって稼動し、データ処理システム２００で実行されるＪａｖａ（Ｒ）プログラムまたはＪａｖａ（Ｒ）アプリケーションからオペレーティング・システムへの呼出を提供することができる（「Ｊａｖａ（Ｒ）」は、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ社の商標である）。オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令は、ハード・ディスク・ドライブ２２６などのストレージ・デバイスに置かれ、プロセッサ２０２による実行のためにメイン・メモリ２０４にロードすることができる。
【００１３】
当業者は、図２のハードウェアを、実施形態に応じて変更できることを諒解するであろう。フラッシュ読取専用メモリ（ＲＯＭ）、同等の不揮発性メモリ、または光学ディスク・ドライブおよび類似物などの他の内部ハードウェアまたは周辺デバイスを、図２に示されたハードウェアに加えてまたはその代わりに使用することができる。また、本発明の処理を、マルチプロセッサ・データ処理システムに適用することができる。
【００１４】
たとえば、任意選択としてネットワーク・コンピュータとして構成される場合に、データ処理システム２００に、ＳＣＳＩホスト・バス・アダプタ２１２、ハード・ディスク・ドライブ２２６、テープ・ドライブ２２８、およびＣＤ−ＲＯＭ２３０を含めないことができる。その場合に、正しくはクライアント・コンピュータと呼ばれるコンピュータに、ＬＡＮアダプタ２１０、モデム２２２、または類似物など、あるタイプのネットワーク通信インターフェースが含まれる。もう１つの例として、データ処理システム２００は、データ処理システム２００にあるタイプのネットワーク通信インターフェースが含まれるか否かにかかわりなく、あるタイプのネットワーク通信インターフェースに頼らずにブート可能になるように構成された独立型システムとすることができる。もう１つの例として、データ処理システム２００を、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方の保管のための不揮発性メモリを提供するためにＲＯＭまたはフラッシュＲＯＭあるいはその両方を用いて構成された携帯情報端末（ＰＤＡ）とすることができる。
【００１５】
図２に示された例および上で説明した例は、アーキテクチャ的制限を暗示することを意図されたものではない。たとえば、データ処理システム２００は、ＰＤＡの形をとることの他に、ノートブック・コンピュータまたはハンド・ヘルド・コンピュータとすることもできる。データ処理システム２００を、キオスクまたはウェブ・アプライアンスとすることもできる。
【００１６】
本発明の処理は、コンピュータ実施された命令を使用してプロセッサ２０２によって実行され、このコンピュータ実施された命令は、たとえばメイン・メモリ２０４、メモリ２２４、または１つもしくは複数の周辺デバイス２２６〜２３０などのメモリに置くことができる。
【００１７】
本発明は、データ処理システムでウィンドウを管理する方法、装置、およびコンピュータ命令を提供する。具体的に言うと、本発明の機構は、キーボード・バッファまたは他のデバイス用の入力バッファなどのバッファ・システム内でユーザ入力について監視する。この監視は、ウィンドウをバックグラウンドからフォアグラウンドに移動する要求またはウィンドウをフォアグラウンドで提示する要求に応答して開始される。ユーザが、アクティブに情報を入力している場合に、このユーザ入力が、監視されている１つまたは複数のバッファ内でアクティビティまたは入力データとして現れる。アクティビティが存在しない場合に、ウィンドウをフォアグラウンドに移動するか、フォアグラウンドで提示することができる。アクティビティが存在する場合に、ウィンドウをフォアグラウンドに移動する要求が、無視される。そのウィンドウは、後の時点で、アクティビティがもはや存在しなくなった時にフォアグラウンドに移動することができる。
【００１８】
さらに、本発明の機構は、アプリケーションのリストも検査して、フォアグラウンドのアプリケーションが、割り込むかバックグラウンド・モードに移動することのできるアプリケーションであるかどうかを調べる。この例では、アクティビティまたはユーザ入力がバッファ・システムに存在しないかどうかの検査を行う。アクティビティがバッファ・システムに存在せず、アプリケーションに割り込むことができない場合には、ウィンドウは、フォアグラウンドに移動されない。そのウィンドウは、後の時点で、アクティビティがバッファ・システムに存在せず、フォアグラウンドのアプリケーションに割り込むことができる時にフォアグラウンドに移動することができる。これらの機構は、大量のアクティビティが、ポップアップ・ウィンドウなど、異なる時にフォアグラウンドに移動される多数のウィンドウをもたらす可能性があるインスタント・メッセージング・アプリケーションなどのアプリケーションに特に有用である。
【００１９】
この形で、本発明の機構は、ユーザによって選択されていない可能性があるウィンドウをフォアグラウンドに移動する要求に基づくフォーカスへの割込みを回避する形を提供する。この機構は、インスタント・メッセージング・アプリケーションに関して使用可能な、現在使用可能な「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ」または「ａｗａｙ」機構に対する利益を提供する。
【００２０】
次に、図３を参照すると、本発明の好ましい実施形態による、ウィンドウを管理するのに使用される構成要素を示す図が示されている。この図に示された異なる構成要素は、図２のデータ処理システム２００などのデータ処理システムで実行されているものとすることができる。
【００２１】
この例では、オペレーティング・システム３００が、アプリケーション３０２、アプリケーション３０４、およびインスタント・メッセンジャ・アプリケーション３０６の実行を制御する。この例では、アプリケーション３０２などの１つのアプリケーションが、フォアグラウンドで実行され、アプリケーション３０４およびアプリケーション３０６などの他のアプリケーションが、バックグラウンドで実行される。フォアグラウンドで実行されるアプリケーションとは、そのアプリケーションのウィンドウが可視であり、現在作業または命令を実行しているアプリケーションである。そのようなアプリケーションは、フォーカスがある可能性があるアプリケーションでもある。言い換えると、アプリケーションは、現在のキーボード入力を受け入れている場合にフォーカスがある。バックグラウンドで実行されるアプリケーションとは、そのウィンドウが現在可視でなく、フォーカスがないアプリケーションである。図からわかるように、ウィンドウ３０８は、アプリケーション３０２に関連し、ウィンドウ３１０は、アプリケーション３０４に関連し、ウィンドウ３１２は、インスタント・メッセンジャ・アプリケーション３０６に関連する。ウィンドウ３１２は、この例ではポップアップ・ウィンドウである。メッセージ３１４などのメッセージが、インスタント・メッセンジャ・アプリケーション３０６によって受信された場合に、ウィンドウ３１２をフォアグラウンドに移動するために、要求がインスタント・メッセンジャ・アプリケーション３０６によってオペレーティング・システム３００に送られ、これによって、ウィンドウ３０８がバックグラウンドに移動される結果になる。この要求は、オペレーティング・システム３００による処理のために要求キュー３１６に置かれる。
【００２２】
この例では、オペレーティング・システム３００に、バッファ・システム３１８でのユーザ入力アクティビティを監視する処理または機構が含まれる。前に示したように、バッファ・システム３１８に、１つまたは複数のバッファを含めることができる。これらのバッファは、たとえば、キーボード・バッファ、音声入力バッファ、ｍｉｄｉキーボード・バッファ、またはマウス入力バッファとすることができる。
【００２３】
アクティビティが検出されない場合に、本発明の機構は、ウィンドウ３１２をフォアグラウンドに移動することができる。この例では、この機構は、追加の検査を実行する。この検査では、フォアグラウンドのウィンドウに関連するアプリケーションすなわちアプリケーション３０２が、識別され、アプリケーション・リスト３２０などのアプリケーションのリストと比較される。このリストには、割込み不能と指定されたアプリケーションまたは優先順位を与えられなければならないアプリケーションの識別が含まれる。アプリケーション３０２が、アプリケーション・リスト３２０に含まれることがわかった場合には、ウィンドウ３１２は、フォアグラウンドに移動されない。その代わりに、後の時間期間にもう一度検査を行って、ユーザ入力がバッファ・システム３１８に存在するかどうかと、フォアグラウンドのアプリケーションがアプリケーション・リスト３２０に存在するかどうかを判定する。どちらもが存在しない場合に、ウィンドウ３１２をフォアグラウンドに移動することができる。
【００２４】
この例では、アプリケーション・リスト３２０が、ユーザによって生成される。ユーザは、稼動時に邪魔されてはならないアプリケーションを識別するためのフィルタとして使用するために、リスト３２０でアプリケーション・タイトルをセットまたはセット解除することができる。そのような特徴は、全画面アプリケーションなどのアプリケーションに有用である。いくつかの場合に、これらのタイプのアプリケーションが、フォアグラウンドとバックグラウンドの間のスワップから回復できない場合がある。また、この例では、ユーザが、ウィンドウをバックグラウンドからフォアグラウンドに移動することを可能にする前に、バッファ・システムが不在ユーザ入力またはアクティビティを含むことをユーザが望む時間の長さを示すためにタイマを選択またはセットすることもできる。また、この例では、ウィンドウを管理する処理を、オペレーティング・システム３００内で実施することができる。本発明の機構のためのこれらの処理は、特定の実施形態に応じて、他の構成要素に置くことができる。たとえば、この処理を、インスタント・メッセンジャ・アプリケーション３０６内で実施することができる。
【００２５】
次に図４に移ると、本発明の好ましい実施形態による、ウィンドウをフォアグラウンドに移動する要求を処理する処理の流れ図が示されている。この処理は、ウィンドウをフォアグラウンドに移動するアプリケーション要求を受け取ることによって開始される（ステップ４００）。このフォアグラウンド要求は、図３の要求キュー３１６などのキューにプッシュされ（ステップ４０２）、その後、この処理が終了する。
【００２６】
次に図５を参照すると、本発明の好ましい実施形態による、ウィンドウを処理する処理の流れ図が示されている。図５に示された処理は、図３のオペレーティング・システム３００などのソフトウェア構成要素で実施することができる。
【００２７】
この処理は、フォアグラウンド要求が受け取られたかどうかを判定することによって開始される（ステップ５００）。このステップは、図３の要求キュー３１６などの要求キューを検査することによって実行することができる。要求が存在しない場合に、この処理は、キューのフォアグラウンド要求を待ち（ステップ５０２）、その後、この処理はステップ５００に戻る。要求がキューで検出された時には、イベントをキューからポップする（ステップ５０４）。言い換えると、キューの最上部にあるイベントを、処理のために選択する。
【００２８】
現在実行中のアプリケーションが、図３のアプリケーション・リスト３２０などのリストにあるかどうかに関する判定を行う（ステップ５０６）。このステップは、アプリケーション・アクティビティ検査を実行する処理を呼び出すことによって実行することができる。下で説明する、図６に示された処理が、ステップ５０６のより詳細な説明である。アプリケーションがリストにある場合には、この処理は、アプリケーションの切り替えを待つ（ステップ５０８）。トリガ式アプリケーションの場合に、そのようなアプリケーションは、アプリケーションがもはやビジーでない時を要求キューに知らせるか示すことができる。トリガ式アプリケーションとは、アプリケーションをフォアグラウンドからバックグラウンドに移動できるかどうかなど、要求を受け取ることができるアプリケーションである。その場合に、アプリケーションは、それがビジーであり、移動できないかどうか、または移動できるかどうかを示す。その後、この処理は、上で説明したステップ５０６に戻る。
【００２９】
ステップ５０６で、現在実行中のアプリケーションがリストにない場合に、アクティブ・ユーザ入力が存在するかどうかに関する判定を行う（ステップ５１２）。ユーザ入力は、バッファ・システム３１８などのバッファ・システムを検査することによって検出することができる。前に述べたように、このバッファ・システムに、異なるタイプのユーザ入力用の１つまたは複数のバッファを含めることができる。この例では、バッファ・システムの検査が、下で図７で説明するものなどの処理を介してセットされた変数を検査することによって行われる。
【００３０】
アクティブ・ユーザ入力が存在する場合に、この処理は、入力が停止するのを待つ（ステップ５１４）。ユーザは、入力が停止する前にバッファ・システムにユーザ入力の不在が存在しなければならない時間の長さを示すアクティビティ・タイマを選択することができる。入力が停止した時に、この処理は、ステップ５０６に戻って、上で説明した形で、アプリケーション・リストを用いて現在実行中のアプリケーションを検査する。
【００３１】
ステップ５１２をもう一度参照すると、アクティブ・ユーザ入力が存在しない場合に、この処理は、フォアグラウンド・ウィンドウを開き（ステップ５１０）、その後、この処理は、上で説明したステップ５００に戻る。これによって、新しいウィンドウが開かれるか、アプリケーションのウィンドウがバックグラウンドからフォアグラウンドに移動される。
【００３２】
次に図６に移ると、本発明の好ましい実施形態による、アプリケーション・アクティビティ検査を実行する処理の流れ図が示されている。図６に示された処理は、図５のステップ５０６のより詳細な説明である。
【００３３】
この処理は、ユーザ「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ」リストを検査して、現在実行中のアプリケーションがこのリストにあるかどうかを判定することによって開始される（ステップ６００）。このリストは、図３のアプリケーション・リスト３２０などのリストである。アプリケーションがこのリストにある場合には、ビジー表示を返し（ステップ６０２）、その後、この処理は終了する。
【００３４】
ステップ６００をもう一度参照すると、アプリケーションがリストにない場合に、さらなる検査を実行して、アプリケーションがトリガ式であるかどうかを判定する（ステップ６０４）。言い換えると、このステップは、フォアグラウンドのアプリケーションが、アプリケーションによる現在のアクティビティに関する要求を行うことを可能にするためにトリガ式であるかどうかを調べるためにテストする。一部のアプリケーションは、それをフォアグラウンドからバックグラウンドに移動できるかどうかに関する質問または要求を受け取ることができる。
【００３５】
アプリケーションがトリガ式である場合に、要求をアプリケーションに送る（ステップ６０６）。応答が受け取られ、ビジー表示またはノット・ビジー表示が、応答に応じて返され（ステップ６０８）、この処理は、その後終了する。ステップ６０４をもう一度参照すると、アプリケーションがトリガ式でない場合に、ノット・ビジー表示を返す（ステップ６１０）。
【００３６】
次に図７を参照すると、本発明の好ましい実施形態による、ユーザ入力を監視するのに使用される処理の流れ図が示されている。図７に示された処理は、図３のオペレーティング・システム３００などのソフトウェア構成要素で実施することができる。この例では、この処理が、図５のステップ５１２によって検査される変数を更新するために継続的に実行されるバックグラウンド処理である。
【００３７】
この処理は、ユーザ入力の通知を受け取るためにオペレーティング・システムのフラグをセットすることによって開始される（ステップ７００）。次に、ユーザがデータを入力しているかどうかに関する判定を行う（ステップ７０２）。このステップには、図３のバッファ・システム３１８などのバッファ・システムの監視が含まれる。
【００３８】
ユーザがデータを入力している場合に、変数に、現在ビジーをセットする（ステップ７０４）。次に、この処理は、ユーザ定義のタイムアウトが発生するのを待つ（ステップ７０６）。この処理は、タイムアウトが発生した後に、ステップ７０２に戻る。
【００３９】
ステップ７０２に戻って、ユーザがデータを入力していない場合に、この処理は、変数にノット・ビジーをセットし（ステップ７０８）、ユーザ入力が検出されるのを待つ（ステップ７１０）。この処理は、ユーザ入力が検出された後に、ステップ７１０からステップ７０４に進む。
【００４０】
したがって、この処理は、データ処理システムでウィンドウを管理する改善された方法、装置、およびコンピュータ命令を提供する。この機構は、ウィンドウをバックグラウンドからフォアグラウンドに移動できるシステムまたはウィンドウをフォアグラウンドで提示できるシステムに適用することができる。この機構は、バッファ・システム内のユーザ入力を監視すると同時に、現在実行中のアプリケーションを検査して、このアプリケーションに割り込むか、このアプリケーションをバックグラウンドに移動することができるかどうかを調べる。
【００４１】
この形で、本発明の機構は、ユーザのフォーカスを現在のタスクからシフトすることを避け、アプリケーションがそのようなシフトから回復できない可能性がある時にそのようなアプリケーションをフォアグラウンドからバックグラウンドに移動することを避ける。この機構は、インスタント・メッセンジャ・アプリケーションに使用されるものなどの非同期ポップアップ・ウィンドウに特に有用である。
【００４２】
本発明を、完全に機能するデータ処理システムに関して説明したが、本発明の処理を、命令のコンピュータ可読媒体の形およびさまざまな形で配布することができることと、本発明が、配布の実行に実際に使用される信号担持媒体の特定のタイプに関わりなく同等に適用されることを当業者が諒解するであろうことに留意することが重要である。コンピュータ可読媒体の例に、フロッピ・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能型媒体と、ディジタル通信リンク、アナログ通信リンク、たとえばラジオ周波数伝送および光波伝送などの伝送形式を使用する有線通信リンクまたは無線通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムでの実際の使用のために復号されるコード化されたフォーマットの形をとることができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の好ましい実施形態による、本発明を実施できるデータ処理システムを示す絵図である。
【図２】本発明を実施できる、図１のデータ処理システムを示すブロック図である。
【図３】本発明の好ましい実施形態による、ウィンドウを管理するのに使用される構成要素を示す図である。
【図４】本発明の好ましい実施形態による、ウィンドウをフォアグラウンドに移動する要求を処理する処理を示す流れ図である。
【図５】本発明の好ましい実施形態による、ウィンドウを処理する処理を示す流れ図である。
【図６】本発明の好ましい実施形態による、アプリケーション・アクティビティ検査を実行する処理を示す流れ図である。
【図７】本発明の好ましい実施形態による、ユーザ入力を監視するのに使用される処理を示す流れ図である。
【図１】
2006521610.tif 000003
【図２】
2006521610.tif 000004
【図３】
2006521610.tif 000005
【図４】
2006521610.tif 000006
【図５】
2006521610.tif 000007
【図６】
2006521610.tif 000008
【図７】
2006521610.tif 000009
【手続補正書】
【提出日】平成17年2月2日(2005.2.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、改善されたデータ処理システムに関し、具体的には、データ処理システムでウィンドウを管理する方法、装置、およびコンピュータ命令に関する。より具体的には、本発明は、バックグラウンド・モードとフォアグラウンド・モードの間でのウィンドウの移動を管理する方法、装置、およびコンピュータ命令に関する。
【背景技術】
【０００２】
インスタント・メッセージングは、オンライン・チャット媒体であり、ユーザがネットワーク・データ処理システムを介してリアルタイムで互いに通信し、共同作業することを可能にする。インスタント・メッセージングは、一般に、インターネットを介して使用される。インスタント・メッセージング・アプリケーションは、お互いをオンライン連絡先として確立したユーザの状況を監視し、報告する。この情報は、通常、ウィンドウ内でユーザに提示される。インスタント・メッセージング・アプリケーションは、しばしば、仕事を行うユーザによっても使用される。インスタント・メッセージングを使用することによって、ビジネス・ユーザが、お互いが求めに応じられるかどうかを見ることができ、望まれる連絡先が求めに応じられるようになった時に同僚または顧客とテキスト会話を開始することができる。
【０００３】
通常、インスタント・メッセージング・アプリケーションを用いると、ユーザ間の通信は、通信が望まれる人の名前をユーザが選択することによって開始される。次に、ユーザは、ダイアログ・ボックスにメッセージを入力し、「ｓｅｎｄ（送信）」を押す。これらのメッセージは、他方の選択された受信側のコンピュータに即座に表示される。
【０００４】
現在まで、インスタント・メッセージングは、主にホーム・ユーザ用に開発されてきたが、ホーム・ユーザとビジネス・ユーザによって同様に使用されてきた。インスタント・メッセージングを用いると、組織が、この「必要な」テクノロジをビジネス・セッティングで展開し、使用することが可能になる。
【０００５】
インスタント・メッセージングは、有用なツールであるが、ユーザが他の文書を扱っている間にメッセージを有するウィンドウがポップ・アップすることが、気を散らし、いらいらさせる可能性がある。たとえば、ユーザが、ワード・プロセッサ・アプリケーションを使用して文書を入力しつつあり、インスタント・メッセージが受信された場合に、ポップアップ・ウィンドウが、デスクトップのフォーカスを変更する。言い換えると、ワード・プロセッシング文書が、フォアグラウンドからバックグラウンドに移動すると同時に、ポップアップ・ウィンドウがフォアグラウンドに移動する。ユーザが情報をタイプしている場合に、この入力が、しばしば、文書ではなくポップアップ・ウィンドウにリダイレクトされる。現在、ユーザは、「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ（邪魔をしないで）」または「ａｗａｙ（非在席）」プリファレンスをセットして、このタイプの気を散らすことを避けることができる。しかし、この機構は、アクティブ化のためにユーザ対話を必要とする。
【０００６】
さらに、フォーカスのそのような変更は、インスタント・メッセージング・アプリケーションの異なる連絡先を表す異なるポップアップ・ウィンドウについても発生する場合がある。その結果、ユーザが、不正なメッセージをタイプし、意図されない連絡先に送信する場合がある。「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ」または「ａｗａｙ」プリファレンスの使用は、非効率的である。というのは、ユーザが連絡先へのメッセージの送信を開始したならば、この状況が変更され、もはや、ポップアップ・ウィンドウをフォアグラウンドに提示することが防止されなくなるからである。フォーカスの変更は、他のウィンドウイング・アプリケーションに関しても発生し得る。したがって、フォーカスの変更は、ウィンドウをフォアグラウンドに押しやるすべてのアプリケーションについて発生する可能性がある。その結果、類似する問題が、インスタント・メッセージング・アプリケーションに加えて、他のウィンドウイング・アプリケーションから生じる場合がある。
【０００７】
米国特許第５７２１８４９号に、コンピュータ・ディスプレイに表示される新たにオープンされたウィンドウへのフォーカスの転送の延期が開示されている。フォーカスが新しいウィンドウに転送されようとしている時に入力バッファがキーストロークを受け取りつつある間に、新しいウィンドウへのフォーカスのシフトが延期される。
【０００８】
全画面アプリケーションなどの一部のアプリケーションは、フォアグラウンドとバックグラウンドの間のスワップから回復できない場合がある。これらのアプリケーションは、稼動中に邪魔されてはならない。フォーカスのスワップの延期は、不十分である。
【特許文献１】米国特許第５７２１８４９号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、データ処理システムでポップアップ・ウィンドウなどのウィンドウを管理する改善された方法、装置、およびコンピュータ命令を有することが有利である。
【課題を解決するための手段】
【００１０】
本発明は、データ処理システムでフォアグラウンドおよびバックグラウンドでウィンドウを管理する方法、装置、およびコンピュータ命令を提供する。ポップアップ・ウィンドウをフォアグラウンドで提示する要求の受取に応答して、ユーザ入力についてバッファを監視する。フォアグラウンドのアプリケーションが割込み可能なアプリケーションであるかどうかに関する判定を行う。ポップアップ・ウィンドウは、ユーザ入力が存在せず、識別されたアプリケーションが割込み可能アプリケーションである場合にフォアグラウンドに提示される。
【００１１】
本発明を、これから、添付図面を参照して、例としてのみ説明する。
【発明を実施するための最良の形態】
【００１２】
ここで図面、具体的には図１を参照すると、本発明の好ましい実施形態に従って本発明を実施できるデータ処理システムの絵図が示されている。コンピュータ１００が示されており、これには、システム・ユニット１０２、ビデオ・ディスプレイ端末１０４、キーボード１０６、フロップ・ドライブおよび他のタイプの永久記憶媒体およびリムーバブル記憶媒体を含むストレージ・デバイス１０８、およびマウス１１０が含まれる。たとえば、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロホン、および類似物などの追加の入力デバイスを、パーソナル・コンピュータ１００に含めることができる。コンピュータ１００は、米国ニューヨーク州アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ社の製品であるＩＢＭ  ｅＳｅｒｖｅｒコンピュータまたはＩｎｔｅｌｌｉＳｔａｔｉｏｎコンピュータなどの適当なコンピュータを使用して実施することができる（ＩｎｔｅｌｌｉＳｔａｔｉｏｎはＩＢＭ  Ｃｏｒｐ社の商標である）。図示の表現に、コンピュータが示されているが、本発明の他の実施形態を、ネットワーク・コンピュータなど、他のタイプのデータ処理システムで実施することができる。コンピュータ１００に、コンピュータ１００内で動作するコンピュータ可読媒体に存在するシステム・ソフトウェアによって実施できるグラフィカル・ユーザ・インターフェース（ＧＵＩ）が含まれることも好ましい。
【００１３】
図２を参照すると、本発明を実施できるデータ処理システムのブロック図が示されている。データ処理システム２００は、図１のコンピュータ１００など、本発明の処理を実施するコードまたは命令を配置できるコンピュータの例である。データ処理システム２００は、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）ローカル・バス・アーキテクチャを使用している。図示の例ではＰＣＩバスが使用されているが、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）およびＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などの他のバス・アーキテクチャを使用することができる。プロセッサ２０２およびメイン・メモリ２０４が、ＰＣＩブリッジ２０８を介してＰＣＩローカル・バス２０６に接続される。ＰＣＩブリッジ２０８には、プロセッサ２０２用の統合メモリ・コントローラおよびキャッシュ・メモリも含めることができる。ＰＣＩローカル・バス２０６への追加接続は、直接構成要素相互接続を介してまたはアドイン・ボードを介して行うことができる。図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１０、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）ホスト・バス・アダプタ２１２、および拡張バス・インターフェース２１４が、直接構成要素接続によってＰＣＩローカル・バス２０６に接続されている。対照的に、オーディオ・アダプタ２１６、グラフィックス・アダプタ２１８、およびオーディオ／ビデオ・アダプタ２１９は、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス２０６に接続されている。拡張バス・インターフェース２１４は、キーボードおよびマウス・アダプタ２２０、モデム２２２、および追加メモリ２２４に接続を提供する。ＳＣＳＩホスト・バス・アダプタ２１２は、ハード・ディスク・ドライブ２２６、テープ・ドライブ２２８、およびＣＤ−ＲＯＭドライブ２３０に接続を提供する。
【００１４】
オペレーティング・システムが、プロセッサ２０２で稼動し、図２のデータ処理システム２００内のさまざまな構成要素の調整およびその制御の提供に使用される。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社から入手できるＷｉｎｄｏｗｓ（Ｒ）ＸＰなどの市販オペレーティング・システムとすることができる（Ｗｉｎｄｏｗｓ（Ｒ）はＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ社の商標である）。Ｊａｖａ（Ｒ）などのオブジェクト指向プログラミング・システムが、オペレーティング・システムとあいまって稼動し、データ処理システム２００で実行されるＪａｖａ（Ｒ）プログラムまたはＪａｖａ（Ｒ）アプリケーションからオペレーティング・システムへの呼出を提供することができる（「Ｊａｖａ（Ｒ）」は、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ社の商標である）。オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令は、ハード・ディスク・ドライブ２２６などのストレージ・デバイスに置かれ、プロセッサ２０２による実行のためにメイン・メモリ２０４にロードすることができる。
【００１５】
当業者は、図２のハードウェアを、実施形態に応じて変更できることを諒解するであろう。フラッシュ読取専用メモリ（ＲＯＭ）、同等の不揮発性メモリ、または光学ディスク・ドライブおよび類似物などの他の内部ハードウェアまたは周辺デバイスを、図２に示されたハードウェアに加えてまたはその代わりに使用することができる。また、本発明の処理を、マルチプロセッサ・データ処理システムに適用することができる。
【００１６】
たとえば、任意選択としてネットワーク・コンピュータとして構成される場合に、データ処理システム２００に、ＳＣＳＩホスト・バス・アダプタ２１２、ハード・ディスク・ドライブ２２６、テープ・ドライブ２２８、およびＣＤ−ＲＯＭ２３０を含めないことができる。その場合に、正しくはクライアント・コンピュータと呼ばれるコンピュータに、ＬＡＮアダプタ２１０、モデム２２２、または類似物など、あるタイプのネットワーク通信インターフェースが含まれる。もう１つの例として、データ処理システム２００は、データ処理システム２００にあるタイプのネットワーク通信インターフェースが含まれるか否かにかかわりなく、あるタイプのネットワーク通信インターフェースに頼らずにブート可能になるように構成された独立型システムとすることができる。もう１つの例として、データ処理システム２００を、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方の保管のための不揮発性メモリを提供するためにＲＯＭまたはフラッシュＲＯＭあるいはその両方を用いて構成された携帯情報端末（ＰＤＡ）とすることができる。
【００１７】
図２に示された例および上で説明した例は、アーキテクチャ的制限を暗示することを意図されたものではない。たとえば、データ処理システム２００は、ＰＤＡの形をとることの他に、ノートブック・コンピュータまたはハンド・ヘルド・コンピュータとすることもできる。データ処理システム２００を、キオスクまたはウェブ・アプライアンスとすることもできる。
【００１８】
本発明の処理は、コンピュータ実施された命令を使用してプロセッサ２０２によって実行され、このコンピュータ実施された命令は、たとえばメイン・メモリ２０４、メモリ２２４、または１つもしくは複数の周辺デバイス２２６〜２３０などのメモリに置くことができる。
【００１９】
本発明は、データ処理システムでウィンドウを管理する方法、装置、およびコンピュータ命令を提供する。具体的に言うと、本発明の機構は、キーボード・バッファまたは他のデバイス用の入力バッファなどのバッファ・システム内でユーザ入力について監視する。この監視は、ウィンドウをバックグラウンドからフォアグラウンドに移動する要求またはウィンドウをフォアグラウンドで提示する要求に応答して開始される。ユーザが、アクティブに情報を入力している場合に、このユーザ入力が、監視されている１つまたは複数のバッファ内でアクティビティまたは入力データとして現れる。アクティビティが存在しない場合に、ウィンドウをフォアグラウンドに移動するか、フォアグラウンドで提示することができる。アクティビティが存在する場合に、ウィンドウをフォアグラウンドに移動する要求が、無視される。そのウィンドウは、後の時点で、アクティビティがもはや存在しなくなった時にフォアグラウンドに移動することができる。
【００２０】
さらに、本発明の機構は、アプリケーションのリストも検査して、フォアグラウンドのアプリケーションが、割り込むかバックグラウンド・モードに移動することのできるアプリケーションであるかどうかを調べる。この例では、アクティビティまたはユーザ入力がバッファ・システムに存在しないかどうかの検査を行う。アクティビティがバッファ・システムに存在せず、アプリケーションに割り込むことができない場合には、ウィンドウは、フォアグラウンドに移動されない。そのウィンドウは、後の時点で、アクティビティがバッファ・システムに存在せず、フォアグラウンドのアプリケーションに割り込むことができる時にフォアグラウンドに移動することができる。これらの機構は、大量のアクティビティが、ポップアップ・ウィンドウなど、異なる時にフォアグラウンドに移動される多数のウィンドウをもたらす可能性があるインスタント・メッセージング・アプリケーションなどのアプリケーションに特に有用である。
【００２１】
この形で、本発明の機構は、ユーザによって選択されていない可能性があるウィンドウをフォアグラウンドに移動する要求に基づくフォーカスへの割込みを回避する形を提供する。この機構は、インスタント・メッセージング・アプリケーションに関して使用可能な、現在使用可能な「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ」または「ａｗａｙ」機構に対する利益を提供する。
【００２２】
次に、図３を参照すると、本発明の好ましい実施形態による、ウィンドウを管理するのに使用される構成要素を示す図が示されている。この図に示された異なる構成要素は、図２のデータ処理システム２００などのデータ処理システムで実行されているものとすることができる。
【００２３】
この例では、オペレーティング・システム３００が、アプリケーション３０２、アプリケーション３０４、およびインスタント・メッセンジャ・アプリケーション３０６の実行を制御する。この例では、アプリケーション３０２などの１つのアプリケーションが、フォアグラウンドで実行され、アプリケーション３０４およびアプリケーション３０６などの他のアプリケーションが、バックグラウンドで実行される。フォアグラウンドで実行されるアプリケーションとは、そのアプリケーションのウィンドウが可視であり、現在作業または命令を実行しているアプリケーションである。そのようなアプリケーションは、フォーカスがある可能性があるアプリケーションでもある。言い換えると、アプリケーションは、現在のキーボード入力を受け入れている場合にフォーカスがある。バックグラウンドで実行されるアプリケーションとは、そのウィンドウが現在可視でなく、フォーカスがないアプリケーションである。図からわかるように、ウィンドウ３０８は、アプリケーション３０２に関連し、ウィンドウ３１０は、アプリケーション３０４に関連し、ウィンドウ３１２は、インスタント・メッセンジャ・アプリケーション３０６に関連する。ウィンドウ３１２は、この例ではポップアップ・ウィンドウである。メッセージ３１４などのメッセージが、インスタント・メッセンジャ・アプリケーション３０６によって受信された場合に、ウィンドウ３１２をフォアグラウンドに移動するために、要求がインスタント・メッセンジャ・アプリケーション３０６によってオペレーティング・システム３００に送られ、これによって、ウィンドウ３０８がバックグラウンドに移動される結果になる。この要求は、オペレーティング・システム３００による処理のために要求キュー３１６に置かれる。
【００２４】
この例では、オペレーティング・システム３００に、バッファ・システム３１８でのユーザ入力アクティビティを監視する処理または機構が含まれる。前に示したように、バッファ・システム３１８に、１つまたは複数のバッファを含めることができる。これらのバッファは、たとえば、キーボード・バッファ、音声入力バッファ、ｍｉｄｉキーボード・バッファ、またはマウス入力バッファとすることができる。
【００２５】
アクティビティが検出されない場合に、本発明の機構は、ウィンドウ３１２をフォアグラウンドに移動することができる。この例では、この機構は、追加の検査を実行する。この検査では、フォアグラウンドのウィンドウに関連するアプリケーションすなわちアプリケーション３０２が、識別され、アプリケーション・リスト３２０などのアプリケーションのリストと比較される。このリストには、割込み不能と指定されたアプリケーションまたは優先順位を与えられなければならないアプリケーションの識別が含まれる。アプリケーション３０２が、アプリケーション・リスト３２０に含まれることがわかった場合には、ウィンドウ３１２は、フォアグラウンドに移動されない。その代わりに、後の時間期間にもう一度検査を行って、ユーザ入力がバッファ・システム３１８に存在するかどうかと、フォアグラウンドのアプリケーションがアプリケーション・リスト３２０に存在するかどうかを判定する。どちらもが存在しない場合に、ウィンドウ３１２をフォアグラウンドに移動することができる。
【００２６】
この例では、アプリケーション・リスト３２０が、ユーザによって生成される。ユーザは、稼動時に邪魔されてはならないアプリケーションを識別するためのフィルタとして使用するために、リスト３２０でアプリケーション・タイトルをセットまたはセット解除することができる。そのような特徴は、全画面アプリケーションなどのアプリケーションに有用である。いくつかの場合に、これらのタイプのアプリケーションが、フォアグラウンドとバックグラウンドの間のスワップから回復できない場合がある。また、この例では、ユーザが、ウィンドウをバックグラウンドからフォアグラウンドに移動することを可能にする前に、バッファ・システムが不在ユーザ入力またはアクティビティを含むことをユーザが望む時間の長さを示すためにタイマを選択またはセットすることもできる。また、この例では、ウィンドウを管理する処理を、オペレーティング・システム３００内で実施することができる。本発明の機構のためのこれらの処理は、特定の実施形態に応じて、他の構成要素に置くことができる。たとえば、この処理を、インスタント・メッセンジャ・アプリケーション３０６内で実施することができる。
【００２７】
次に図４に移ると、本発明の好ましい実施形態による、ウィンドウをフォアグラウンドに移動する要求を処理する処理の流れ図が示されている。この処理は、ウィンドウをフォアグラウンドに移動するアプリケーション要求を受け取ることによって開始される（ステップ４００）。このフォアグラウンド要求は、図３の要求キュー３１６などのキューにプッシュされ（ステップ４０２）、その後、この処理が終了する。
【００２８】
次に図５を参照すると、本発明の好ましい実施形態による、ウィンドウを処理する処理の流れ図が示されている。図５に示された処理は、図３のオペレーティング・システム３００などのソフトウェア構成要素で実施することができる。
【００２９】
この処理は、フォアグラウンド要求が受け取られたかどうかを判定することによって開始される（ステップ５００）。このステップは、図３の要求キュー３１６などの要求キューを検査することによって実行することができる。要求が存在しない場合に、この処理は、キューのフォアグラウンド要求を待ち（ステップ５０２）、その後、この処理はステップ５００に戻る。要求がキューで検出された時には、イベントをキューからポップする（ステップ５０４）。言い換えると、キューの最上部にあるイベントを、処理のために選択する。
【００３０】
現在実行中のアプリケーションが、図３のアプリケーション・リスト３２０などのリストにあるかどうかに関する判定を行う（ステップ５０６）。このステップは、アプリケーション・アクティビティ検査を実行する処理を呼び出すことによって実行することができる。下で説明する、図６に示された処理が、ステップ５０６のより詳細な説明である。アプリケーションがリストにある場合には、この処理は、アプリケーションの切り替えを待つ（ステップ５０８）。トリガ式アプリケーションの場合に、そのようなアプリケーションは、アプリケーションがもはやビジーでない時を要求キューに知らせるか示すことができる。トリガ式アプリケーションとは、アプリケーションをフォアグラウンドからバックグラウンドに移動できるかどうかなど、要求を受け取ることができるアプリケーションである。その場合に、アプリケーションは、それがビジーであり、移動できないかどうか、または移動できるかどうかを示す。その後、この処理は、上で説明したステップ５０６に戻る。
【００３１】
ステップ５０６で、現在実行中のアプリケーションがリストにない場合に、アクティブ・ユーザ入力が存在するかどうかに関する判定を行う（ステップ５１２）。ユーザ入力は、バッファ・システム３１８などのバッファ・システムを検査することによって検出することができる。前に述べたように、このバッファ・システムに、異なるタイプのユーザ入力用の１つまたは複数のバッファを含めることができる。この例では、バッファ・システムの検査が、下で図７で説明するものなどの処理を介してセットされた変数を検査することによって行われる。
【００３２】
アクティブ・ユーザ入力が存在する場合に、この処理は、入力が停止するのを待つ（ステップ５１４）。ユーザは、入力が停止する前にバッファ・システムにユーザ入力の不在が存在しなければならない時間の長さを示すアクティビティ・タイマを選択することができる。入力が停止した時に、この処理は、ステップ５０６に戻って、上で説明した形で、アプリケーション・リストを用いて現在実行中のアプリケーションを検査する。
【００３３】
ステップ５１２をもう一度参照すると、アクティブ・ユーザ入力が存在しない場合に、この処理は、フォアグラウンド・ウィンドウを開き（ステップ５１０）、その後、この処理は、上で説明したステップ５００に戻る。これによって、新しいウィンドウが開かれるか、アプリケーションのウィンドウがバックグラウンドからフォアグラウンドに移動される。
【００３４】
次に図６に移ると、本発明の好ましい実施形態による、アプリケーション・アクティビティ検査を実行する処理の流れ図が示されている。図６に示された処理は、図５のステップ５０６のより詳細な説明である。
【００３５】
この処理は、ユーザ「ｄｏ  ｎｏｔ  ｄｉｓｔｕｒｂ」リストを検査して、現在実行中のアプリケーションがこのリストにあるかどうかを判定することによって開始される（ステップ６００）。このリストは、図３のアプリケーション・リスト３２０などのリストである。アプリケーションがこのリストにある場合には、ビジー表示を返し（ステップ６０２）、その後、この処理は終了する。
【００３６】
ステップ６００をもう一度参照すると、アプリケーションがリストにない場合に、さらなる検査を実行して、アプリケーションがトリガ式であるかどうかを判定する（ステップ６０４）。言い換えると、このステップは、フォアグラウンドのアプリケーションが、アプリケーションによる現在のアクティビティに関する要求を行うことを可能にするためにトリガ式であるかどうかを調べるためにテストする。一部のアプリケーションは、それをフォアグラウンドからバックグラウンドに移動できるかどうかに関する質問または要求を受け取ることができる。
【００３７】
アプリケーションがトリガ式である場合に、要求をアプリケーションに送る（ステップ６０６）。応答が受け取られ、ビジー表示またはノット・ビジー表示が、応答に応じて返され（ステップ６０８）、この処理は、その後終了する。ステップ６０４をもう一度参照すると、アプリケーションがトリガ式でない場合に、ノット・ビジー表示を返す（ステップ６１０）。
【００３８】
次に図７を参照すると、本発明の好ましい実施形態による、ユーザ入力を監視するのに使用される処理の流れ図が示されている。図７に示された処理は、図３のオペレーティング・システム３００などのソフトウェア構成要素で実施することができる。この例では、この処理が、図５のステップ５１２によって検査される変数を更新するために継続的に実行されるバックグラウンド処理である。
【００３９】
この処理は、ユーザ入力の通知を受け取るためにオペレーティング・システムのフラグをセットすることによって開始される（ステップ７００）。次に、ユーザがデータを入力しているかどうかに関する判定を行う（ステップ７０２）。このステップには、図３のバッファ・システム３１８などのバッファ・システムの監視が含まれる。
【００４０】
ユーザがデータを入力している場合に、変数に、現在ビジーをセットする（ステップ７０４）。次に、この処理は、ユーザ定義のタイムアウトが発生するのを待つ（ステップ７０６）。この処理は、タイムアウトが発生した後に、ステップ７０２に戻る。
【００４１】
ステップ７０２に戻って、ユーザがデータを入力していない場合に、この処理は、変数にノット・ビジーをセットし（ステップ７０８）、ユーザ入力が検出されるのを待つ（ステップ７１０）。この処理は、ユーザ入力が検出された後に、ステップ７１０からステップ７０４に進む。
【００４２】
したがって、この処理は、データ処理システムでウィンドウを管理する改善された方法、装置、およびコンピュータ命令を提供する。この機構は、ウィンドウをバックグラウンドからフォアグラウンドに移動できるシステムまたはウィンドウをフォアグラウンドで提示できるシステムに適用することができる。この機構は、バッファ・システム内のユーザ入力を監視すると同時に、現在実行中のアプリケーションを検査して、このアプリケーションに割り込むか、このアプリケーションをバックグラウンドに移動することができるかどうかを調べる。
【００４３】
この形で、本発明の機構は、ユーザのフォーカスを現在のタスクからシフトすることを避け、アプリケーションがそのようなシフトから回復できない可能性がある時にそのようなアプリケーションをフォアグラウンドからバックグラウンドに移動することを避ける。この機構は、インスタント・メッセンジャ・アプリケーションに使用されるものなどの非同期ポップアップ・ウィンドウに特に有用である。
【００４４】
本発明を、完全に機能するデータ処理システムに関して説明したが、本発明の処理を、命令のコンピュータ可読媒体の形およびさまざまな形で配布することができることと、本発明が、配布の実行に実際に使用される信号担持媒体の特定のタイプに関わりなく同等に適用されることを当業者が諒解するであろうことに留意することが重要である。コンピュータ可読媒体の例に、フロッピ・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能型媒体と、ディジタル通信リンク、アナログ通信リンク、たとえばラジオ周波数伝送および光波伝送などの伝送形式を使用する有線通信リンクまたは無線通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムでの実際の使用のために復号されるコード化されたフォーマットの形をとることができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の好ましい実施形態による、本発明を実施できるデータ処理システムを示す絵図である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フォアグラウンドおよびバックグラウンドでウィンドウを管理する、データ処理システムにおける方法であって、
前記バックグラウンドから前記フォアグラウンドにポップアップ・ウィンドウを移動する要求の受取に応答して、ユーザ入力がバッファに存在するかどうかを判定するステップと、
ユーザ入力が前記バッファに存在する場合に、前記バックグラウンドから前記フォアグラウンドに前記ポップアップ・ウィンドウを移動する前記要求を無視するステップと、
ユーザ入力が前記バッファに存在しない場合に、前記ポップアップを前記バックグラウンドから前記フォアグラウンドに移動するステップと、
前記ユーザ入力がないことに応答して、識別されたアプリケーションを形成するために前記フォアグラウンドで実行中のアプリケーションを識別するステップと、
前記識別されたアプリケーションが割込み不能アプリケーションであるかどうかを判定するステップと、
前記識別されたアプリケーションが割込み不能アプリケーションである場合に、前記バックグラウンドから前記フォアグラウンドへの前記ポップアップ・ウィンドウの移動をさせないステップと
を含む方法。
【請求項２】
前記判定するステップは、
前記識別されたアプリケーションを割込み不能アプリケーションのリストと比較するステップと、
前記識別されたアプリケーションが割込み不能アプリケーションの前記リストのアプリケーションと一致する場合に、前記識別されたアプリケーションを割込み不能アプリケーションとして識別するステップと
を含む、請求項１に記載の方法。
【請求項３】
割込み不能アプリケーションの前記リストは、ユーザ生成である、請求項２に記載の方法。
【請求項４】
前記ポップアップ・ウィンドウは、非同期ポップアップ・ウィンドウである、請求項１に記載の方法。
【請求項５】
前記ポップアップ・ウィンドウは、インスタント・メッセンジャ・アプリケーション用である、請求項１に記載の方法。
【請求項６】
前記バッファは、キーボード・バッファおよびマウス入力バッファのうちの少なくとも１つである、請求項１に記載の方法。
【請求項７】
ユーザ・アクティビティが前記バッファに存在する場合に、ユーザ選択の時間期間の後に前記判定ステップを再開始するステップ
をさらに含む、請求項１に記載の方法。
【請求項８】
フォアグラウンドおよびバックグラウンドでウィンドウを管理するデータ処理システムであって、
前記バックグラウンドから前記フォアグラウンドにポップアップ・ウィンドウを移動する要求の受取に応答して、ユーザ入力がバッファに存在するかどうかを判定する監視手段と、
ユーザ入力が前記バッファに存在する場合に、前記バックグラウンドから前記フォアグラウンドに前記ポップアップ・ウィンドウを移動する前記要求を無視する無視手段と、
ユーザ入力が前記バッファに存在しない場合に、前記ポップアップを前記バックグラウンドから前記フォアグラウンドに移動する移動手段と、
前記ユーザ入力がないことに応答して、識別されたアプリケーションを形成するために前記フォアグラウンドで実行中のアプリケーションを識別する識別手段と、
前記識別されたアプリケーションが割込み不能アプリケーションであるかどうかを判定する判定手段と、
前記識別されたアプリケーションが割込み不能アプリケーションである場合に、前記バックグラウンドから前記フォアグラウンドへの前記ポップアップ・ウィンドウの移動をさせない防止手段と
を含むデータ処理システム。
【請求項９】
前記判定手段は、
前記識別されたアプリケーションを割込み不能アプリケーションのリストと比較する比較手段と、
前記識別されたアプリケーションが割込み不能アプリケーションの前記リストのアプリケーションと一致する場合に、前記識別されたアプリケーションを割込み不能アプリケーションとして識別する識別手段と
をさらに含む、請求項８に記載のデータ処理システム。
【請求項１０】
割込み不能アプリケーションの前記リストは、ユーザ生成である、請求項９に記載のデータ処理システム。
【請求項１１】
前記ポップアップ・ウィンドウは、非同期ポップアップ・ウィンドウである、請求項８に記載のデータ処理システム。
【請求項１２】
前記ポップアップ・ウィンドウは、インスタント・メッセンジャ・アプリケーション用である、請求項８に記載のデータ処理システム。
【請求項１３】
前記バッファは、キーボード・バッファおよびマウス入力バッファのうちの少なくとも１つである、請求項８に記載のデータ処理システム。
【請求項１４】
コンピュータに請求項１ないし７のいずれか一項に記載のステップを実行させるためのコンピュータ・プログラム。
【国際調査報告】
2006521610.tif 000010
2006521610.tif 000011
2006521610.tif 000012