JP2006502651A - キーイベント制御装置 - Google Patents

キーイベント制御装置 Download PDF

Info

Publication number
JP2006502651A
JP2006502651A JP2004542821A JP2004542821A JP2006502651A JP 2006502651 A JP2006502651 A JP 2006502651A JP 2004542821 A JP2004542821 A JP 2004542821A JP 2004542821 A JP2004542821 A JP 2004542821A JP 2006502651 A JP2006502651 A JP 2006502651A
Authority
JP
Japan
Prior art keywords
key
key event
event
unit
delivery
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004542821A
Other languages
English (en)
Other versions
JP4182057B2 (ja
JP2006502651A5 (ja
Inventor
英明 矢島
優希 堀内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JP2006502651A publication Critical patent/JP2006502651A/ja
Publication of JP2006502651A5 publication Critical patent/JP2006502651A5/ja
Application granted granted Critical
Publication of JP4182057B2 publication Critical patent/JP4182057B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】 キーの操作方法によって、複数の機能を割り当てられるキーの操作結果が機能毎に異なった仮想キーイベントとして通知される状況において、ウィンドウシステムを介してグラブウィンドウが特定のキーイベントを横取りすることで発生する誤動作を解消すること。
【解決手段】 優先取得受付部14は、グラブウィンドウ10から、所望のキーイベントをフォーカスウィンドウ34より優先して取得したい旨の要求を受け付け、優先取得要求部16は、ユーザの操作結果に対応するキーイベントを確定するまでに発行され得る複数のキーイベントからなるキーイベント要求集合を保持し、グラブウィンドウ10が取得しようとするキーイベントを含むキーイベント要求集合に属する全てのキーイベントの通知をウィンドウシステム32に要求する。

Description

本発明は、キーイベント制御装置に関し、より特定的には、特定キーイベントの配送先変更およびキーイベントのフィルタリングを行うための装置に関する。
キーの状態を管理し、状態変化を通知する仕組みとして一般的なXWindowSystem(マサチュセッツ工科大学の商標)等のウィンドウシステムにおいては、シフトキーやコントロールキー等のモディファイアキーと他のキーを組み合わせた場合に、キー操作に応じて仮想的なキーのイベントの発行が行われる(例えば、非特許文献1参照)。
また、複数のウィンドウを扱うウィンドウシステム上のイベント管理の手法として、ウィンドウの制御に関する情報を一元管理することにより、イベントの通知先であるフォーカスウィンドウの自動切り替えを行うマルチウィンドウイベント管理装置がある(例えば、特許文献1参照)。
しかし、これら非特許文献1および特許文献1に記載された技術では、短押しや長押し等のキーを押す時間、又は、半押しや全押し等のキーを押す深さ等のようなキーの操作方法によって、キーの機能割り当てを変更する場合については、考慮されていない。
短押しや長押し等のようにキーを押す時間によってキーの機能割り当てを変更する仕組みとしては、キー操作に応じて短押しと長押しで異なったイベントを通知する仕組みがある(例えば、特許文献2参照)。
また、短押しと長押し等キー操作により異なった機能を割り当てる状況においては、長押し確定時には短押しイベントを抑制したい場合と、長押し確定時でも短押しイベントを通知すべき場合が考えられるが、最初にキーを押した段階である動作を行い、その後長押しが確定した時点で次の動作を行うような場合を考慮すると、長押し確定時でも短押しイベントを通知する必要がある。一例をあげると、キー押し下時にスクロールを開始し、長押し確定時にスクロール速度を上げるなどの場合である(例えば、特許文献3参照)。
このような場合、キーの状態変化を通知するように機能するキー配送装置は、一連のキー操作が終了し、対応する仮想キーが一意に決定する以前であっても、キー操作の途中段階で、対応するキーまたは仮想キーの状態を通知する。例えば、あるキーの長押しには“長押しキー”の仮想キーが、短押しには“短押しキー”の仮想キーが割り当てられており、そのキーを長押ししたと仮定した場合のシーケンスを図21に示す。まず、キー配送装置は、キー押下時に、“短押し”仮想キーの状態変化を通知する。このキー押下のタイミングでは、キー操作の途中段階のため、短押しキーか長押しキーのどちらかに一意には確定していない。その後、キー押下状態が一定時間経過し、長押し操作と確定した時に、“長押し”仮想キーの状態変化を通知するといった方法が取られている。上記の方法により、各アプリケーションには、キーの操作確定前にも仮想的なキーイベントが通知されるため、アプリケーション側で受け取った一連の仮想キーイベントを総合的に判断して、どのキーイベントが確定されたかを決定し、それに応じた処理を行うという方法が取られていた。
また、キーイベントの優先取得については、一般的に広く普及しているXWindowSystemの場合、優先取得対象キーが押下された時点で、キーイベントの配送先をアクティブなアプリケーションから優先取得要求元に切り替え、押上された時点で配送経路を元に戻すという手段が取られている(例えば、前記非特許文献1参照)。
また、ユーザが特定のアプリケーションではなく存在する全てのアプリケーションに対して処理を行う場合が存在する。具体例を挙げると、全アプリケーションが表示する画面を閉じたり、最小化、最大化したりする場合である。このような場合、一般的なウィンドウシステムでは、全てのウィンドウにキーイベントを配送するという仕組みが存在しないため、ウィンドウを管理するウィンドウマネージャを置き、ウィンドウマネージャに全体操作要求を通知し、それを受けたウィンドウマネージャが全ウィンドウに対して操作を行うという手段がとられている。しかしながら、FVWM等に代表されるような一般的なウィンドウマネージャはウィンドウを管理するという性質上、全ウィンドウに対して行う操作は、ウィンドウの最大化、最小化といったウィンドウ自体の操作のみに限定されている(例えば、非特許文献2参照)。
これを補うため、複数のウィンドウに同時に文字を入力する場合において、入力文字と入力先のウィンドウの対応付けを記した文字−ウィンドウ対応テーブルを参照することにより、各文字入力を対応するウィンドウに出力する複数ウィンドウに対する入力装置がある(例えば、特許文献4参照)。
特開平02−139626号公報 特開2000−353357号公報 特開2003−162356号公報 特開平08−50542号公報 オリバー・ジョーンズ(Oliver Jones)著、西村 亨 監修、三浦明美 訳、"エックスウィンドウズ(XWindow)ハンドブック"、アスキー出版、1990年 デビッド・フリース(David Fries)他、"ジ・オフィシャル・エフブイダブリューエム・ホームページ(The Official FVWM Homepage)"、[online]、平成14年7月20日、[平成14年9月9日検索]、インターネット<URL:http://www.fvwm.org>
しかしながら、前記従来の技術では、第一の課題として、1連のキー操作によって発行された複数のキーのイベントが、キーイベントの優先取得によって、ユーザやアプリケーションからキーイベント配送先として指定されたアプリケーション(以下、アクティブアプリとする)と優先配送先のアプリケーション(以下、グラブアプリとする)とに分かれて配送された場合、それぞれのアプリケーションは一連のキー操作の一部しか通知されないため、正確に機能を確定することができずシステムとして想定外の動作を行うという問題がある。
一例として、あるキーに“長押し”と“短押し”の仮想キーが割り当てられており、アプリケーションAがアクティブアプリで、アプリケーションBが“長押し”仮想キーのグラブアプリである際に、そのキーが長押しされたと仮定した場合のシーケンスを図22に示す。まず、キー押下時に、“短押し”仮想キー押下イベントがアプリケーションAに通知される。次に、“長押し”仮想キー押下イベントがアプリケーションBに通知される。その後、キー押上時に、“短押し”仮想キー押上イベントがアプリケーションAに通知され、“長押し”仮想キー押上イベントがアプリケーションBに通知される。一連の4つ全ての仮想キーイベントを受け取れば、キー操作が長押しであることが分かるが、アプリケーションAには“短押し”仮想キーイベントしか通知されていないため、ユーザは短押し操作を行っていないにも関わらず、短押しに対応する処理を実行してしまう。
また、前記例にあるようにキーに“長押し”と“短押し”の仮想キーが割り当てられている場合には、キー押下時にはユーザ操作結果が確定しないため押下イベントの発行は行わず、キー操作結果が確定したキー押上時に、操作結果に対応した“長押し”又は“短押し”仮想キー押上イベントのみを発行することで上記課題を解決する方法が考えられるが、この方法では長押しをサポートするキーについて押下キーイベントが発行されないため、長押し操作をサポートしないキーと長押し操作をサポートするキーで、異なる種類のキーイベントが発行されてしまう。このため、長押し操作をサポートするキーを変更する度に、そのキーイベントを処理するアプリケーションを変更しなければならないという問題点がある。これに対処するため、長押し操作をサポートしないキーについても押下キーイベントを発行しないことが考え得るが、この方法では全てのキーにおいてキーイベントの遅延が発生するため、ユーザの操作性を低下させる原因となる。
次に第二の課題として、XWindowSystemなどに代表される一般的なウィンドウシステムでは、特定キーを優先取得する場合、そのキーの押下時から押上時までの間、キーイベント配送先が優先配送先に変更されてしまうので、仮想キー配送の順序に依存して、優先取得対象でないキーのイベントまで優先配送先に配送されてしまうという問題点がある。
一例として、あるキーに“長押し”と“短押し”の仮想キーが割り当てられており、アプリケーションAがアクティブアプリで、アプリケーションBが“短押し”仮想キーを優先取得するグラブアプリである際に、そのキーが長押しされたと仮定した場合のシーケンスを図23に示す。“長押し”仮想キー押下イベントから“長押し”仮想キー押上キーイベントまでの間のキーイベントがアプリケーションBに配送されるため、仮想キーイベントの発行順が、“短押し”仮想キー押下イベント、“長押し”仮想キー押下イベント、“短押し”仮想キー押上イベント、“長押し”仮想キー押上イベントの順である場合、“短押し”仮想キー押上イベントまでアプリケーションBに送られる。これにより、アプリケーションAには、キー押上が通知されないことになる。
このようなキーイベントの優先取得の誤配送を避けるため、優先取得を行わずに、常にキーイベントをアクティブアプリケーションに配送し、アクティブアプリが配送されたキーイベントを総合的に判断して処理を切り替えたり他のアプリケーションに通知を行ったりする方法も考えられるが、システム全体で統一的に特定のキー操作に対し特定の処理を行いたい場合には、前記のような対応をアクティブアプリになり得る全てのアプリケーションが前記対応を行う必要があるため開発量が増加するうえ、例えば第3者が開発したオープンなアプリケーション等の前記対応が考慮されていないアプリケーションを導入した場合には、そのアプリケーション上では前記対応に関するキー操作が無効になるという問題点を抱える。例えば、マナーキーが長押しされたときにシステムで統一的にマナーモードに移行する場合には、全てのアプリケーションがマナーキーの長押しを通知されたときにマナーモードに移行する処理を行う必要がある上、この処理を記述していないダウンロードしたオープンソフトではマナーキーの長押しが無効になったり、異なった処理を実行したりしてしまう。
次に第三の課題として、XWindowSystemなどに代表される一般的なウィンドウシステムでは、優先取得同士の競合を避けるため、1つのキーについては、最初に要求した1つのウィンドウしか優先配送先とすることができず、複数のウィンドウが同時に同一キーに関するキーイベントを優先取得できないという問題がある。
次に第四の課題として、ユーザが全てのウィンドウに対して一括処理を行いたい場合、前記従来の技術では、ウィンドウマネージャが管理制御を行っているため、直前の操作を取り消して1つ前の状態に戻す処理やデータ保存処理など、ウィンドウ自体の操作ではない処理を全ウィンドウに対して行うことはできない。
また、従来の技術として先に挙げた複数ウィンドウに対する入力装置(例えば、前記特許文献2参照)は、文字入力のみを対象としている上に、文字とウィンドウとの対応テーブルに従って、通知された文字入力を複数ウィンドウに配送するだけなので、ユーザのキー操作過程において複数のキーイベントが発生する場合は、発生したキーイベント全てを各々対応するウィンドウに配送してしまうため、第1の課題として挙げたシステムとして想定外の動作を行うという問題が発生する。
本発明は、前記課題のうちの少なくとも第一の課題及び第二の課題(変形例によってはさらに第三の課題または第四の課題も)を解決するためになされたものであり、複数のウィンドウが存在する環境において、ユーザのキー操作過程で発生した複数のキーイベントに基づいて確定したキーイベントを、優先配送先ウィンドウまたはフォーカスウィンドウに配送するキーイベント制御装置を提供することを目的としている。
本発明は、第1の配送先プログラム(例えば上記グラブアプリ)から、所望のキーイベントをキー配送装置(例えば上記ウィンドウシステム)によるキーイベントの通常の配送先である第2の配送先プログラム(例えば上記アクティブアプリ)より優先して取得したい旨の要求を受け付ける優先取得受付部と、ユーザの操作結果に対応するキーイベントを確定するまでに発行され得る複数のキーイベントからなるキーイベント要求集合を保持し、前記所望のキーイベントを含むキーイベント要求集合に属する全てのキーイベントの通知を前記キー配送装置に要求する優先取得要求部とを備える。
本発明によれば、1つのキーイベント制御装置が1連のキー操作によって発行される複数のキーのイベント全てを一括して取得するため、フォーカスウィンドウと優先配送先のウィンドウとに分かれて配送されることに起因する誤動作を防ぐことができる。
なお、本発明の種々の変形例によれば、下記のような効果を得ることができる。
一般的なウィンドウシステムの優先キー取得機構の仕様に起因する、キー優先取得対象外のキーイベントを優先取得してしまう問題点や、複数のウィンドウが同一のキーイベントを優先取得できないという問題を防ぐことが可能である。
これらのことから、キー操作によってキーの機能が異なる環境においても、キーイベント優先取得をアプリケーションが利用できるようになるため、システム全体で統一的に特定のキー操作に対し特定の処理を行いたい場合には、そのキーイベントを優先取得するアプリケーション1つが対応すれば、存在する他のアプリケーションでの特別な処理は不要であり、ダウンロードしたオープンソフトウェア等のアプリケーション上においても、システム全体で統一された処理を行うことが出来る。
また、特定のキーイベントを全ウィンドウにブロードキャストすることにより、ウィンドウマネージャが対応しないウィンドウ操作以外の処理も、ユーザが全ウィンドウに対して一括操作を行うことが可能である。
さらに、既存のシステムに対して本発明を適用する際には、キーイベント制御装置を新たに追加するだけでよく、ウィンドウシステムを変更する必要がないため、一般的なウィンドウシステムの流用が可能であり、ソフトウェアの開発の規模や開発コスト、開発工数を低減することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
実施の形態においては、キー配送装置としてウィンドウシステムを採用した場合について記述しているが、例えば、リアルタイムOSにおいてキーの状態変化をタスク間通信で通知するような仕組みなど、ウィンドウシステム以外のキー配送装置を使用する場合にも本発明を適用可能であり、キーの配送対象は、ウィンドウに限らず、任意のプログラム(アプリケーション、子ウィンドウなどを含む)であってもよい。
(実施の形態1)
本発明の実施の形態1として、キーイベント制御装置がキーイベントの優先取得要求処理およびキーイベントのフィルタリング処理を行う場合について図1に示す。
図1は、本発明の実施の形態1におけるキーイベント制御装置の構成の一例を示すブロック図である。
ウィンドウシステム32は、キー配送装置の一例であって、キーイベントを所定のウィンドウへと配送する機能を有している。ウィンドウシステム32は、通常はフォーカスウィンドウにキーイベントを配送するが、特定のキーイベントを特定のウィンドウに配送する機能も有している。フォーカスウィンドウは、ユーザやアプリケーションによってキーイベント配送先として指定されたウィンドウである。
本実施の形態では、ウィンドウシステム32は通常はフォーカスウィンドウ34へとキーイベントを配送するが、一部のキーイベントについてはウィンドウシステム32からキーイベント制御装置12を経由して、グラブウィンドウ41へ通知される。ここで、グラブウィンドウ10は、キーイベント制御装置12に特定のキーイベントの優先取得を要求したウィンドウである。なお、グラブウィンドウ10がフォーカスウィンドウ34であってもよい。
図1のキーイベント制御装置12は、優先取得受付部14と、優先取得要求部16と、キーイベント配送部18と、キーイベント変換部20と、配送キーイベント決定部22と、キーイベント保持部24と、キーイベント削除部26と、保持内容クリア部28と、キーイベント取得部30とを備えている。
まず、キーイベントの優先取得要求処理について説明する。
優先取得受付部14は、グラブウィンドウ10から発せられた優先取得要求(どのキーイベントを優先取得したいかを示す情報を含む)を受け付け、この要求を記憶し、優先取得要求部16に優先取得要求を受け付けた旨を通知する。
優先取得要求部16は、図2に例示されるような複数のキーイベントにより構成されるキーイベント要求集合36を予め保持している。優先取得要求部16は、複数のキーイベント要求集合を保持していてもよい。優先取得受付部14から通知された優先取得対象のキーイベントが、優先取得要求部16によって保持されているいずれかのキーイベント要求集合に属する場合は、優先取得要求部16はそのキーイベント要求集合に属するキーイベント全てについてウィンドウシステム32に優先取得要求する。
なお、各キーイベント要求集合は、ユーザの操作結果に対応するキーイベントを確定するまでに発行され得る複数のキーイベントにより構成される。
一例を挙げて説明すると、あるキーXの長押し、短押し操作をそれぞれ通知する長押しキーイベント、短押しキーイベントが存在していて、そのキーXをユーザが長押しした時には、まずユーザがキーXを押下した時点でX短押下キーイベントがウィンドウシステム32から発行され、その後、一定時間経過して長押しが確定した時点でX長押下キーイベントがウィンドウシステム32から発行され、そして、ユーザがキーXを離した(押し上げた)時にX短押上キーイベントおよびX長押上キーイベントがウィンドウシステム32から発行される。このように、ユーザによる長押しキー操作の過程で短押しキーイベントも発行される。優先取得要求部16は、長押しキー操作で発行される上記の4つのキーイベント全てを図2に示すようにキーイベント要求集合36として纏めて保持している。グラブウィンドウ10によってキーイベント要求集合36に含まれる上記の4つのキーイベントのうちの何れかに対する優先取得要求がなされると、優先取得要求部16はウィンドウシステム32に対してキーイベント要求集合36aに含まれる上記の4つのキーイベント全てについて優先取得要求する。
他の例として、2つのキーA,Bを同時押ししたときに、キーAやキーBを単独に押した場合と異なる仮想キーイベントが発行される場合には、優先取得要求部16は、図3に示すように、この同時押し操作の過程で発行され得る4つのキーイベント(A押下、A押上、B押下、B押上)を纏めてキーイベント要求集合37として保持しておく。そして、これら4つのキーイベントのうちの何れかに対する優先取得がなされると、優先取得要求部16はウィンドウシステム32に対してキーイベント要求集合37に含まれる上記の4つのキーイベント全てについて優先取得要求する。
優先取得要求部16は、図2に示すキーイベント要求集合36と図3に示すキーイベント要求集合37を同時に保持していても構わない。
こうしてキーイベント制御装置12からウィンドウシステム32に対して特定のキーイベントの優先取得要求がなされると、それ以降、ウィンドウシステム32は、これらの特定のキーイベントについてはキーイベント制御装置12に通知し、その他のキーイベントについてはフォーカスウィンドウ34に通知する。この結果、キーイベント制御装置12が特定のキー操作の過程で発行されるキーイベント全てを一括して取得することになるため、キー操作の過程で発行される一連のキーイベントがフォーカスウィンドウと優先配送先のウィンドウ(グラブウィンドウ)に分かれて配送されることに起因する誤動作を防ぐことができる。
次に、キーイベントのフィルタリング処理について説明する。
キーイベント取得部30は、ウィンドウシステム32から通知されたキーイベントを取得し、配送キーイベント決定部22にそのキーイベントを通知する。また同時に、キーイベント取得部30は、キーイベント削除部26と保持内容クリア部28に、キーイベントの取得が発生した旨を通知する。このときキーイベント取得部30は、キーイベントの取得が発生したことを意味する特定のイベントを用いて通知してもよいし、取得したキーイベント自身をそのまま用いて通知してもよい。
配送キーイベント決定部22は、キーイベント取得部30からキーイベントを受け取り、そのキーイベントをキーイベント保持部24に格納し、配送すべきキーイベントを決定する。そして、配送すべきキーイベントが一意に確定した時、配送キーイベント決定部22は、キーイベント変換部20にこの確定したキーイベントを通知し、それからキーイベント保持部24に格納されているこの確定したキーイベントをクリアする。なお、配送すべきキーイベントが一意に確定しない場合のみ、配送キーイベント決定部22はキーイベント取得部30から受け取ったキーイベントをキーイベント保持部24に格納してもよい。キーイベント保持部24の詳細については後述する。
配送キーイベント決定部22は、配送すべきキーイベントを決定する際に、前もって設定されたキーイベント確定集合を決定のための判断基準として用いる。このキーイベント確定集合は、単一のキーイベントだけでは確定しないようなキー操作を確定するための複数のキーイベントからなる。例えば、ある特定のキーXに対して、短押し操作と長押し操作が想定されている場合に、ウィンドウシステム32からX短押下キーイベントが発行された時点では、ユーザのキー操作が短押し操作か長押し操作かを一意に特定することができない。つまり、X短押下キーイベントとX短押上キーイベントが両方揃った時点で初めて、ユーザのキー操作が短押し操作であると特定することができる。したがって、配送キーイベント決定部22には、このようなX短押下キーイベントとX短押上キーイベントの組が、図4に示すようにキーイベント確定集合38として予め保持される。なお、長押し操作については、X長押下キーイベントが単独で発行された時点でユーザのキー操作が長押し操作であると特定することができるため、長押し操作に係るキーイベント確定集合は不要である。なお、配送キーイベント決定部22には、複数のキーイベント確定集合が設定されていてもよい。
キーイベント確定集合の他の例として、2つのキーA,Bを同時押ししたときに、キーAやキーBを単独に押した場合とは異なる仮想キーイベント(X押下)が発行される場合には、配送キーイベント決定部22には、図5(a)〜図5(d)に示す4つのキーイベント確定集合39a、39b。39c、39dを設定しておく。なお、この場合、キーイベント変換部20において、A押下キーイベントとB押下キーイベントの組はX押下キーイベントに変換され、A押上キーイベントとB押上キーイベントの組はX押上キーイベントに変換され、A押下キーイベントとA押上キーイベントの組、およびB押下キーイベントとB押上キーイベントの組については変換されない。
配送キーイベント決定部12に設定されたキーイベント確定集合のデータ構造の一例を図6に示す。設定管理情報40は、設定されている複数のキーイベント確定集合データ44のアドレス42a、42b、42c、42dの一覧を含んでいる。各キーイベント確定集合データ44は、その集合に属する各キーイベントの情報を示すキーイベント情報48のアドレス46a、46b、46c、46dを含んでいる。そして、キーイベント情報48は、キーイベントを特定するための情報として、押下や押上などイベントの種類を表すイベント種別50と、どのキーに対応したイベントであるかを示すキーコード52を含んでいる。なお、キーイベント情報48は、キーイベントを特定可能な任意の情報であればよく、イベント種別50およびキーコード52をキーイベント情報48として記述する替わりに、キーイベントごとにIDを割り当て、そのIDをキーイベント情報48として記述してもよい。キーイベント確定集合の設定は、システム開発時に静的に組み込んでおく他、アプリケーションの要求に応じて動的に任意のタイミングで設定することも可能である。このキーイベント確定集合は、単一のキーイベントだけではキー操作の結果が確定しないようなキーイベントを構成要素とし、キー操作が確定されるのに必要なキーイベント全てを含むように設定される。
キーイベント保持部24は、少なくとも単一のキーイベントだけでは操作結果が確定しないようなキーイベントを一時的に保持するものであり、保持すべきキーイベントを一時的に保持可能なメモリなどの記憶装置により実現される。キーイベント保持部24の保持データの構造の一例を図7に示す。保持データ54は、保持されるイベントデータ58のアドレス56a、56b、56c、56d、56eの一覧を保持している。各イベントデータ58は、押下や押上などイベントの種類を表すイベント種別60と、そのイベントが発生した時点におけるフォーカスウィンドウを識別するためのウィンドウ識別子62と、イベント発生時刻64と、どのキーに対応したイベントであるかを示すキーコード66を含んでいる。ただし、このイベントデータ58は、イベントを通知するウィンドウシステム32の仕様に依存しており、前述のイベント種別60、ウィンドウ識別子62、イベント発生時刻64、キーコード66のうちのいずれか不必要なものが除かれている場合がある。また、イベントデータ58に、イベントが発生した画面上の座標や、複数の画面が存在する場合には画面を特定するための画面識別子などが含まれている場合もある。
単一のキーイベントだけでは操作結果が確定しないようなキーイベントだけがキーイベント保持部24に格納される場合には、キーイベント保持部24に保持されるキーイベントは、配送キーイベント決定部22に設定されているいずれかのキーイベント確定集合に含まれているキーイベントに限られる。
キーイベント変換部20は、配送キーイベント決定部22で決定されたキーイベントを別のキーイベントに変換する。キーイベントの変換方法としては、複数のキーイベントを合成して他の一つのキーイベントに変換する方法、単一のキーイベントを複数のキーイベントに変換する方法、一つのキーイベントを他の一つのキーイベントに変換する方法などがある。複数のキーイベントの合成は、例えば右キー押下イベントと上キー押下イベントが配送すべきキーイベントとして決定された場合、これら2つのキーイベントを右上キー押下イベントに変換することである。単一のキーイベントから複数のキーイベントへの変換は、先の例の逆であり、例えば右上キー押下イベントを、右キー押下イベントと上キー押下イベントに変換することである。一つのキーイベントから他の一つのキーイベントへの変換は、例えば右キー押下イベントを上キー押下イベントに変換することである。このような変換は、これらの例に挙げたような変換ルールを予めキーイベント変換部20に設定しておき、配送キーイベント決定部22によって配送すべきキーイベントとして決定されたキーイベントを、キーイベント変換部20がその変換ルールに従って変換することで実現される。また、キーイベント変換部20は必ずしも全てのキーイベントを変換するわけではなく、変換対象でないキーイベントについては、何も行わずにキーイベント配送部18に通知する。
キーイベント配送部18は、キーイベント変換部20から通知されたキーイベントをグラブウィンドウ10に通知する。グラブウィンドウ10のイベントキューにキーイベントを書き込む等により、イベントの配送が実現される。
キーイベント削除部26は、キーイベント取得部30からの通知を受け、キーイベント制御装置12が特定のキーイベントを取得することをトリガとして、キーイベント保持部24に保持されている特定のキーイベントを削除する。
一例をあげて説明すると、キーイベントaの取得をトリガにキーイベントbを削除する場合では、キーイベント取得部30からキーイベントaの取得が通知された際に、キーイベント保持部24にキーイベントbが保持されていればキーイベント削除部26はそれを削除する。キーイベント保持部24にキーイベントbが保持されていない場合はキーイベント削除部26は何も行わない。なお、キーイベントaを取得したときにキーイベントbとcを削除する等のように、削除対象となるキーイベントを複数にすることも可能である。
このキーイベント削除のルールは、特定のキーイベント取得時に以前のキーイベントをキャンセルする必要がある場合に設定される。一例を挙げて説明すると、あるキーの短押と長押でそれぞれ短押キーイベント、長押キーイベントが通知される場合は、長押下キーイベント取得時に、その直前に通知された短押下キーイベントをキャンセルする必要があるため、長押下キーイベントをトリガとして、短押下キーイベントを削除するルールを設定する。また、同様に長押上キーイベント取得時に短押上キーイベントを削除するルールも設定する。また、キーイベントの種類に押上と押下がある場合は、押下キーイベント取得時に、キーイベント保持部24に保持された押上キーイベントを削除することで、以前のキー操作で発行された押上イベントがキーイベント保持部24に残っていることに対する誤動作を防ぐことが出来る。
保持内容クリア部28は、キーイベント制御装置12がキーイベントを一定時間取得しなかった場合、キーイベント保持部24が保持するキーイベントを全て削除する。保持内容クリア部28は、キーイベントを取得しなかった時間を計測するタイマを持ち、キーイベント取得部30からの通知に基づいて、キーイベント制御装置12がキーイベントを取得するごとにタイマのリセットを行い、タイマの時間が前もって設定されている一定値を超えた時にキーイベント保持部24の保持内容をクリアすることで実現される。
以下に、一例を挙げて具体的に説明する。あるキーの短押と長押でそれぞれ短押キーイベント、長押キーイベントが通知される場合は、短押下キーイベントのみでは、その後長押し操作が行われる可能性があるために、キー操作が確定せず、短押下キーイベントと短押上キーイベントの両方が揃って初めて短押し操作が確定するので、短押下キーイベントと短押上キーイベントの2つを構成要素とするキーイベント確定集合を配送キーイベント決定部22において設定する。配送キーイベント決定部22は、キーイベント保持部24が保持するキーイベントと、設定されたキーイベント確定集合とを比較し、あるキーイベント確定集合に属するキーイベントが全てキーイベント保持部24に保持されている場合、それらのキーイベントを配送キーイベントとして確定する。
一例をあげて説明すると、キーイベントa、b、cの3つがあり、キーイベント確定集合として、キーイベントaとキーイベントbで構成される組X、キーイベントaとキーイベントcで構成される組Yが設定されている場合、キーイベントaのみがキーイベント保持部24に保持されている時は、配送キーイベント決定部22は何も行わない。その後、キーイベント保持部24にキーイベントbが追加保持された時には、キーイベント確定集合Xに属するキーイベントa、bが全て保持されているので、キーイベントa、bを配送キーイベントとして確定し、これらキーイベントa、bをキーイベント保持部24から削除した上で、これらキーイベントa、bをキーイベント変換部20に通知する。同様に、キーイベントaが保持されている時にキーイベントcが保持内容に追加されると、キーイベント確定集合Yに属するキーイベントa、cが全て揃うので、キーイベントa、cを配送キーイベントとして確定する。また、キーイベントb、cが保持されている時にキーイベントaが保持内容に追加された場合は、キーイベントb、cのうち先に保持されているものとキーイベントaとの組を作る方法や、キーイベント確定集合に優先順位を付ける方法などで、キーイベント確定集合XまたはYのどちらに属するキーイベントを配送するか決定する。
キーイベントa、b、c、dの4つがあり、キーイベント確定集合として、キーイベントaとキーイベントbで構成される組X、キーイベントaとキーイベントcで構成される組Yが設定されている場合は、組X、Yの構成要素であるキーイベントa、b、cはキーイベント保持部24に保持され、キーイベントdはキーイベント保持部24に保持されずにキーイベント変換部20経由でキーイベント配送部18へ通知される。
また、解決すべき課題として先に挙げたように、キーの状態変化をグラブウィンドウ10に直ちに通知することが必要な場合は、直ちに取得したいキーイベントが属するキーイベント確定集合を無効にすることで実現可能である。先にあげた例を用いて説明すると、キーイベントbを直ちに取得したい場合には、キーイベント確定集合Xを無効にすることによって、キーイベントbはキーイベント保持部24に保持されることなくキーイベント変換部20経由でキーイベント配送部18に通知され、キーイベント配送部18からグラブウィンドウ10に通知される。
次に、本発明の実施の形態1におけるキーイベント優先取得要求処理の流れを図8のフローチャートを参照して説明する。
まず、優先取得受付部14は、グラブウィンドウ10から優先取得を要求されたキーイベントを受け付け、この要求を記憶し、優先取得要求部16に要求を受け付けた旨を通知する(S10)。
次に、優先取得要求部16は、優先取得を要求されたキーイベントの種類を取得し、そのキーイベントが、優先取得要求部16の内部で保持しているキーイベント要求集合の何れかに含まれているかどうかをチェックする(S12)。そのキーイベントが何れかのキーイベント要求集合に含まれていた場合(S12でYES)には、優先取得要求部16は、そのキーイベントの含まれているキーイベント要求集合の要素全てに対してウィンドウシステム32に優先取得要求を行う(S14)。一方、そのキーイベントが何れのキーイベント要求集合にも含まれていなかった場合(S302がNO)には、優先取得要求部16は、そのキーイベントに対してのみウィンドウシステム32に優先取得要求を行う(S16)。
次に、実施の形態1におけるキーイベントのフィルタリング処理の流れを図9のフローチャートを参照して説明する。
まず、キーイベント取得部30が、ウィンドウシステム32からキーイベントを取得し、配送キーイベント決定部22に取得したキーイベントを通知し、保持内容クリア部28とキーイベント削除部26にキーイベントを取得した旨を通知する(S18)。そして、保持内容クリア部28は、タイマをリセットする(S20)。キーイベント削除部26は、削除のトリガとなるキーイベントを取得した場合、その削除の対象となるキーイベントがキーイベント保持部24に保持されているかどうかをチェックし(S22)、保持されていた場合(S22でYES)、キーイベント削除部26は削除対象となるキーイベントをキーイベント保持部24から削除する(S24)。
次に、配送キーイベント決定部22は、取得したキーイベントのみで操作が確定するかどうか、言い換えると他のキーイベントが通知されるまでキー操作が確定しないかどうかをチェックする(S26)。これは、配送キーイベント決定部22に設定された何れかのキーイベント確定集合に取得したキーイベントが含まれているか否かによって判断される。取得したキーイベントが何れのキーイベント確定集合にも含まれていなかった場合(S26でYES)、処理はステップS38に遷移する。一方、取得したキーイベントが何れかのキーイベント確定集合に含まれていた場合は(S26でNO)、キーイベント保持部24に、取得したキーイベントを保持する(S28)。
次に、配送キーイベント決定部22が、設定されたキーイベント確定集合のうち、その構成要素となるキーイベントが全てキーイベント保持部24に保持されているような組(キーイベント確定集合)が存在するかどうかをチェックする(S30)。そして、該当する組が存在していた場合は、その組に属するキーイベント全てを配送キーイベントとして決定し、これらの配送キーイベントをキーイベント変換部20に通知する(S32)。その後、キーイベント変換部20が、これらの配送キーイベントを変換するルールがあるかどうかをチェックし(S34)、該当するルールがあった場合は、これらの配送キーイベントをそのルールに従って変換する(S36)。
キーイベント配送部18は、ステップS26のチェックで何れのキーイベント確定集合にも含まれないと判断されたキーイベント、ステップS36で変換された場合は変換後の配送キーイベント、およびステップS36で変換されない場合はS32で決定された配送キーイベントを、グラブウィンドウ10に配送する(S38)。
なお、図9のフローチャートには示されていないが、保持内容クリア部28は、ウィンドウシステム32からキーイベント制御装置12にキーイベントが通知されていない時間を計測するタイマのカウント値が一定値を超えると、キーイベント保持部24の保持内容をクリアする。
以上により、キーイベント制御装置12が、キー操作の過程でウィンドウシステム32から発行されたキーイベントを必要に応じて一時保持し、キー操作が確定してからグラブウィンドウ10にキーイベントを通知することにより、キー操作過程で発行されるキーイベントによる誤動作を防ぐことが可能となる。
なお、キー状態の変化をグラブウィンドウ10に直ちに通知する必要がある場合は、配送キーイベント決定部22に設定されているキーイベント確定集合を無効にすることで実現可能である。
また、保持内容クリア部28やキーイベント変換部20は、必要がない場合は取り除いても良い。
また、キーイベント削除部26と同等の機能を、キーイベント削除部26を設けずに実現する方法もある。その場合は、まずキーイベント確定集合を構成する各キーイベント情報48に、キーイベント確定集合に属するキーイベントが全て揃った時に、どのキーイベントを配送し、どのイベントを配送しないかを指定する配送可・不可フラグを追加する。そして、配送キーイベント決定部22は、キーイベント保持部24においてキーイベント確定集合102に属する全てのキーイベントが揃った時(S30でYES)に、S32において、配送可・不可フラグが“配送可”になっているものだけを配送キーイベントとし、“配送不可”になっているものはキーイベント保持部24から削除する。これによって、キーイベント削除部26が無くても、キー操作過程発生するキーイベントを抑制し、キー操作の結果となるキーイベントのみを配送することが可能となる。
(実施の形態2)
本発明の実施の形態2として、実施の形態1とは異なるキーイベントのフィルタリング処理を行うキーイベント制御装置の例について説明する。
図10は、本発明の実施の形態2におけるキーイベント制御装置の構成の一例を示すブロック図である。なお、図10において、図1と同様の構成には同一の参照符号を付し、説明を省略する。
図10のキーイベント制御装置68は、優先取得受付部14と、優先取得要求部16と、キーイベント配送部18と、キーイベント生成部70と、押下キーイベント破棄部72と、押上キーイベント破棄部74と、キーイベント取得部30とを備えている。
優先取得受付部14と、優先取得要求部16と、キーイベント配送部18と、キーイベント取得部30は、実施の形態1の場合と同様なので説明を省略する。
押上キーイベント破棄部74は、内部に破棄対象を記憶しており、キーイベント取得部30から通知されるキーイベントのうち、その破棄対象と一致する押上キーイベントを破棄する。また、押上キーイベント破棄部74は、押上キーイベントを1つ破棄するとそのキーイベントを破棄対象から外す。初期状態では押上キーイベント破棄部74の破棄対象はなく、キーイベント取得部30から押下キーイベント(仮に“L押下キーイベント”とする)を通知された時に、L押下キーイベントが発行される押下時間よりも短い押下時間で発行される押下キーイベント(仮に“S押下キーイベント”とする)が存在する場合、S押下キーイベントと対になるS押上キーイベントを破棄対象に設定する。
押上キーイベント破棄部74の処理について一例を挙げて説明する。あるキーXを押した時に押下キーイベントX0が発生し、その後T1時間押し続けると押下キーイベントX1が、T2(T1<T2)時間押し続けると押下キーイベントX2がそれぞれ発生し、さらにキーXの押し上げ時に押上キーイベントX0と、T1時間以上押し続けた後でキーXを押し上げた場合は押上キーイベントX1と、T2時間以上押し続けた後でキーXを押し上げた場合は押上キーイベントX2が発生する場合において、押下キーイベントX0取得時には、それより短い押下時間で発生するキーイベントは無いので、押上キーイベント破棄部74は何もしない。押下キーイベントX1取得時には、押下キーイベントX1より短い押下時間で発生する押下キーイベント(押下キーイベントX0)が存在するため、押上キーイベント破棄部74は、それに対応する押上キーイベントX0を破棄対象として設定する。押下キーイベントX2取得時には、押下キーイベントX2より短い押下時間で発生する押下キーイベント(押下キーイベントX0および押下キーイベントX1)が存在するため、押上キーイベント破棄部74は、それらに対応する押上キーイベントX0および押上キーイベントX1を破棄対象として設定する。その後、押上キーイベント破棄部74は、押上キーイベントX0取得時には、押上キーイベントX0が破棄対象に設定されていれば、押上キーイベントX0を破棄した後、押上キーイベントX0を破棄対象から外す。同様に、押上キーイベントX1取得時には、押上キーイベントX1が破棄対象に設定されていれば、押上キーイベントX1を破棄した後、押上キーイベントX1を破棄対象から外す。
キーイベント生成部70は、それぞれのキーについて一番長くキーを押し続けた後でキーを押し上げた際に発行される押上キーイベント以外の押上キーイベントを押上キーイベント破棄部74から取得すると、その押上キーイベントに対応する押下キーイベントを生成し、キーイベント配送部18に通知する。前記の例を用いて説明すると、キーXについて、一番長く押下し続けた後でキーを押し上げた際に発生する押上キーイベントは押上キーイベントX2である。そのため、キーイベント生成部70は、押上キーイベントX0取得時に押下キーイベントX0を、押上キーイベントX1取得時に押下キーイベントX1をそれぞれ生成する。他のキーについても同様に、例えばキーYの押上イベントに押上キーイベントY0〜Y4があり、一番長い時間押下し続けた後でキーを押し上げた場合に押上キーイベントY4が発生するとすれば、キーイベント生成部70は、押上キーイベントY0〜Y3の取得に応じて押下キーイベントY0〜Y3をそれぞれ生成する。
押下キーイベント破棄部72は、それぞれのキーについて一番長くキーを押し続けた際に発行される押下キーイベント以外の押下キーイベントを破棄する。前記の例を用いて説明すると、キーXについて、一番長く押下した場合に発生する押下キーイベントは押下キーイベントX2である。そのため、押下キーイベント破棄部72は、押下キーイベントX0と押下キーイベントX1を取得時に、これを破棄する。他のキーについても同様に、例えばキーYの押下イベントに押下キーイベントY0〜Y4があり、一番長い時間押下した場合に押下キーイベントY4が発生するとすれば、押下キーイベント破棄部72は押下キーイベントY0〜Y3を取得時にこれらを破棄する。
次に、本発明の実施の形態2におけるキーイベント制御装置のキーイベントのフィルタリング処理の流れを図11のフローチャートを参照して説明する。なお、図11において図9と同様のステップには同一の参照符号を付している。
まず、キーイベント取得部30が、ウィンドウシステム32からキーイベントを取得し、取得したキーイベントを押上キーイベント破棄部74に通知する(S18)。押上キーイベント破棄部74が、取得したキーイベントが押下キーイベントかどうかチェックする(S40)。押下キーイベントであった場合は(S40でYES)、押上キーイベント破棄部74が、その押下キーイベントより短い押下時間で発生する押下キーイベントと対になる押上キーイベントを破棄対象として自身に設定し、取得した押下キーイベントを押下キーイベント破棄部72に通知する(S42)。そして、押下キーイベント破棄部72は、押上キーイベント破棄部74から通知された押下キーイベントがキーを一番長い時間押下した時に発生するものかどうかをチェックし(S44)、一番長い時間押下した時に発生するものでなければ(S44でNO)、それを破棄する(S46)。また、一番長い時間押下した時に発生するものであれば(S44でYES)、キーイベント配送部18に、その押下キーイベントを通知する。
一方、キーイベント取得部30が取得したキーイベントが押上キーイベントであった場合は(S40でNO)、取得した押上キーイベントが破棄対象に設定されているかどうかを押上キーイベント破棄部74がチェックする(S48)。取得した押上キーイベントが破棄対象に設定されていた場合は(S48でYES)、押上キーイベント破棄部74が、その押上キーイベントを破棄した後に(S50)、その押上キーイベントを破棄対象から外す(S52)。一方、取得した押上キーイベントが破棄対象に設定されていなかった場合は(S48でNO)、押上キーイベント破棄部74が、取得した押上キーイベントをキーイベント生成部70に通知する。そして、キーイベント生成部70が、押上キーイベント破棄部74から通知された押上キーイベントがキーを一番長い時間押下した後に発生するものかどうかをチェックし(S54)、一番長い時間押下した後に発生するものであれば(S54でYES)押上キーイベント破棄部74より通知されたキーイベントのみをキーイベント配送部18に通知する。また、一番長い時間押下した後に発生するものでなければ(S54でNO)、キーイベント生成部70は、通知された押上キーイベントに対応するキーと同じキーの押下を通知する押下キーイベントを生成し、押上キーイベント破棄部74より通知されたキーイベントと生成した押下キーイベントをキーイベント配送部18に通知する(S56)。
最後に、キーイベント配送部18が、キーイベント生成部70または、押下キーイベント破棄部72より通知されたキーイベントをグラブウィンドウ10に配送する(S38)。
以上の処理により、例えば、あるキーの短押し(0)、中押し(1)、長押し(2)に対してそれぞれ押下、押上のキーイベントが発行される場合、キーが長押しされた場合には図12に示すように長押しを示すキーイベント(押下2、押上2)のみがキーイベント配送部18に通知され、キーが中押しされた場合には図13に示すように中押しを示すキーイベント(押下1、押上1)のみがキーイベント配送部18に通知され、キーが短押しされた場合には図14に示すように短押しを示すキーイベント(押下0、押上0)のみがキーイベント配送部18に通知される。
このように、キーイベント種別に押上、押下の2種類があり、キーを押す長さによって異なったキーのイベントとして通知される場合に、キーイベント制御装置が、キー操作の過程で発行されるキーイベントを抑制し、キー操作確定時に確定されたキーイベントを通知することにより、キー操作過程で発行されるキーイベントによる誤動作を防ぐことが可能となる。
なお、キー状態の変化を直ちに取得したい場合は、キーイベント制御装置12を使用せず、グラブウィンドウ10がウィンドウシステム32からキーイベントを直接取得することで、実現可能である。
(実施の形態3)
本発明の実施の形態3として、実施の形態1、2とは異なるキーイベントのフィルタリング処理を行うキーイベント制御装置の例を説明する。
図15は、本発明の実施の形態3におけるキーイベント制御装置の構成の一例を示すブロック図である。なお、図15において、図1と同様の構成には同一の参照符号を付し、説明を省略する。
図15のキーイベント制御装置76は、優先取得受付部14と、優先取得要求部16と、キーイベント配送部18と、キーイベント保持部24と、押下キーイベント処理部78と、押上キーイベント処理部80と、キーイベント取得部82とを備えている。
優先取得受付部14と、優先取得要求部16と、キーイベント配送部18と、キーイベント保持部24は、実施の形態1の場合と同様なので説明を省略する。
キーイベント取得部82は、ウィンドウシステム32から通知されたキーイベントを取得し、キーイベントの種類に応じて押下キーイベント処理部78または、押上キーイベント処理部80に渡す。押下キーイベント処理部78は、長押下キーイベントをキーイベント配送部18に渡し、短押下キーイベントをキーイベント保持部24に渡す。押上キーイベント処理部80は、長押上キーイベントをキーイベント配送部18に渡し、短押上キーイベントを受け取った場合は、キーイベント保持部24に押下キーイベントが保持されている場合にこの保持されている押下キーイベントと受け取った短押上キーイベントをキーイベント配送部18に渡す。
次に、本発明の実施の形態3におけるキーイベント制御装置のキーイベントのフィルタリング処理の流れを図16のフローチャートを参照して説明する。なお、図16において図9と同様のステップには同一の参照符号を付している。
まず、キーイベント取得部82が、ウィンドウシステム32からキーイベントを取得し(S18)、取得したキーイベントが押下キーイベントならばこれを押下キーイベント処理部78に渡し、押上キーイベントならばこれを押上キーイベント処理部80に渡す(S58)。
押下キーイベント処理部78にキーイベントが渡された場合は、押下キーイベント処理部78が、キーイベント取得部30から渡されたキーイベントが長押下キーイベントか否かを判断する(S60)。長押下キーイベントでなかった場合は(S60でNO)、そのキーイベントをキーイベント保持部24に記憶させる(S66)。一方、渡されたキーイベントが長押下キーイベントの場合は(S60でYES)、キーイベント保持部24に記憶されている押下キーイベントを削除し(S62)、長押下キーイベントをキーイベント配送部18へ渡し、キーイベント配送部18がこの渡されたキーイベントをグラブウィンドウ10へ配送する(S64)。
押上キーイベント処理部80にキーイベントが渡された場合は、押上キーイベント処理部80がキーイベント取得部82から渡されたキーイベントが長押上キーイベントか否かを判断する(S68)。長押上キーイベントでなかった場合は(S68でNO)、キーイベント保持部24に押下キーイベントが保持されているかどうかをチェックする(S72)。押下キーイベントが保持されていれば(S72でYES)、この押下キーイベントをキーイベント保持部24から取り出してキーイベント配送部18に渡した上で、キーイベント取得部82から渡された押上キーイベントもキーイベント配送部18に渡され、キーイベント配送部18がこの渡されたキーイベントをグラブウィンドウ10に配送する(S76)。一方、キーイベント保持部24に押下キーイベントが保持されていなければ(S72でNO)、キーイベント取得部82から渡された押上キーイベントを破棄する(S74)。また、キーイベント取得部82から渡されたキーイベントが長押上キーイベントの場合は、そのキーイベントをキーイベント配送部18に渡し、キーイベント配送部18がこの渡されたキーイベントをグラブウィンドウ10に配送する(S70)。
このように、キーイベント種別に押上、押下の2種類があり、キーを押す長さによって異なったキーのイベントとして通知される場合に、キーイベント制御装置が、キー操作の過程で発行されるキーイベントを抑制し、キー操作確定時に確定されたキーイベントを通知することにより、キー操作過程で発行されるキーイベントによる誤動作を防ぐことが可能となる。
(実施の形態4)
本発明の実施の形態4のキーイベント制御装置の例について説明する。
図17は、本発明の実施の形態4におけるキーイベント制御装置の構成の一例を示すブロック図である。なお、図17において、図1と同様の構成には同一の参照符号を付し、説明を省略する。
ウィンドウシステム32から通知された入力キーイベントは、キーイベント制御装置96を経由して、グラブウィンドウ10や、フォーカスウィンドウ34や、その他のウィンドウ84や、他のキーイベント制御装置83a、83bに通知される。グラブウィンドウが複数存在する場合に、グラブウィンドウ毎にキーイベント確定集合や優先取得すべきキーイベント等のキーイベント制御装置96の属性を設定できるように、1つのグラブウィンドウ毎に1つのキーイベント制御装置を使用する。その他のウィンドウ84は、グラブウィンドウでもフォーカスウィンドウでもないその他のウィンドウである。他のキーイベント制御装置83a、83bは、キーイベント制御装置96以外のキーイベント制御装置であり、グラブウィンドウ10以外のグラブウィンドウがそれぞれ使用している。なお、グラブウィンドウ10がフォーカスウィンドウ34であってもよい。
図17のキーイベント制御装置96は、優先取得受付部14と、転送要求部86と、検索部88と、優先取得要求部16と、キーイベント分配配送部90と、キーイベント転送部92と、ブロードキャスト部94と、キーイベント変換部20と、配送キーイベント決定部22と、キーイベント保持部24と、キーイベント削除部26と、保持内容クリア部28と、キーイベント取得部30とを備えている。
優先取得受付部14と、優先取得要求部16と、キーイベント変換部20と、配送キーイベント決定部22と、キーイベント保持部24と、キーイベント削除部26と、保持内容クリア部28と、キーイベント取得部30は、実施の形態1の場合と同様なので説明を省略する。
優先取得要求部16は、ユーザの操作結果に対応するキーイベントを確定するまでに発行され得る複数のキーイベント全てを纏めてキーイベント要求集合として保持しており、優先取得受付部14から通知された優先取得対象のキーイベントがキーイベント要求集合の何れかに属する場合は、そのキーイベント要求集合に属するキーイベント全てに対してウィンドウシステム32に優先取得要求する。また、その結果、優先取得要求したキーイベントが他のいずれかのキーイベント制御装置により既に優先取得されていることがウィンドウシステム32からの応答により明らかになった場合、優先取得要求部16は、検索部88にその旨を通知する。
検索部88は、グラブウィンドウ10から要求されたキーイベントが他のいずれかのキーイベント制御装置により既に優先取得されているためウィンドウシステム32への優先取得要求に失敗したことを優先取得要求部16から通知された時に、複数の他のキーイベント制御装置の中から、グラブウィンドウ10から要求されたキーイベントの優先取得に既に成功しているキーイベント制御装置を検索する。この検索方法の具体例としては、優先取得要求に成功したキーイベント制御装置の識別子を共有メモリなどに記憶しておき、その共有メモリに問合せを行う方法や、検索時に全てのキーイベント制御装置に対して検索要求をブロードキャストして、その返答を取得する方法等がある。
転送要求部86は、検索部88で見つけ出した既に優先取得に成功しているキーイベント制御装置(ここでは他のキーイベント制御装置83aとする)に対して、グラブウィンドウ10が優先取得を要求したキーイベントをキーイベント制御装置96のキーイベント取得部30に転送するように要求する。この転送要求の通知は、XWindowSystemにおけるXSendEventに代表されるようなウィンドウシステムが提供するイベント送信機能や共有メモリ等を使用して実現される。
ブロードキャスト部94は、ブロードキャストすべきキーイベントの種類を保持しており、ブロードキャストすべきキーイベントをキーイベント変換部20から取得した際に、現時点で作成されているウィンドウ全てにそのキーイベントをブロードキャストする。
キーイベント転送部92は、他のキーイベント制御装置83bの転送要求部から転送要求を受けると、要求されたキーイベントと要求元のキーイベント制御装置83bの識別子を記憶し、要求されたキーイベントを取得した場合にそのキーイベントを要求元のキーイベント制御装置83bに転送する。
キーイベント分配配送部90は、配送キーイベント決定部22で配送すべきと決定された配送キーイベント(キーイベント変換部20で配送キーイベントが変換された場合は変換後のキーイベント)を、グラブウィンドウ10とフォーカスウィンドウ34に配送する。キーイベント分配配送部90は、優先取得受付部14がグラブウィンドウ10から要求されたキーイベントはグラブウィンドウ10へ、それ以外のキーイベントはフォーカスウィンドウ34へ通知する。フォーカスウィンドウの特定には、XwindowSystemのXGetWindowFocusに代表されるようなウィンドウシステムのフォーカスウィンドウ取得機能を用いて実現される。
次に、実施の形態4におけるキーイベント優先取得要求処理の流れを図18のフローチャートを参照して説明する。なお、図18において図8と同様のステップには同一の参照符号を付し、説明を省略する。
ステップS10、ステップS12、ステップS14、ステップS16については実施の形態1と同様である。
優先取得要求部16は、ステップS14またはステップS16でウィンドウシステム32にキーイベントの優先取得要求を行った後、優先取得要求の結果をチェックする(S78)。要求したキーイベントがすでに他のキーイベント制御装置によって優先取得済みであったことにより優先取得要求が失敗した場合(S78でYES)は、優先取得要求部16は検索部88にその旨を通知する。この通知を受けて、検索部88は、要求したキーイベントを優先取得しているキーイベント制御装置を検索する(S80)。
最後に、転送要求部86が、検索部88が検索したキーイベント制御装置(ここでは他のキーイベント制御装置83aとする)に対して、グラブウィンドウ10によって優先取得要求されたキーイベントを転送するように転送要求を通知して処理を終了する(S82)。
次に、実施の形態4におけるキーイベント取得時の処理について説明する。実施の形態4では、図6のステップS111の処理が実施の形態1と異なっている。キーイベントを取得してから配送キーイベントを決定するまでの処理は図6のS101〜S110と同様のため、説明を省略する。
実施の形態4のキーイベント配送処理のフローチャートを図10に示す。まず、ブロードキャスト部94が、キーイベント変換部20から受け取った配送キーイベントをチェックし、内部で記憶しているブロードキャスト対象とするキーイベントの種類に含まれるか否かを判定する(S84)。配送キーイベントがブロードキャスト対象に含まれる場合(S84でYES)は、ブロードキャスト部94が、ウィンドウシステム32が表示する全てのウィンドウに対して配送キーイベントを配送し、処理を終了する(S86)。
一方、配送キーイベントがブロードキャスト対象に含まれない場合(S84でNO)は、ブロードキャスト部94がキーイベント転送部92に配送キーイベントを通知し、通知を受けたキーイベント転送部92は、受け取った配送キーイベントに対して、他のキーイベント制御装置から転送要求されているかどうかをチェックする(S88)。配送キーイベントが転送要求されている場合(S88でYES)は、キーイベント転送部92が、転送要求を行ったキーイベント制御装置(ここでは、他のキーイベント制御装置83bとする)に対して、配送キーイベントを配送するとともに、この配送キーイベントをキーイベント分配配送部90に通知する(S90)。次に、キーイベント分配配送部90が、キーイベント転送部92から受け取った配送キーイベントをチェックし、グラブウィンドウ10から要求されたキーイベントの種類に含まれるか否かをチェックする(S92)。配送キーイベントがグラブウィンドウ10から優先取得を要求されていた場合(S92でYES)は、キーイベント分配配送部90が、配送キーイベントをグラブウィンドウ10に配送する(S94)。一方、配送キーイベントがグラブウィンドウ10から優先取得を要求されてなかった場合(S92でNO)は、キーイベント分配配送部90が、配送キーイベントをフォーカスウィンドウ34に配送する(S96)。
以上により、キーイベント制御装置間でキーイベントの転送を行うことによって、複数のウィンドウが同時に同じキーイベントを優先取得することが可能になる。
なお、ブロードキャスト部94、検索部88、転送要求部86は、必要ない場合には無くても良い。
また、本実施の形態において、実施の形態1で説明したキーイベントのフィルタリング処理に係る部分(キーイベント変換部20、配送キーイベント決定部22、キーイベント保持部24、キーイベント削除部26、保持内容クリア部28)を実施の形態2で説明したもの(キーイベント生成部70、押下キーイベント破棄部72、押上キーイベント破棄部74)に置き換えてもよい。
(実施の形態5)
本発明の実施の形態5のキーイベント制御装置の例について説明する。
図20は、本発明の実施の形態5におけるキーイベント制御装置の構成の一例を示すブロック図である。なお、図20において、図15および図17と同様の構成には同一の参照符号を付し、説明を省略する。
実施の形態5が実施の形態3と異なる点は、キーイベント配送部18の替わりにキーイベント分配配送部90を設けた点である。キーイベント分配配送部90は、押上キーイベント処理部78または押下キーイベント処理部80から渡されたキーイベントがグラブウィンドウ10から優先取得要求されたものか否かを優先取得受付部14に問い合わせ、優先取得要求されたものであった場合は、このキーイベントをグラブウィンドウ10に配送する。一方、渡されたキーイベントがグラブウィンドウ10から優先取得要求されたものでなかった場合は、このキーイベントをフォーカスウィンドウ34に配送する。
なお、以上の実施の形態1〜5のキーイベント制御装置のそれぞれは、典型的には、演算装置と、ハードディスクやRAM等の記憶装置を備えるコンピュータと、このコンピュータに上述したフローチャートの各ステップの処理を実行させるためのプログラムとを用いて実現可能である。このとき、プログラムは、記憶装置に予め格納されていてもよいし、通信回線を通じて演算装置に供給されても良いし、CD−RやDVD等の任意の記録媒体を通じて演算装置に供給されてもよい。
本発明によれば、例えばウィンドウシステムから発行されるキーイベントのうちの所定のキーイベントだけを特定のウィンドウに優先的に配送する場合の誤動作を防止することができる。
本発明の実施の形態1に係るキーイベント制御装置の構成の一例を示すブロック図 本発明のキーイベント要求集合の一例を示す図 本発明のキーイベント要求集合の他の例を示す図 本発明のキーイベント確定集合の一例を示す図 本発明のキーイベント確定集合の他の例を示す図 本発明のキーイベント確定集合のデータ構造の一例を示す図 本発明のキーイベント保持部のデータ構造の一例を示す図 本発明の実施の形態1に係るキーイベントの優先取得要求処理の流れを示すフローチャート 本発明の実施の形態1に係るキーイベントのフィルタリング処理の流れを示すフローチャート 本発明の実施の形態2に係るキーイベント制御装置の構成の一例を示すブロック図 本発明の実施の形態2に係るキーイベントのフィルタリング処理の流れを示すフローチャート 本発明の実施の形態2に係るキーイベントのフィルタリング処理の具体例を示す図 本発明の実施の形態2に係るキーイベントのフィルタリング処理の他の具体例を示す図 本発明の実施の形態2に係るキーイベントのフィルタリング処理のさらに他の具体例を示す図 本発明の実施の形態3に係るキーイベント制御装置の構成の一例を示すブロック図 本発明の実施の形態3に係るキーイベントのフィルタリング処理の流れを示すフローチャート 本発明の実施の形態4に係るキーイベント制御装置の構成の一例を示すブロック図 本発明の実施の形態4に係るキーイベントの優先取得要求処理の流れを示すフローチャート 本発明の実施の形態4に係るキーイベント配送処理の流れを示すフローチャート 本発明の実施の形態5に係るキーイベント制御装置の構成の一例を示すブロック図 従来技術おける“長押し”・“短押し”仮想キーがサポートされる場合の処理シーケンス図 従来技術における短押し処理誤動作発生時の処理シーケンス図 従来のウィンドウシステムにおける優先取得対象外キーの誤配送発生時の処理シーケンス図
符号の説明
10 グラブウィンドウ
12 キーイベント制御装置
14 優先取得受付部
16 優先取得要求部
18 キーイベント配送部
20 キーイベント変換部
22 配送キーイベント決定部
24 キーイベント保持部
26 キーイベント削除部
28 保持内容クリア部
30 キーイベント取得部
32 ウィンドウシステム
34 フォーカスウィンドウ
36 キーイベント要求集合
38 キーイベント確定集合
40 設定管理情報
42a〜42d アドレス
44 キーイベント確定集合データ
46a〜46d アドレス
48 キーイベント情報
50 イベント種別
52 キーコード
54 保持データ
56a〜56e アドレス
58 イベントデータ
60 イベント種別
62 ウィンドウ識別子
64 イベント発生時刻
66 キーコード
68 キーイベント制御装置
70 キーイベント生成部
72 押下キーイベント破棄部
74 押上キーイベント破棄部
76 キーイベント制御装置
78 押下キーイベント処理部
80 押上キーイベント処理部
82 キーイベント取得部
83a、83b 他のキーイベント制御装置
84 その他のウィンドウ
86 転送要求部
88 検索部
90 キーイベント分配配送部
92 キーイベント転送部
94 ブロードキャスト部
96 キーイベント制御装置

Claims (13)

  1. キー操作の結果を示すキーイベントをキーの状態変化を通知するキー配送装置から取得し、当該取得したキーイベントを所定の配送先プログラムに配送するキーイベント制御装置であって、
    第1の配送先プログラムから、所望のキーイベントを前記キー配送装置によるキーイベントの通常の配送先である第2の配送先プログラムより優先して取得したい旨の要求を受け付ける優先取得受付部と、
    ユーザのキー操作結果に対応するキーイベントを確定するまでに発行され得る複数のキーイベントからなる、少なくとも1つのキーイベント要求集合を保持し、当該少なくとも1つのキーイベント要求集合のうちの、前記所望のキーイベントを含むキーイベント要求集合に属する全てのキーイベントを当該キーイベント制御装置に通知するよう前記キー配送装置に要求する優先取得要求部とを備えたキーイベント制御装置。
  2. 前記所望のキーイベントについては当該第1の配送先プログラムに、その他のキーイベントについては前記第2の配送先プログラムに配送するキーイベント分配配送部とをさらに備えた、請求項1に記載のキーイベント制御装置。
  3. 前記優先取得要求部が前記キー配送装置にその通知を要求したキーイベントが、前記キー配送装置においてすでに他のキーイベント制御装置に優先的に通知するように指定されていた場合に、そのキーイベント制御装置を検索する検索部と、
    前記検索部によって検出されたキーイベント制御装置に対し、前記キーイベントを転送するように要求する転送要求部と、
    他のキーイベント制御装置から所定のキーイベントの転送を要求された場合に、当該所定のキーイベントを当該他のキーイベント制御装置に転送するキーイベント転送部とをさらに備えた、請求項1に記載のキーイベント制御装置。
  4. 所定のキーイベントを全ての配送先プログラムに配送するブロードキャスト部をさらに備えた、請求項1に記載のキーイベント制御装置。
  5. 前記キー配送装置から通知されるキーイベントのうち、単独ではキー操作が確定できないキーイベントを保持しておくキーイベント保持部と、
    キー操作を確定するために必要となる複数のキーイベントにより構成される、少なくとも1つのキーイベント確定集合を保持し、前記キーイベント保持部に前記少なくとも1つのキーイベント確定集合のいずれかを構成する全てのキーイベントが保持されたときに、当該キーイベントを配送キーイベントとして決定する配送キーイベント決定部と、
    前記配送キーイベントを、前記第1の配送先プログラムに配送するキーイベント配送部とをさらに備えた、請求項1に記載のキーイベント制御装置。
  6. 前記キー配送装置は、キーの押下を通知する押下キーイベントとキーの押上を通知する押上キーイベントを発行し、かつキーを押す長さに応じて異なるキーイベントを発行するものであり、
    当該キーイベント制御装置は、
    前記キー配送装置から前記押下キーイベントが通知された場合に、それ以降に前記キー配送装置から発行される、当該押下キーイベントを発行するために必要な押下時間より短い押下時間で発行される押下キーイベントと対となる押上キーイベントを破棄する押上キーイベント破棄部と、
    キーを最も長い時間押し続けた場合に発行される押下キーイベント以外の押下キーイベントを破棄する押下キーイベント破棄部と、
    前記押上キーイベント破棄部によって破棄されなかった押上キーイベントであって、キーを最も長い時間押し続けた場合に発行されるもの以外の押上キーイベントと対となる押下キーイベントを生成するキーイベント生成部と、
    前記キー配送装置から通知されたキーイベントのうち前記押上キーイベント破棄部および前記押下キーイベント破棄部によって破棄されなかったキーイベントと、前記キーイベント生成部によって生成されたキーイベントとを前記第1の配送先プログラムに配送するキーイベント配送部をとをさらに備えた、請求項1に記載のキーイベント制御装置。
  7. 前記キー配送装置から特定のキーイベントが通知されたことを受けて、前記キーイベント保持部が保持する任意のキーイベントを削除するキーイベント削除部をさらに備えた、請求項6に記載のキーイベント制御装置。
  8. 前記配送キーイベントを特定のキーイベントに変換してから前記キーイベント配送部に通知するキーイベント変換部をさらに備えた、請求項6に記載のキーイベント制御装置。
  9. 前記キー配送装置から当該キーイベント制御装置にキーイベントが一定時間通知されなかったときに前記キーイベント保持部が保持しているキーイベントを全て削除する保持内容クリア部をさらに備えた、請求項6に記載のキーイベント制御装置。
  10. 前記キー配送装置は、キーの押下を通知する短押下キーイベントとキーの押上を通知する短押上キーイベントを発行するものであり、かつキーを一定時間押し続けた時にキーが長押しされたことを通知する長押下キーイベントを発行し、その後当該キーが離されたときに長押上キーイベントを発行するものであり、
    当該キーイベント制御装置は、
    配送先プログラムにキーイベントを配送するキーイベント配送部と、
    前記キー配送装置から通知されるキーイベントのうち、単独ではキー操作が確定できないキーイベントを保持しておくキーイベント保持部と、
    前記キー配送装置から前記長押下キーイベントが通知されたときに前記キーイベント保持部が保持しているキーイベントを削除し、当該長押下キーイベントを前記キーイベント配送部を用いて前記第1の配送先プログラムに配送する押下キーイベント処理部と、
    前記長押上キーイベントを取得した時に当該長押上キーイベントを前記キーイベント配送部を用いて前記第1の配送先プログラムに配送し、前記短押上キーイベントを取得しかつ前記キーイベント保持部に当該短押下キーイベントが保持されている時に当該短押下キーイベントと当該短押上キーイベントを前記キーイベント配送部を用いて前記第1の配送先プログラムに配送し、前記短押上キーイベントを取得しかつ前記キーイベント保持部に当該短押下キーイベントが保持されていないときに当該短押上キーイベントを破棄する押上キーイベント処理部とをさらに備えた、請求項1に記載のキーイベント制御装置。
  11. 前記キー配送装置がウィンドウシステムである、請求項1に記載のキーイベント制御装置。
  12. キー操作の結果を示すキーイベントをキーの状態変化を通知するキー配送装置から取得し、当該取得したキーイベントを所定の配送先プログラムに配送するキーイベント制御方法であって、
    第1の配送先プログラムから、所望のキーイベントを前記キー配送装置によるキーイベントの通常の配送先である第2の配送先プログラムより優先して取得したい旨の要求を受け付ける優先取得受付ステップと、
    ユーザの操作結果に対応するキーイベントを確定するまでに発行され得る複数のキーイベントからなるキーイベント要求集合であって、前記所望のキーイベントを含むキーイベント要求集合に属する全てのキーイベントの通知を前記キー配送装置に要求する優先取得要求ステップとを備えたキーイベント制御方法。
  13. キー操作の結果を示すキーイベントをキーの状態変化を通知するキー配送装置から取得し、当該取得したキーイベントを所定の配送先プログラムに配送するためのキーイベント制御プログラムであって、コンピュータに、
    第1の配送先プログラムから、所望のキーイベントを前記キー配送装置によるキーイベントの通常の配送先である第2の配送先プログラムより優先して取得したい旨の要求を受け付ける優先取得受付ステップと、
    ユーザの操作結果に対応するキーイベントを確定するまでに発行され得る複数のキーイベントからなるキーイベント要求集合であって、前記所望のキーイベントを含むキーイベント要求集合に属する全てのキーイベントの通知を前記キー配送装置に要求する優先取得要求ステップとを実行させるためのキーイベント制御プログラム。
JP2004542821A 2002-10-03 2003-10-02 キーイベント制御装置 Expired - Fee Related JP4182057B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002290902 2002-10-03
PCT/JP2003/012627 WO2004034257A1 (en) 2002-10-03 2003-10-02 A key event controlling apparatus

Publications (3)

Publication Number Publication Date
JP2006502651A true JP2006502651A (ja) 2006-01-19
JP2006502651A5 JP2006502651A5 (ja) 2006-08-10
JP4182057B2 JP4182057B2 (ja) 2008-11-19

Family

ID=32089160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004542821A Expired - Fee Related JP4182057B2 (ja) 2002-10-03 2003-10-02 キーイベント制御装置

Country Status (8)

Country Link
US (1) US7486276B2 (ja)
EP (1) EP1546872B1 (ja)
JP (1) JP4182057B2 (ja)
KR (1) KR20050056164A (ja)
CN (1) CN1333335C (ja)
AU (1) AU2003269490A1 (ja)
DE (1) DE60320570T2 (ja)
WO (1) WO2004034257A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019123603A1 (ja) * 2017-12-21 2019-06-27 三菱電機株式会社 通知制御装置及び通知制御方法
JPWO2020100404A1 (ja) * 2018-11-15 2021-10-07 京セラドキュメントソリューションズ株式会社 電子機器及び画像形成装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100687886B1 (ko) * 2005-12-28 2007-02-27 주식회사 알티캐스트 텔레비전 환경에서 사용자 화면에 디스플레이되는 팝업창관리 방법
US8281041B2 (en) * 2006-11-22 2012-10-02 Carefusion 303, Inc. System and method for preventing keypad entry errors
US8699711B2 (en) 2007-07-18 2014-04-15 Interdigital Technology Corporation Method and apparatus to implement security in a long term evolution wireless device
JP4771431B2 (ja) * 2007-09-20 2011-09-14 Kddi株式会社 オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム
ES2646750T3 (es) 2010-01-26 2017-12-15 Anthrogenesis Corporation Tratamiento de cánceres relacionados con hueso utilizando células madre placentarias
US9134807B2 (en) 2012-03-02 2015-09-15 Microsoft Technology Licensing, Llc Pressure sensitive key normalization
USRE48963E1 (en) 2012-03-02 2022-03-08 Microsoft Technology Licensing, Llc Connection device for computing devices
CN103942047A (zh) * 2014-03-28 2014-07-23 小米科技有限责任公司 用户指令执行方法及装置
CN106155647A (zh) * 2015-03-31 2016-11-23 北京奇虎科技有限公司 一种键鼠操作回放的方法和装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896290A (en) * 1987-08-24 1990-01-23 Wang Laboratories, Inc. Method for routing events from key strokes in a multi-processing computer systems
JPH0215326A (ja) 1988-07-04 1990-01-19 Matsushita Electric Ind Co Ltd ウィンドウ制御システム
JPH02139625A (ja) 1988-11-19 1990-05-29 Fujitsu Ltd 画面表示方式
JP2563536B2 (ja) 1988-11-21 1996-12-11 松下電器産業株式会社 マルチウインドウイベント管理装置
JPH02151128A (ja) 1988-12-02 1990-06-11 Hitachi Ltd キーコード生成方式
US5252951A (en) * 1989-04-28 1993-10-12 International Business Machines Corporation Graphical user interface with gesture recognition in a multiapplication environment
US5721850A (en) * 1993-01-15 1998-02-24 Quotron Systems, Inc. Method and means for navigating user interfaces which support a plurality of executing applications
DE4325522C1 (de) 1993-07-30 1994-11-17 Schunk Kohlenstofftechnik Gmbh Tiegel, insbesondere Stütztiegel
US5525978A (en) * 1994-02-28 1996-06-11 Hewlett-Packard Company Graphical key manager for computer
JP2666731B2 (ja) 1994-08-04 1997-10-22 日本電気株式会社 複数ウインドウに対する入力装置
US5675329A (en) * 1996-05-09 1997-10-07 International Business Machines Corporation Method of obtaining a second function from keys on a keyboard using pressure differentiation
JP2000259313A (ja) 1999-03-10 2000-09-22 Hitachi Ltd プラント監視画面制御方法
KR100547767B1 (ko) * 1999-04-02 2006-02-01 삼성전자주식회사 휴대폰에서 다기능키 이용방법
JP2000353357A (ja) * 1999-06-11 2000-12-19 Sony Corp 電子装置及び操作仕様変更方法
JP2003162356A (ja) 2001-11-28 2003-06-06 Nec Corp スクロール制御装置及びその方法並びにそれを用いた通信端末

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019123603A1 (ja) * 2017-12-21 2019-06-27 三菱電機株式会社 通知制御装置及び通知制御方法
JPWO2020100404A1 (ja) * 2018-11-15 2021-10-07 京セラドキュメントソリューションズ株式会社 電子機器及び画像形成装置
JP7081684B2 (ja) 2018-11-15 2022-06-07 京セラドキュメントソリューションズ株式会社 電子機器及び画像形成装置

Also Published As

Publication number Publication date
JP4182057B2 (ja) 2008-11-19
US7486276B2 (en) 2009-02-03
WO2004034257A1 (en) 2004-04-22
DE60320570T2 (de) 2009-06-04
CN1333335C (zh) 2007-08-22
EP1546872B1 (en) 2008-04-23
AU2003269490A1 (en) 2004-05-04
DE60320570D1 (de) 2008-06-05
EP1546872A1 (en) 2005-06-29
CN1692333A (zh) 2005-11-02
KR20050056164A (ko) 2005-06-14
US20050177797A1 (en) 2005-08-11

Similar Documents

Publication Publication Date Title
JP5594049B2 (ja) 仮想計算機移動方法、コンピュータ及びプログラム
JP6963168B2 (ja) 情報処理装置、メモリ制御方法およびメモリ制御プログラム
CN105138587B (zh) 数据访问方法、装置和系统
JP5623139B2 (ja) クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
US8996469B2 (en) Methods and apparatus for job state tracking in cluster computing
JP6447217B2 (ja) 実行情報通知プログラム、情報処理装置および情報処理システム
CN101533417A (zh) 一种实现etl调度的方法及系统
JP4182057B2 (ja) キーイベント制御装置
US9804889B2 (en) Methods and apparatus for state objects in cluster computing
CN109804354A (zh) 用于消息队列的消息高速缓存管理
JP2007193471A (ja) 予約管理プログラム、予約管理装置、および予約管理方法
CN103312624A (zh) 一种消息队列服务系统和方法
JP6405255B2 (ja) 通信システム、キュー管理サーバ、及び、通信方法
CN103297490B (zh) 信息处理装置、分布式处理系统和分布式处理方法
JP2004046372A (ja) 分散処理システム、リソース割当方法およびプログラムならびにリソース割当プログラムが記録された記録媒体
WO2013145129A1 (ja) データベース管理方法、プログラム、および情報処理装置
JP5331549B2 (ja) 分散処理システム及び分散処理方法
JP2008304981A (ja) ディレクトリ情報の管理方法、及びディレクトリ情報の管理システム
JP2010152435A (ja) 情報処理装置及び情報処理方法及びプログラム
JP6127754B2 (ja) プログラム、排他制御要求振り分け方法およびシステム
JP2008282428A (ja) コンテンツデータ提供装置およびネットワークシステム
JP5247622B2 (ja) データベースサーバ、データ振分方法及びサーバシステム
US20230176908A1 (en) Systems, methods and computer program products for job management
JP2018530796A (ja) 複数のスレッドを実行するための装置および方法
JP4145821B2 (ja) コネクション管理機能を備えたクライアント、サーバ、システム、コネクション管理方法、及びそのプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080714

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080901

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees