DE19636923A1 - Verfahren und Vorrichtung zur gemeinsamen Benutzung von Eingabevorrichtungen durch mehrere unabhängige Graphik-Anzeigevorrichtungen - Google Patents
Verfahren und Vorrichtung zur gemeinsamen Benutzung von Eingabevorrichtungen durch mehrere unabhängige Graphik-AnzeigevorrichtungenInfo
- Publication number
- DE19636923A1 DE19636923A1 DE19636923A DE19636923A DE19636923A1 DE 19636923 A1 DE19636923 A1 DE 19636923A1 DE 19636923 A DE19636923 A DE 19636923A DE 19636923 A DE19636923 A DE 19636923A DE 19636923 A1 DE19636923 A1 DE 19636923A1
- Authority
- DE
- Germany
- Prior art keywords
- cursor
- transition window
- screen
- data
- display
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0489—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Input (AREA)
- Position Input By Displaying (AREA)
- Computer And Data Communications (AREA)
Description
Die Erfindung bezieht sich auf ein unabhängiges Graphik-Anzeigesystem, das sich
Eingabevorrichtungen mit anderen unabhängigen Graphik-Anzeigesystemen teilen bzw.
mit diesen gemeinsam benutzen kann. Genauer gesagt bezieht sich die Erfindung auf eine
Vorrichtung mit einer Software, die die gleichzeitige Verwendung einer Maus durch
mehrere unabhängige Graphik-Anzeigevorrichtungen ermöglicht.
Die Verwendung einer Maus mit einem entsprechendem Cursor auf einem Anzeige
Terminal in Zusammenwirkung mit einem Computerprogramm ist gut bekannt. Die
Verwendung eines Keyboards zur Eingabe von Text oder anderen Daten und/oder
Bewegung eines Cursors auf einem Anzeige-Terminal ist ebenfalls gut bekannt. Bei
gewissen Verwendungen ist es wünschenswert, mehrere Anzeige-Terminals zu haben, die
körperlich aneinander angrenzend angeordnet sind, so daß sie in Verbindung miteinander
verwendet werden können. Ein Beispiel für solch eine Verwendung ist die Luftraum-
Überwachung. Insbesondere können mehrere Anzeige-Terminals zur Darstellung eines
Teiles eines großen Luftraumes um einen Flughafen herum verwendet werden. Jedes
Terminal zeigt einen Teil des gesamten Luftraumes an, der überwacht werden soll. Die
mehreren Terminals zeigen zusammen den gesamten Luftraum an. Unter normalen
Bedingungen kann einem Fluglotsen (Luftraumüberwacher) ein Abschnitt des Luftraumes
zugewiesen sein, der durch ein einziges Anzeige-Terminal dargestellt wird.
Der Fluglotse hat ein Keyboard und eine Maus zur Verwendung in Verbindung mit dem
speziellen Anzeige-Terminal. Beispielsweise wenn eine Bildschirmmarkierung (eine
Anordnung aus erleuchteten Pixeln) auf dem Anzeige-Bildschirm erscheint, die ein
Luftfahrzeug darstellt, kann der Fluglotse seine Maus bewegen, um den Maus-Cursor über
die Bildschirmmarkierung zu bewegen und sie zur Öffnung eines Blocks zur Eingabe von
Information anzuklicken. Der Fluglotse könnte dann die Tastatur (Keyboard) zur Eingabe
von Information hinsichtlich der Bildschirmmarkierung verwenden, wie beispielsweise
Information, die die Luftfahrtlinie und die Flugnummer des durch die
Bildschirmmarkierung dargestellten Flugzeugs oder andere Information identifiziert.
Normalerweise ist jedem Anzeige-Terminal ein separater Arbeitsplatzrechner (Work
Station) zugeordnet, der eine Tastatur und eine Maus aufweist.
Oft ist es wünschenswert, daß ein Fluglotse den Luftraum überwacht, der durch mehrere
Anzeige-Bildschirme dargestellt wird. In solch einer Situation wäre es äußerst unbequem,
wenn der Fluglotse Keyboards und Mausvorrichtungen jedesmal umschalten müßte, wenn
er Daten an unterschiedlichen Anzeige-Bildschirmen/Arbeitsplatzrechnern eingeben müßte;
Dementsprechend sind aus dem Stand der Technik Systeme bekannt, die es ermöglichen,
daß das Keyboard und eine Maus eines einzigen Arbeitsplatzrechners mehrere Anzeige
Terminals steuern. In solchen Systemen wird eine Anzeige-Steuerkarte für jedes Anzeige
Terminal in einen separaten Schlitz eines einzelnen Arbeitsplatzrechners eingesteckt. Eine
spezielle Verbindungssoftware läuft auf diesem Arbeitsplatzrechner, die sämtliche
Anzeige-Karten miteinander verbindet und die Verwendung des einzigen Keyboards der
Maus die dem Arbeitsplatzrechner zugeordnet sind, in Verbindung mit jedem dieser
Arbeitsplatzrechner zugeordneten Anzeige-Terminals ermöglicht.
Ein Nachteil dieser Art von System ist es, daß verschiedene Anzeige-Terminals von der
Verbindungs-Software unterstützt werden müssen. In der Praxis bedeutet dies
normalerweise, daß die Anzeige-Terminals identisch sein müssen oder wenigstens von dem
gleichen Hersteller stammen müssen. Weiterhin verwendet die Verbindungs-Software oft
Erweiterungen der grundlegenden Anzeige-Sprache. Beispielsweise verwendet Anzeige
Software zur Luftraumüberwachung die Sprache und das Protokoll von X-Windows, das
212 standardisierte Befehle umfaßt. Indessen verwendet Vielfach-Bildschirm-
Steuersoftware oft Erweiterungen der Grundsprache. Solche Software kann nur mit
Anzeigen und Graphik-Steuerkarten verwendet werden, die diese speziellen Erweiterungen
unterstützen. Dies beschränkt die Auswahl der Anzeige-Terminals wesentlich.
Fig. 1 ist ein Software-Blockschaltbild, das die wesentlichen Elemente eines
beispielsweisen Computer-Anzeigesystems, wie beispielsweise eines Luftfahrt-
Überwachungssystems darstellt, das die Sprache und das Protokoll von X-Windows
verwendet. Bei dem Software-Blockschaltbild dieser Anwendung sind Elemente, die durch
rechteckige Zeichen dargestellt sind, Hardware, und Elemente, die durch ovale Elemente
oder Kreise dargestellt sind, sind Software. Einem Hauptrechner (Host-Computer) 10 ist
ein Keyboard (Tastatur) 12, eine Maus 14 und ein Anzeige-Terminal 16 zugeordnet. Auf
dem Host-Computer 10 laufen verschiedene Software einschließlich eines Betriebssystems
18, beispielsweise UNIX, mehrere Anwendungs(oder Kunden-)-Programme 20a, 20b und
20c und ein X-Server-Programm 22. Die Kunden-Software kann beispielsweise ein
Luftfahrtüberwachungs-Systemprogramm, ein Textverarbeitungs-Programm, ein
Tabellenkalkulations-Programm, usw. umfassen.
Die X-Server-Software 22 enthält einen Treiber 24 zur Ansteuerung der Anzeige 16. Im
wesentlichen erhält der X-Server Daten von den Eingabevorrichtungen (beispielsweise des
Keyboards und der Maus) durch das Betriebssystem sowie X-Befehle von den Kunden-
Programmen und verarbeitet diese Befehle und Daten zur entsprechenden Ansteuerung der
Anzeige. Der X-Server kann weiterhin X-Protokollinformation (abgeschlossene
Ereignisse) zu dem Kunden- oder Betriebssystem entweder direkt von dem X-Server oder
von der Anzeige durch den X-Server schicken.
Ein Datenfluß von dem X-Server zu dem Kunden- oder Betriebssystem tritt typischerweise
beispielsweise abhängig davon auf, daß der X-Server Cursor-Bewegungsdaten von einer
Maus erhält. Genauer gesagt müssen Anwendungsprogramme typischerweise wissen, wo
der Maus-Cursor auf dem Bildschirm erscheint. Wenn somit der X-Server Maus-
Bewegungsdaten von der Maus erhält, sendet er typischerweise Ereignisse zu einer oder
mehreren Anwendungsprogrammen aus, die sie über die Bewegung und/oder Position des
Cursors informieren.
Das Keyboard 12 und die Maus 14 stehen durch das UNIX-Programm und dem X-Server
22 mit der Kunden-Software 20a, 20b, 20c und der Anzeige 16 in Verbindung. Die
Kunden-Programme und die UNIX-Software 18 stehen mit dem Anzeige-Terminal 16
durch die X-Server-Software in Verbindung. Insbesondere kann jeder Kunde X-Windows-
Befehle zu dem X-Server 22 senden. Die X-Server-Software 22 nimmt die Befehle auf und
steuert das Anzeige-Terminal 16 wie durch die Befehle vorgegeben an, die von den
Kunden-Programmen erhalten wurden. Einige X-Protokoll-Befehl benötigen Antworten
entweder von dem X-Server oder von der Anzeigevorrichtung (durch den X-Server).
Dementsprechend sind die Kommunikationswege zwischen den Kunden-Programmen und
dem X-Server bidirektional dargestellt.
Wie im folgenden genauer beschrieben werden wird, kann ein einziger X-Server eine
einzige Anzeige (wie in Fig. 1 gezeigt) oder mehrere Anzeigen steuern. Weiterhin kann ein
Kundenprogramm mit einem oder mehreren X-Servern in Verbindung stehen.
Dementsprechend kann ein Kundenprogramm Anzeigenveränderungen an mehreren
Anzeigen entweder durch einen oder beiden dieser Mechanismen verursachen. Weiterhin
kann ein Kunden-Programm mit X-Servern kommunizieren und an dem gleichen oder an
verschiedenen Host-Computern anzeigen. Natürlich ist zur Kommunikation mit X-Servern
und Anzeige an verschiedenen Host-Computern der Computer, auf dem das Kunden-
Programm geladen ist und der Computer, auf dem der spezielle X-Server geladen ist,
durch ein Verbindungselement, wie beispielsweise durch ein lokales Netz (LAN) zu
verbinden.
Tatsächlich können mehrere Kunden-Programme auf mehreren verschiedenen Host-
Computern durch ein LAN oder ein anderes Verbindungselement mit einem oder mehreren
X-Servern (wobei jeder Server ein oder mehrere Anzeige-Terminals ansteuert) auf anderen
Host-Computern (oder einem freistehenden X-Terminal) kommunizieren.
X-Windows stellt eine variable Umgebung bereit, die es dem Kunden-Programm gestattet,
die Anzeige festzulegen, zu der Daten oder Befehle geschickt werden sollen. Insbesondere
stellt X-Windows eine Umgebung bereit, die DISPLAY genannt wird. Auf die Variable
DISPLAY folgt ein Host-Name (der beispielsweise eine Ethernet-Adresse ist, die den
Host-Computer oder das X-Terminal identifiziert, das die Anzeige enthält, mit der es
kommunizieren will). Auf den Host-Namen folgt eine Server-Nummer und eine Anzeige
Nummer. Somit spezifiziert durch Identifizierung des Host-Computers, des Servers auf
dem Host-Computer und der Anzeige auf diesem Server die DISPLAY-
Umgebungsvariable eine spezielle Anzeige, zu der sie X-Protokoll-Befehle sendet.
Natürlich kann bei Bedarf ein Kunden-Programm mehr als eine Anzeige spezifizieren.
Alternativ kann die spezielle Anzeigevorrichtung durch einen Lauf-String-Parameter
spezifiziert werden.
Indessen verwendet allgemein die Kunden-Software verschiedene Erweiterungen der
Standard-X-Windows-Sprache. Dementsprechend müssen die Anzeige-Terminals und
weitere Hardware-Bestandteile, die in dem System verwendet werden, ebenfalls die
spezifischen Spracherweiterungen unterstützen, die durch die Kunden-Software verwendet
wird. Wenn solche Erweiterungen unterstützt werden müssen, beschränkt dies wesentlich
die Hardware-Auswahl, die für einen System-Designer verfügbar ist. Gewisse X-
Erweiterungsgruppen sind standardisiert und gut bekannt. Andere können vollständig
kundenspezifiziert sein.
Die X-Windows-Sprache stellt einen Mechanismus bereit, durch den eine einzige Maus
simultan in Verbindung mit mehreren Bildschirmen verwendet werden kann, so daß ein
einziger Maus-Cursor und eine Tastatur sich über verschiedenen Bildschirmen bewegen
kann. Dies ist als vielfach(Multi)-Bildschirmmodus bekannt.
Fig. 2 zeigt im wesentlichen ein System, bei dem ein einziges Keyboard und eine Maus
gemeinsam mit mehreren Bildschirmen in einem X-Windows-Vielfachbildschirm-Modus
verwendet werden. In diesem Beispiel läuft auf einem Host-Computer 20 ein
Betriebssystem 22, wie beispielsweise UNIX. Auf dem Host-Computer 20 laufen weiterhin
ein oder mehrere Anwendungsprogramme, wie beispielsweise ein Luftfahrt-
Kontrollprogramm 24. X-Server-Software 26 bildet die Schnittstelle zwischen den
Bildschirmen 28, 30 und 32 und dem Kunden-Programm 24. Eine Tastatur 34 und eine
Maus 36 sind mit dem Host-Computer 20 verbunden.
Die Maus und das Keyboard können zur Eingabe von Befehlen oder Daten verwendet
werden, die durch die Kunden-Programme verwendet werden. Wie zuvor angemerkt,
stehen das Keyboard und die Maus mit den Kunden-Anwendungsprogrammen und dem
Anzeigebildschirm durch die Betriebssystem-Software und die X-Server-Software in
Verbindung.
In dem Vielfachbildschirm-Modus werden mehrere Bildschirme durch einen einzigen X-
Server angesteuert, so daß ein einziger Maus-Cursor von Bildschirm zu Bildschirm bewegt
werden kann. Mit anderen Worten, wenn wie in Fig. 2 dargestellt die Maus auf dem
Bildschirm 28 nach rechts zu der rechtesten Kante des Bildschirmes 28 bewegt wird,
verschwindet sie von dem Bildschirm 28 und erscheint an der linkesten Kante des
Bildschirmes 30. Wenn der Cursor sich weiter nach rechts über den Bildschirm 30 bewegt
und die rechteste Kante des Bildschirmes erreicht, erscheint sie in der Art eines Umbruchs
an der linkesten Kante des Bildschirmes 28 und bewegt sich weiterhin nach rechts über den
Bildschirm 28. Das Keyboard kann der Maus von Bildschirm zu Bildschirm folgen, so daß
die Betätigung von Keyboardtasten sich auf den Bildschirm (und die Kunden-Programme,
die mit dem Bildschirm in Verbindung stehen) auswirken, auf dem der Maus-Cursor
erscheint.
Einige der Probleme im Zusammenhang mit der Verwendung des Vielfachbildschirm-
Modus von X-Windows sind in Fig. 3 dargestellt. In Fig. 3 sind die Bildschirme 40 und 42
unterschiedlichen Typs (d. h. beispielsweise von unterschiedlicher Größe und Herstellern).
Der Host-Computer enthält eine Graphik-Steuerkarte 48 und 50 für jeden Bildschirm. Jede
Graphik-Steuerkarte wird durch den Hersteller der Anzeigevorrichtung (Bildschirm)
bereitgestellt, den sie steuert, und unterscheidet sich von der anderen. Der X-Server
enthält unterschiedliche Bestandteile an Treiber-Software 44 und 46 zur Ansteuerung von
jeder Graphik-Steuerkarte 48 bzw. 50. Dementsprechend muß die X-Server-Software für
den speziellen Bildschirm oder die Bildschirme entwickelt werden, die durch sie
angesteuert werden. Wann immer somit ein Bildschirm oder eine Graphik-Steuerkarte
ersetzt oder modifiziert werden, muß ebenfalls die X-Server-Software ersetzt oder
modifiziert werden.
In der Softwareindustrie und insbesondere in der Graphik-Anzeigeindustrie werden
Produkte im Schnitt ungefähr alle zwei Jahre erneuert oder ersetzt. Dementsprechend ist
es wünschenswert, möglichst viel Unabhängigkeit zwischen Software-Bestandteilen zu
haben, so daß bei dem Ersatz oder der Modifizierung eines Software-Bestandteils die
anderen Software-Bestandteile nicht ersetzt oder modifiziert werden müssen. Indessen wie
in Fig. 3 dargestellt muß, wann immer ein Bildschirm oder eine Graphik-Steuerkarte
ersetzt oder modifiziert werden, ebenfalls die X-Server-Software ersetzt oder modifiziert
werden.
Dementsprechend ist es Aufgabe der vorliegenden Erfindung, ein verbessertes Graphik-
Anzeigeverfahren und -vorrichtung zu schaffen, bei denen Keyboards und
Mausvorrichtungen für verschiedene unabhängige Anzeigevorrichtungen gemeinschaftlich
verwendet werden können.
Insbesondere ist es Gegenstand der vorliegenden Erfindung, ein Verfahren und eine
Vorrichtung zur unabhängigen Graphikanzeige zu schaffen, die die Verwendung eines
einzigen Keyboards und/oder einer Maus mit mehreren nicht in Beziehung stehenden
Anzeige-Terminals in Verbindung mit einem Multibildschirm-Betrieb gestattet.
Es ist ein weiterer Gegenstand der vorliegenden Erfindung, ein Verfahren und eine
Vorrichtung für eine unabhängige Graphik-Anzeige zu schaffen, die die Verwendung eines
einzigen Keyboards und/oder Maus in Verbindung mit einer großen Anordnung an
Anzeige-Terminals gestattet, die durch unterschiedliche Hersteller hergestellt wurden,
ohne daß die X-Server-Software zur Ansteuerung der Anzeige-Terminals
kundenspezifiziert werden muß.
Es ist ein weiterer Gegenstand der vorliegenden Erfindung, ein Verfahren und eine
Vorrichtung zur unabhängigen Graphik-Anzeige zu schaffen, die die Steuerung von
mehreren unterschiedlichen Anzeige-Terminals durch ein einziges Keyboard und/oder
Maus unter Verwendung nur von Standard-X-Windows-Softwarebefehlen gestatten.
Die Erfindung besteht in einem Verfahren und einer Vorrichtung, die die Verwendung
eines einzigen Keyboards und/oder Maus in Verbindung mit einem ersten
Arbeitsplatzrechner in einem Vielfachbildschirm-Modus mit mehreren uneinheitlichen
Anzeige-Terminals (Bildschirmen) gestattet, die mit mehreren X-Servern verbunden sind,
die an mehreren Arbeitsplatzrechnern geladen sind. Wenn beispielsweise ein Verwender
eine Maus betätigt, um den Maus-Cursor über ein erstes Anzeige-Terminal von links nach
rechts zu bewegen, wird der Cursor womöglich die rechte Kante der Anzeige erreichen.
Normalerweise beendet der Maus-Cursor seine Bewegung nach rechts, wenn er die rechte
Kante der Anzeige erreicht, selbst wenn der Benutzer die Maus weiter nach rechts
bewegen möchte. Gemäß der vorliegenden Erfindung läßt ein Software-Aufbau den Maus-
Cursor von der ersten Anzeige verschwinden und ihn an der linkesten Kante einer zweiten
Anzeige wieder erscheinen, so daß er sich über die zweite Anzeige nach rechts bewegt.
Das Keyboard folgt automatisch dem Maus-Cursor zu dem neuen Bildschirm, so daß die
Betätigung des Keyboards die Daten beeinflußt, die nur auf dem Bildschirm angezeigt sind,
innerhalb dem der Maus-Cursor zur Zeit erscheint.
Ein Teil der Software (im folgenden als periphere Manager-Software bezeichnet), die
separat von jeder X-Server-Software oder Anzeigesteuerungs-Software ist, läuft auf einem
speziellen Arbeitsplatzrechner (Workstation), um einen solchen Betrieb zu ermöglichen.
Jeder X-Server weist einen Treiber zum Ansteuern von einer oder mehreren Graphik-
Steuerkarten auf. Jede Karte ist einem der Bildschirme zugeordnet. Jeder X-Server ist
weiterhin mit einem oder mehreren Kunden-Programmen, wie beispielsweise einem
Luftfahrt-Überwachungsprogramm verbunden. Einer der Anzeige-Bildschirme wird als
erster Bildschirm gewählt, und alle übrigen Bildschirme werden als zweite (sekundäre)
Bildschirme betrachtet. Die periphere Manager-Software wird durch die X-Server als ein
weiteres Kunden-Programm behandelt. Wenn der Cursor auf dem ersten Anzeige
Bildschirm ist, stehen die Maus und das Keyboard mit den Kunden-Programmen und der
Anzeige durch einen X-Server in der üblichen Weise in Verbindung, wobei der periphere
Manager nur die X-Ereignisse von dem X-Server beobachtet, die den Cursor betreffen, der
ein vordefiniertes Übergangsfenster auf dem Bildschirm eintritt. Ein Übergangsfenster ist
die Gesamtheit oder ein Abschnitt einer Kante des Bildschirmes, die als Grenzlinie
zwischen dem Bildschirm und einem weiteren Bildschirm festgelegt wurde.
Für den Fall, daß der Cursor ein Übergangsfenster zu einem sekundären Bildschirm betritt,
gibt der periphere Manager einen GRAB-Keyboardbefehl aus und einen GRAB-
Mausbefehl zu dem X-Server für den ersten Bildschirm aus, wodurch er alle Keyboard-
und Maus-Ereignisse unterbricht (abfängt) und keinem weiteren Kunden den Empfang von
diesen ermöglicht.
Dann maskiert er den Cursor auf dem ersten Bildschirm, um ihn von dem ersten Bildschirm
verschwinden zu lassen, und zieht einen Maus-Cursor und positioniert ihn an einer
geeigneten Stelle auf dem sekundären Bildschirm. Er simuliert dann alle empfangenen
Maus- und Keyboard-Ereignisse, die von dem X-Server des ersten Bildschirmes
abgefangen wurden und sendet sie zu dem X-Server, der dem zweiten Bildschirm
zugeordnet ist. Der einem zweiten Bildschirm zugeordnete X-Server kann der gleiche X-
Server sein, der dem ersten Bildschirm zugeordnet ist. In solchen Fällen wird der
Bildschirm-Identifizierungsabschnitt des Befehls geändert, so daß er den zweiten anstelle
des ersten Bildschirmes identifiziert.
Weiterhin repositioniert der periphere Manager den nun sichtbaren Cursor auf dem ersten
Bildschirm zu der gleichen relativen Position, wenn der Punkt auf dem zweiten Bildschirm
erscheint. Diese letzte Funktion wird durchgeführt, da die Cursorbewegung durch den
peripheren Manager weiterhin auf dem ersten Bildschirm verfolgt wird und auf dem
zweiten Bildschirm simuliert wird. Dementsprechend muß die relative Position des
unsichtbaren Cursors auf dem ersten Bildschirm dem sichtbaren Cursor auf dem zweiten
Bildschirm entsprechen.
Wenn der erste und der zweite Bildschirm nicht die gleiche Größe und Auflösung haben,
können die simulierten Ereignisse bezüglich der Originalereignisse skaliert werden.
Der X-Server für den zweiten Bildschirm glaubt im wesentlichen, daß er Keyboard- und
Maus-Ereignisse in der normalen Weise erhält. Alle Keyboard- und Maus-Ereignisse von
dem X-Server des ersten Bildschirmes werden durch den peripheren Manager
unterbrochen, und für den X-Server des zweiten Bildschirmes simuliert. Da der Cursor auf
dem ersten Bildschirm zur Unsichtbarmachung nun maskiert ist, sieht der Benutzer
nunmehr keinerlei Maus-Cursorbewegungen auf dem ersten Bildschirm, sondern nur auf
dem zweiten Bildschirm.
Der X-Server für den zweiten Bildschirm sendet Daten zu dem zweiten Bildschirm sowie
zu allen Kunden-Programmen aus, die normalerweise die Daten von dem X-Server
erhalten würden, wenn sie einen normalen Strom an Keyboard- und/oder Maus-Daten
erhalten würden.
Zusätzliche sekundäre Bildschirme können ebenfalls in dem System eingebaut werden, so
daß der Cursor beispielsweise von dem zweiten Bildschirm zu einem dritten Bildschirm
(einem weiteren sekundären Bildschirm) übergehen kann.
Das Übergangsfenster zwischen jeglichen zwei Bildschirmen kann willkürlich in einer
Abbildungstabelle festgelegt werden, so daß der Maus-Cursor von jeglicher Position auf
einem Bildschirm zu jeglicher Position auf einem weiteren Bildschirm übergehen kann.
Dementsprechend können Bildschirme in jeglicher Orientierung zueinander angeordnet
werden und der Cursor kann von Bildschirm zu Bildschirm in einer natürlich erscheinenden
Weise übergehen.
Die Software der vorliegenden Erfindung verwendet nur die Grundbefehle des Standard-
X-Window-Protokolls und kann daher jegliches Anzeige-Terminal unterstützen, das mit
X-Windows kompatibel ist. Die verschiedenen Anzeige-Terminals eines gegebenen
Systems können vollständig ohne Zusammenhang sein oder von unterschiedlichen
Herstellern stammen, solange sie nur das Standard-X-Windows-Sprachprotokoll
unterstützen.
Im folgenden werden Ausführungsbeispiele bezugnehmend auf die begleitenden
Zeichnungen beschrieben. Es zeigen:
Fig. 1 ein Software-Blockschaltbild einer beispielsweisen Workstation aus dem Stand der
Technik, auf der mehrere Kunden-Programme laufen und die X-Windows anwendet;
Fig. 2 ein Software-Blockschaltbild einer beispielsweisen Workstation aus dem Stand der
Technik, auf der mehrere Kunden-Programme laufen und die X-Windows im
Vielfachbildschirm-Modus verwendet;
Fig. 3 ein detaillierteres Software-Blockschaltbild einer Workstation gemäß dem Stand der
Technik, auf dem ein Kunden-Programm läuft und die X-Windows verwendet, um zwei
Bildschirme im Vielfachbildschirm-Modus anzusteuern;
Fig. 4 eine Bilddarstellung einer Vielfachbildschirm-Anzeige;
Fig. 5 ein Software-Blockschaltbild eines beispielsweisen Ausführungsbeispieles der
vorliegenden Erfindung;
Fig. 6 ein Software-Blockschaltbild eines ersten alternativen Ausführungsbeispieles der
vorliegenden Erfindung;
Fig. 7 ein Software-Blockschaltbild eines zweiten alternativen Ausführungsbeispieles der
vorliegenden Erfindung;
Fig. 8 ein Software-Blockschaltbild eines dritten alternativen Ausführungsbeispieles der
vorliegenden Erfindung;
Fig. 9A, 9B, 9C und 9D Bilddarstellungen von Pixelanordnungen, die darstellen, wie der
Maus-Cursor auf einem Anzeigebildschirm gezogen und ausgelassen wird;
Fig. 10A, 10B, 10C, 10D und 10E Flußdiagramme des Betriebes der vorliegenden
Erfindung;
Fig. 11 ein Software-Blockschaltbild eines weiteren Ausführungsbeispieles der
vorliegenden Erfindung.
Es folgt eine detaillierte Beschreibung von Ausführungsbeispielen der vorliegenden
Erfindung.
Die Bezeichnungen "Vielfachbildschirm-Modus" bzw. "Vielfachbildschirm-Betrieb"
werden im folgenden verwendet, um den Typ der gemeinsamen Verwendung des
Keyboards und der Maus durch viele Bildschirme zu bezeichnen, wie er durch die
vorliegende Erfindung erreicht wird. Fig. 4 dient zur Darstellung dieses Konzeptes. Fig. 4
zeigt die Bildschirme von fünf unterschiedlichen Anzeigevorrichtungen, die an einer Wand
angeordnet sind. Beim Vielfachbildschirm-Betrieb werden Übergangsfenster, wie
beispielsweise Übergangsfenster 200, 202, 204, 206, 210, 212, 214, 216 und 218
festgelegt. Ein Maus-Cursor 220 wird durch X in Fig. 4 dargestellt und ist einer einzigen
Maus zugeordnet. Der Cursor kann über die Bildschirme bewegt werden, so daß
beispielsweise bei einer Bewegung des Maus-Cursors nach rechts wie durch Pfeil 222
dargestellt und beim Erreichen der rechtesten Kante 224 des Bildschirmes 3, wobei ein
Abschnitt seiner Kante als Übergangsfenster 206 festgelegt ist, der Cursor anstelle an der
Kante zu stoppen von dem Bildschirm 3 verschwindet und an der Position 220a auf dem
Bildschirm 5 erscheint. Somit sind das Übergangsfenster 206 auf dem Bildschirm 3 und
das Übergangsfenster 214 auf dem Bildschirm 5 paarweise zugeordnete Übergangsfenster.
Wenn der Benutzer der Maus die Maus weiter nach rechts bewegt, bewegt sich der Cursor
weiter nach rechts über den Bildschirm 5.
Wie detaillierter weiter unten beschrieben wird, enthält die periphere Manager-Software
der vorliegenden Erfindung eine Tabelle von paarweisen Übergangsfenstern, die für den
oben beschriebenen Maus-Cursor-Betrieb benötigt werden. Wie ersichtlich werden wird,
können die paarweisen Übergangsfenster jeglichen Abschnitt oder die gesamte
Bildschirmkante enthalten. Beispielsweise liegt der Abschnitt der linken Kante 236 von
Bildschirm 3, der mit dem Bezugszeichen 230 in Fig. 4 bezeichnet ist, zwischen den
Übergangsfenstern 200 und 202. Wenn dementsprechend der an Position 220c gezeigte
Cursor horizontal nach links zu dem Treffabschnitt 230 der linken Kante 236 des
Bildschirmes 3 bewegt wird, tritt er in kein Übergangsfenster ein und verhält sich wie ein
normaler Maus-Cursor. Das heißt, seine Bewegung nach links wird gestoppt, selbst wenn
der Maus-Bediener die Maus weiter nach links bewegt. Wenn indessen der Maus-Bediener
die Maus nach oben zu der Position 220e bewegt und sie nach links bewegt, tritt der
Maus-Cursor in das Übergangsfenster 200 ein und verschwindet von dem Bildschirm 3
und taucht an der Position 220e im Bildschirm 1 auf und bewegt sich weiter nach links.
Wenn der Cursor weiter auf dem Bildschirm 1 nach links bewegt wird und er die Position
220f bei dem Übergangsfenster 216 erreicht, wenn die Übergangsfenster 216 und 218 als
paarweise Übergangsfenster festgelegt sind, erscheint der Cursor wieder an der Position
220g an dem Bildschirm 4 und bewegt sich weiter nach links auf den Bildschirm 4.
Dementsprechend sind die Übergangsfenster, die paarweise zugeordnet sind, beliebig
festlegbar. Wenn somit aus irgendeinem Grund, wenn der Cursor die Position 220f im
Bildschirm 1 erreicht, er von dem Bildschirm 1 verschwinden soll und an der Position 220h
auf dem Bildschirm 2 anstelle der Position 220g des Bildschirmes 4 erscheinen soll, könnte
dieser Betrieb implementiert werden. Es muß nur die geeignete Übergangsfunktion durch
den peripheren Manager festgelegt werden. Beispielsweise gibt es in Fig. 4 kein
Übergangsfenster an dem oberen Ende oder dem unteren Ende von irgendeinem
Bildschirm. Bei Bedarf indessen könnte das Übergangsfenster an jeglicher Position eines
Bildschirmes festgelegt werden.
Die Erfindung weist einen Software-Bestandteil auf, der im folgenden als peripherer
Manager bezeichnet wird. Fig. 5 zeigt den logischen Ablauf bei einer Workstation, die die
vorliegende Erfindung verwendet, um einen Vielfachbildschirm-Betrieb zu schaffen, bei
dem ein einziges Keyboard und/oder eine Maus mit mehreren Bildschirmen verwendet
werden kann.
Einer Host-Workstation 52 ist ein Keyboard 54 und eine Maus 56 zur Eingabe von Daten
und Befehlen zu einem Anwendungsprogramm, wie beispielsweise einem Programm 58
zugeordnet. Ein Kunden-Programm 58 ist beispielsweise ein Luftfahrt-
Überwachungsprogramm wie zuvor beschrieben. Auf dem Host-Computer 52 läuft ein
Betriebssystem 60, beispielsweise UNIX. Zwei Anzeige-Terminals 62 und 64 werden mit
Graphik-Steuerkarten 66 bzw. 68 betrieben.
Die Graphik-Anzeigesprache und -protokoll für das bevorzugte Ausführungsbeispiel der
Erfindung ist X-Windows. Diese spezielle Graphik-Anzeigesprache und -protokoll ist eine
Standardsprache und -protokoll des Massachusetts Institute of Technology und ist
vollständig beschrieben in O′Reilly & Associates, Inc., Xlib Programming Manual, dritte
Ausgabe, Adrian Nye (Herausgeber) und O′Reilly & Associates, Inc., Xlib Reference
Manual, dritte Ausgabe, Adrian Nye (Herausgeber), auf die beide vollinhaltlich Bezug
genommen wird. Die folgende Beschreibung setzt Kenntnisse des Protokolls und der
Sprache X-Windows voraus.
Jede Graphik-Steuerkarte 66 und 68 steht in Verbindung mit X-Server-Software 70 bzw.
72. Die X-Server-Software erhält normalerweise X-Windows-Befehle von Kunden-
Programmen und Cursor-Steuerdaten von der Maus und setzt sie in Steuersignale um, die
durch die zugeordneten Graphik-Steuerkarten 66 oder 68 verarbeitbar sind.
Um die Eigenschaften und Vorteile der vorliegenden Erfindung möglichst gut darzustellen,
sei angenommen, daß die beiden Anzeigevorrichtungen 62 und 64 durch verschiedene
Hersteller gefertigt sind und von unterschiedlicher Größe und Auflösung sind.
Dementsprechend unterscheiden sich die Graphik-Steuerkarten 66 und 68, die die
Schnittstelle zwischen der Anzeigevorrichtung und den X-Servern bilden, voneinander in
Größe, Auflösung und Hersteller.
Ein X-Server ist ein Software-Bestandteil, der unter anderem in dem Protokoll und der
Sprache X-Window Befehle erhält und Ereignisse ausgibt. Er setzt weiterhin Befehle und
Cursor-Bewegungsdaten in eine Form um, der durch die Graphik-Steuerkarten
verarbeitbar sind, so daß eine Anzeigevorrichtung eine spezielle Anzeige erstellt.
Allgemein und wie auch im folgenden verwendet, werden X-Protokoll-Daten, die durch
ein Anwendungsprogramm übertragen werden, X-Befehle genannt, während nicht
angeforderte X-Protokoll-Kommunikationen, die von einem X-Server zu einem
Anwendungsprogramm übertragen werden, als X-Ereignisse bezeichnet werden.
(Manchmal fordert ein Anwendungsprogramm Daten von einem X-Server an: die Antwort
des X-Servers ist wird nicht als ein Ereignis, sondern als eine Antwort auf die Anforderung
betrachtet). Die von Eingabevorrichtungen, wie beispielsweise Keyboards und Maus
erhaltenen Daten (von denen ein X-Server Ereignisse zur Übertragung zu dem
Anwendungsprogramm erzeugen kann) sind keine X-Protokoll-Kommunikation.
Die vorliegende Erfindung dient zum Betrieb mit kommerziell erhältlichen
Anzeigevorrichtungen und Graphik-Steuerkarten. Dementsprechend wird im folgenden der
genaue Betrieb und die Schnittstellenverarbeitung der Graphik-Steuerkarten mit ihren
jeweiligen Anzeigevorrichtungen nicht erläutert.
Die X-Server-Softwareblöcke 70 und 72 weisen Treiber 74 und 76 zur Ansteuerung der
Graphik-Steuerkarte 66 bzw. 68 auf. Die X-Server-Softwareblöcke 70 und 72 erkennen
weiterhin die Kundenprogramme, zu denen Ereignisse gerichtet werden sollen, und geben
die verschiedenen Ereignisse zu den geeigneten Kunden-Programmen aus, die diese
Ereignisse erhalten sollen.
Insbesondere registriert sich bei einer Initialisierung jedes Kunden-Programm selbst bei
einem oder mehreren X-Servern, von dem es Ereignisse erhalten muß. Genauer gesagt teilt
jedes Kunden-Programm im relevanten X-Server oder den Servern die Ereignisse des X-
Window-Typs mit, die es mitgeteilt haben möchte. Der X-Server speichert in einer Tabelle
eine Liste der Kunden, die mit ihm verbunden sind, und eine Liste der Ereignistypen, die
jede dieser Kunden-Programme wie angefordert mitgeteilt haben möchte.
Ein peripherer Manager-Softwareblock 78 steht in Verbindung mit den X-Servern. Bei
diesem Ausführungsbeispiel der Erfindung werden Daten von dem Keyboard und der
Maus zu dem peripheren Manager 78 und nicht direkt zu dem X-Server geschickt. Wie in
Fig. 5 dargestellt, steht das Keyboard 54 und die Maus 56 durch das Betriebssystem 60 in
Verbindung mit dem peripheren Manager 78. Der periphere Manager 78 verfolgt die
Anzeigevorrichtung, auf der der Maus-Cursor zur Zeit erscheint sowie die genaue Position
des Maus-Cursors auf dieser Anzeige.
Der periphere Manager sendet die durch das Betriebssystem 60 erhaltenen Keyboard- und
Mausdaten zu dem X-Server 70 oder 72, der der Anzeige 62 oder 64 zugeordnet ist, auf
der der Maus-Cursor zur Zeit erscheint, und sendet solche Ereignisse zu keinem anderen
X-Server.
Der periphere Manager verfolgt konstant die Position des Maus-Cursors. Er zeichnet
weiterhin ein oder mehrere Übergangsfenster von jedem Bildschirm auf. Übergangsfenster
sind Bereiche des Bildschirmes (normalerweise eine Kante) wo, wenn der Maus-Cursor
diesen Bereich betritt, dieser von dem Bildschirm verschwindet und auf einem weiteren
Bildschirm erscheint. Jedes Übergangsfenster weist ein paarweise zugeordnetes
Übergangsfenster auf einem anderen Bildschirm auf, wo der Cursor erscheinen soll, wenn
er von dem ersten Bildschirm verschwindet.
Wenn der Maus-Cursor ein Übergangsfenster betritt, wird die Position des Maus-Cursors,
die durch den X-Server gespeichert ist, entsprechend der Position auf dem neuen
Bildschirm mit einer neuen Stelle überschrieben, wo der Maus-Cursor erscheinen soll,
wenn er das spezielle Übergangsfenster betritt. Danach simuliert der periphere Manager X-
Ereignisse entsprechend den empfangenen Daten von dem Keyboard und der Maus für den
X-Server, der dem neuen Bildschirm anstelle des alten Bildschirmes zugeordnet ist.
Alternativ kann der periphere Manager ganz einfach die von der Maus und/oder dem
Keyboard erhaltenen Daten zu dem X-Server geben, anstelle zuerst X-Ereignisse zur
Weitergabe zu erzeugen.
Wenn der periphere Manager beobachtet, daß ein Maus-Cursor ein Übergangsfenster
betreten hat, läßt er die Position des Maus-Cursors, wie sie durch den X-Server
gespeichert ist, mit einer neuen Stelle entsprechend der Position auf dem neuen Bildschirm
überschreiben, wo der Maus-Cursor erscheinen soll, wenn er das spezielle
Übergangsfenster betritt. Danach simuliert der periphere Manager X-Ereignisse
entsprechend den von dem Keyboard und der Maus empfangenen Daten für den X-Server,
der dem neuen Bildschirm anstelle des alten Bildschirmes zugeordnet ist. Alternativ könnte
der periphere Manager anstelle der Erzeugung der X-Ereignisse zur Weitergabe ganz
einfach die Daten, die er von der Maus und/oder dem Keyboard erhalten hat, zu dem X-
Server weitergeben. Bei jedem Ausführungsbeispiel verschwindet der Cursor von dem
ersten Bildschirm und erscheint an einer geeigneten Stelle auf dem zweiten Bildschirm.
Wenn der erste und der zweite Bildschirm keine identische Größe und Auflösung
aufweisen, kann es passieren, daß die simulierten Cursor-Bewegungsereignisse skaliert
werden müssen.
Die X-Server wissen nicht und kümmern sich nicht, von woher sie die X-Ereignisse
erhalten (entweder Keyboard- oder Mausdaten in dem alternativen Ausführungsbeispiel).
Wie bei dem normalen Betrieb prüft der X-Server, der die Ereignisse erhält, in seiner
Tabelle, um festzustellen, ob einer der mit ihm verbundenen Kunden die Ereignisse
erhalten soll und sendet die geeigneten Ereignisse zu dem geeigneten Kunden. Er steuert
weiterhin seine Anzeige entsprechend dem simulierten Ereignis.
Es ist zu verstehen, daß jeder oder sämtliche der in Fig. 5 dargestellten Softwareblöcke auf
verschiedenen Workstations geladen sein können. Beispielsweise kann der X-Server 70
und der X-Server 72 auf verschiedenen Workstations sein (solange sie miteinander durch
einen Kommunikationskanal, wie beispielsweise ein lokales Netzwerk gekoppelt sind). Es
ist weiterhin zu verstehen, daß, auch wenn in Fig. 5 zwei Bildschirme dargestellt sind, die
Anzahl der Bildschirme sowie der Übergangsfenster willkürlich gewählt werden kann.
Weiterhin stellt Fig. 5 nur ein einziges Kunden-Programm 58 dar, indessen kann eine
willkürliche Anzahl an Kunden-Programmen auf eine willkurliche Anzahl an Workstations
mit jeglicher Anzahl an X-Servern gekoppelt sein. Beispielsweise könnten verschiedene
Kunden-Anwendungsprogramme mit einem einzigen X-Server gekoppelt sein, könnten
zum Erhalten der gleichen oder unterschiedlichen Ereignistypen registriert sein und
könnten X-Windows-Befehle zu dem gleichen X-Server senden. Beispielsweise zeigt Fig.
6 ein Beispiel der vorliegenden Erfindung, bei dem Kunden-Programme, die auf einer
Workstation A laufen und ein zusätzliches Kunden-Programm, das auf einer Workstation
B läuft, miteinander durch einen einzigen X-Server kommunizieren, der auf der
Workstation B läuft.
Fig. 7 zeigt ein Ausführungsbeispiel der Erfindung, bei dem Kunden-Programme A und B,
die auf der Workstation A laufen und ein Kunden-Programm C, das auf der Workstation B
läuft, mit zwei X-Servern gekoppelt sind, die auf unabhängigen X-Terminals laufen. Die
Kommunikation zwischen den verschiedenen X-Terminals und den Workstations erfolgt
durch ein LAN.
Die erfindungsgemäßen Ausführungsbeispiele, die in Fig. 5 bis 7 dargestellt sind, stellen
unterschiedliche logische Arten dar, wie die Erfindung ausgeführt werden kann. Fig. 8
zeigt ein Ausführungsbeispiel einer tatsächlich bevorzugten Ausführungsart der Erfindung.
Wie aus einem Vergleich von Fig. 5 und 8 ersichtlich ist, sind die Ausführungsbeispiele im
wesentlichen identisch, mit der Ausnahme, daß das Keyboard 102 und 104 in Fig. 8 durch
eine UNIX-Betriebssoftware 116 direkt mit dem X-Server 120 anstelle mit dem peripheren
Manager 122 verbunden sind. Der Betrieb ist im wesentlichen der gleiche wie oben
bezüglich Fig. 5 beschrieben, mit der Ausnahme, daß der Datenstrom vom Keyboard 102
und der Maus 104 durch den X-Server 120 anstelle des peripheren Managers erhalten
werden (im folgenden als primärer X-Server bezeichnet) 122.
In diesem Ausführungsbeispiel der Erfindung registriert der periphere Manager eine
Ereignismaske mit dem primären X-Server, so daß er Information erhält, wann der Maus-
Cursor ein Übergangsfenster betritt. Wenn der Cursor auf dem primären Bildschirm 110
(dem primären X-Server 120 zugeordnet) erscheint, möchte der periphere Manager 122
sämtliche ENTER WINDOW-Ereignisse von dem X-Server erhalten. Insbesondere erlaubt
das Protokoll und die Sprache X-Windows die Definition von Fenstern. Dementsprechend
werden die Übergangsfenster in X-Windows leicht bezeichnet und definiert. Das Protokoll
und die Sprache X-Window stellt weiterhin ein ENTER WINDOW-Ereignis bereit, das
durch den X-Server ausgegeben wird, wenn der Cursor ein vordefiniertes Fenster betritt.
Wie später detaillierter beschrieben werden wird, wenn der Cursor auf dem primären
Bildschirm ist, führt der periphere Manager keinerlei Funktion aus, bis der Cursor eines der
Übergangsfenster betritt (d. h. bis der periphere Manager ein ENTER WINDOW-Ereignis
von dem X-Server erhält). Wenn der Cursor auf dem ersten Bildschirm 110 ist, muß der
periphere Manager nur ENTER WINDOW-Ereignisse erhalten und bestimmen, ob das
betretene Fenster ein Übergangsfenster ist. Dementsprechend schafft der periphere
Manager 122, der im Gründe ein Kunden-Programm für den primären X-Server 120 ist,
bei der Registrierung eine Ereignismaske mit dem primären X-Server 120, so daß er nur
ENTER WINDOW-Ereignisse erhält, die gewissen Fenstern auf dem Bildschirm, nämlich
vordefinierten Übergangsfenstern zugeordnet sind.
Wenn somit der Maus-Cursor ein Übergangsfenster auf dem primären Bildschirm 110
betritt, benachrichtigt der X-Server 120 den peripheren Manager 122 durch Aussenden
eines ENTER WINDOW-Ereignisses. Als Antwort auf dieses geht der periphere Manager
in eine zweite Betriebsart über, die als GRAB(Abfang)-Modus bezeichnet wird. In dieser
Betriebsart gibt der periphere Manager 122 einen GRAB-Keyboard-Befehl und einen
GRAB-Maus-Befehl aus. In dieser Betriebsart erhält der periphere Manager sämtliche
Keyboard- und Maus-Ereignisse, die durch den primären X-Server als Antwort auf Daten
erzeugt werden, die er von dem Keyboard und der Maus erhalten hat. Die GRAB-Befehle
verhindern ein Aussenden von Keyboard- und Maus-Ereignissen durch den primären X-
Server 120 in jegliche Richtung mit Ausnahme der Vorrichtung, die die GRAB-Befehle
ausgegeben hat, d. h. zu dem peripheren Manager 122. Wenn somit der Maus-Cursor ein
Übergangsfenster betritt, greift sich der periphere Manager 122 sämtliche Maus-Ereignisse
und Keyboard-Ereignisse, wodurch er ein Aussenden zu anderen Kunden durch den
primären X-Server 120 verhindert.
Nach Ausgabe der GRAB-Keyboard- und GRAB-Maus-Befehle veranlaßt der periphere
Manager zuerst die Ausführung mehrerer Dinge. Insbesondere veranlaßt der periphere
Manager die Unsichtbarmachung des Cursors auf dem ersten Bildschirm und das
Erscheinen des Cursors auf dem zweiten Bildschirm an der geeigneten Position in dem
neuen Bildschirm 108. Diese beiden Vorgänge sind indessen komplizierter als es auf den
ersten Blick erscheint. Insbesondere, obwohl der Cursor nun auf dem ersten Bildschirm
110 unsichtbar ist, wird der Datenstrom von der Maus und dem Keyboard weiterhin direkt
von der Maus und dem Keyboard durch den ersten X-Server 120 erhalten. Die Cursor-
Bewegung wird auf dem ersten Bildschirm 110 durch den peripheren Manager 122 durch
Abfrage aller Zeigerbewegungsereignisse von dem ersten X-Server 120 verfolgt. Diese
Bewegungen werden dann durch den peripheren Manager 122 simuliert und zu dem X-
Server 118 gesendet, der den zweiten Bildschirm 108 unter Verwendung von WARP
POINTER-Befehlen bedient.
Wenn dementsprechend der Cursor ein Übergangsfenster betritt, wird er auf dem ersten
Bildschirm 110 auf eine Position entsprechend der Position repositioniert, auf der er nun
auf dem zweiten Bildschirm 108 unter Verwendung der Tabelle vordefinierter paarweise
zugewiesener Übergangsfenster und einer Übergangsfunktion für das Fenster erscheint, um
festzulegen, wo der Cursor bezüglich des paarweise zugeordneten Übergangsfensters auf
dem neuen Bildschirm erscheinen soll. Diese neue Information ersetzt die alte Cursor-
Positionsinformation, die durch den peripheren Manager gehalten wird. Wenn weiterhin
der erste Bildschirm 110 und der zweite Bildschirm 108 von unterschiedlicher Größe oder
Auflösung sind, muß der periphere Manager 122 eine Skalierfunktion bei der Simulation
der Cursorbewegungen auf dem ersten Bildschirm 110 für den X-Server 118 zur Anzeige
auf dem neuen Bildschirm 108 ausführen. Dies benötigt nur das Vorsehen eines
Skalierungsfaktors für jeden WARP POINTER-Befehl vor seiner Ausgabe.
Auch wenn der Cursor weiter auf dem ersten Bildschirm 110 verfolgt wird (da die Cursor-
Ereignisse von dem primären X-Server kommen), sieht der Benutzer den Cursor nur auf
dem neuen Bildschirm 108. Dementsprechend muß der Cursor auf dem Bildschirm 110
unsichtbar gemacht werden. Dies wird durch eine Maskierung des Cursors ausgeführt, wie
unten genauer beschrieben werden wird.
Solange der Cursor auf einem anderen Bildschirm als dem ersten Bildschirm ist, werden
alle Keyboard- und Maus-Ereignisse von dem primären X-Server 120 durch den
peripheren Manager aufgefangen und simuliert zu dem X-Server 118 gesendet. Soweit der
X-Server 118 betroffen ist, merkt er nichts von dem peripheren Manager 112 und weiß
nicht und kümmert sich nicht darum, von wo er die Keyboard- und Maus-Ereignisse erhält.
Wenn der periphere Manager in dem GRAB-Modus beobachtet, daß der Maus-Cursor ein
Übergangsfenster in dem zweiten Bildschirm betreten hat, durch das er zu dem ersten
Bildschirm 110 zurückkehrt, erneuert er ganz einfach seine momentanen Bildschirmdaten,
gibt die GRAB-Keyboard und GRAB-Maus-Befehle frei und geht zu dem zuvor
beschriebenen Betrieb zurück, indem er nur die ENTER WINDOW-Ereignisse beobachtet.
Wenn indessen der Cursor ein Übergangsfenster von dem zweiten Bildschirm 108 zu
einem dritten Bildschirm (nicht gezeigt in Fig. 8) betritt, bleibt der Betrieb in dem GRAB-
Modus, aber die momentanen Bildschirmdaten und die Cursor-Positionsdaten in dem
peripheren Manager werden wiederum erneuert, wie es bezüglich des Falles beschrieben
wurde, in dem der Cursor das Übergangsfenster zwischen dem Hauptbildschirm 110 und
dem sekundären Bildschirm 108 betritt. Der Cursor erscheint nun auf dem dritten
Bildschirm anstelle des zweiten Bildschirmes. Indessen bleibt der Betrieb in dem GRAB-
Modus im wesentlichen im Vergleich zu oben unverändert, mit der Ausnahme, daß die
simulierten X-Ereignisse zu einem dritten Bildschirm anstelle des zweiten Bildschirmes
gesendet werden. Der Skalierungsfaktor kann ebenfalls modifiziert werden, wenn der dritte
Bildschirm eine unterschiedliche Größe oder Auflösung zu dem zweiten Bildschirm
aufweist.
Das Ausführungsbeispiel von Fig. 8 kann weiterhin zur Verwendung mit Bildschirmen und
X-Servern auf verschiedenen Workstations adaptiert werden, die über ein lokales
Netzwerk oder dergleichen verbunden sind, wie es durch die alternativen
Ausführungsbeispiele der Erfindung, die in Fig. 5 bis 7 gezeigt sind, dargestellt ist.
Weiterhin kann das Ausführungsbeispiel von Fig. 8 leicht auf ein System adaptiert werden,
bei dem mehrere Bildschirme durch einen einzigen X-Server bedient werden. Solch ein
System arbeitet im wesentlichen wie bezüglich Fig. 8 beschrieben, mit der Ausnahme, daß
anstelle der Änderung der X-Server-Variablen des DISPLAY-Befehles in dem simulierten
X-Befehl und Ereignisstrom die Bildschirmvariable geändert wird.
Fig. 9A bis 9D zeigen, wie ein Cursor auf einem Anzeige-Bildschirm verschoben wird und
wie die vorliegende Erfindung ihn in dem GRAB-Modus unsichtbar macht. Ein Cursor
wird allgemein auf einem Anzeige-Bildschirm als eine Kombination eines rechteckigen
Glyph-Symbols und einer Maske verschoben. Das Glyph-Symbol definiert die Farben des
Cursors unter Verwendung von einem Bit pro Pixelposition, wobei 1 ein Pixel in der
momentanen Vordergrundfarbe darstellt und 0 ein Pixel in der momentanen
Hintergrundfarbe darstellt. Wenn der Cursor wie in Fig. 9A gezeigt ein X sein soll. Dann
wird eine rechteckige Glyph-Pixelanordnung wie in Fig. 9B gezeigt erzeugt. Als nächstes
wird eine Maske typischerweise mit einer weiteren rechteckigen Pixelanordnung wie in
Fig. 9C gezeigt, bei dem mit 1 bezeichneten Pixel gemäß der Glyph-Spezifizierung
gezogen werden und Pixel, die mit 0 bezeichnet werden, unabhängig von der Glyph-
Anordnung nicht verschoben werden. Um somit den Cursor verschwinden zu lassen, wird
die Masken-Spezifizierung wie in Fig. 9 gezeigt vollständig mit 0 bezeichnet.
Dementsprechend verschwindet der Cursor vollständig.
Gemäß der vorliegenden Erfindung ist jeder Softwareblock separat und unabhängig von
den anderen Softwareblöcken. Dementsprechend benötigt der Satz einer
Anzeigevorrichtung oder einer Graphik-Steuerkarte nicht den Ersatz des X-Servers oder
der peripheren Manager-Software. Dementsprechend kann ein Vielfachbildschirm-Betrieb
für verschiedene Bildschirme geschaffen werden, die durch verschiedene Lieferanten
gefertigt wurden mit unterschiedlichen Größen und/oder Auflösungen, ohne daß der X-
Server oder die periphere Manager-Software für verschiedene Bildschirme
kundenspezifiziert werden müssen.
Fig. 10A bis 10E sind Flußdiagramme, die den Betrieb der peripheren Manager-Software
darstellen, die insbesondere gemäß dem Ausführungsbeispiel von Fig. 8 angepaßt wurde.
Fig. 10A zeigt, daß der periphere Manager drei Hauptroutinen aufweist, einschließlich
einer Initialisierungs-Routine 200, einer Prozeß-Ereignis-Routine 300 und einer
Säuberungs-Routine 400. In den Flußdiagrammen der Fig. 10A, 10B und 10C wird die
folgende Konvention verwendet. Die Rechtecke mit Doppelkantenseiten (beispielsweise
Schritte 200, 300 und 400) stellen Subroutinen (Unterprogramme) dar, deren Details an
anderer Stelle in den Flußdiagrammen gezeigt ist. Normale Rechtecke zeigen Abläufe, die
auf dem Haupt-Host-Computer durchgeführt werden, der einen peripheren Manager
beinhaltet. Parallelogramme stellen Eingabe-/Ausgabe-Vorgänge dar. Es ist anzumerken,
daß sämtliche Graphik-Operationen als I/O-Vorgänge betrachtet werden, da jeder der
Anzeige-Bildschirme auf einer unterschiedlichen Workstation als der periphere Manager
sein kann. Die diamantförmigen Blöcke zeigen Entscheidungsschritte. Die Blöcke mit
Öffnungen sind Kommentierungen bezüglich des Blockes, mit der sie verbunden sind. Die
kreisförmigen Schritte sind ganz einfache Verbindungen. Schließlich stellen die ovalen
Schritte Beendigungspunkte dar, d. h. entweder ein Start oder ein Ende einer Routine.
Wie in Fig. 10A dargestellt wird beim Einschalten der Spannungsversorgung der periphere
Manager initialisiert (Schritt 200). Während dem Betrieb verarbeitet der periphere
Manager Ereignisse wie durch das Unterprogramm 300 vorgeschrieben. Zum Schluß
müssen an dem Ende eines Vielfachbildschirm-Betriebes verschiedene Schritte zum
Bereinigen (400) der Software unternommen werden, um einen Nicht-Vielfachbildschirm-
Betrieb zu ermöglichen.
Fig. 10B zeigt detaillierter das initialisierte Unterprogramm 200. In Schritt 205 werden die
Definitionen des ersten Bildschirmes wiedergewonnen. Diese Definitionen enthalten den
Bildschirm-Beschreibungsteil, die Bildschirmgröße und -auflösung und Definitionen der
Übergangsfenster. Solche Information enthält weiterhin den Namen des X-Servers, mit
dem zur Kommunikation mit dem ersten Bildschirm eine Verbindung aufgebaut werden
soll.
In Schritt 210 werden ähnliche Definitionen für den zweiten Bildschirm erhalten und
aufgezeichnet. Indessen gibt es für die zweiten Bildschirme eine zusätzliche Information.
Insbesondere werden die Übergangsfenster auf den zweiten Bildschirmen nicht nur
definiert, sondern ihre paarweise zugeordneten Übergangsfenster auf dem ersten
Bildschirm (oder anderen zweiten Bildschirmen) werden festgelegt.
In Schritten 215 und 220 werden die Verbindungen mit dem ersten bzw. zweiten X-Server
unter Verwendung der offenen Bildschirmbefehle ausgeführt. Als nächstes werden in den
Schritten 225 und 230 die Koordinatenbereiche der ersten und zweiten Bildschirme
bestimmt. Diese Information ist notwendig, um die periphere Manager-Software-Plattform
unabhängig zu machen und um eine vollständige Definition der Übergangsfenster zu
erzeugen, so daß der Cursor gleichzeitig durch mehrere Bildschirme verwendet werden
kann.
In Schritt 235 legt der periphere Manager eine Koordinaten-Tabelle des gesamten Raumes
an, durch den sich der Cursor bewegen kann. Die Übergangsfenster werden in dieser
Koordinaten-Tabelle in Schritten 240 und 245 definiert.
Damit die Übergangsfenster in der Koordinaten-Tabelle definiert werden, muß eine
Funktion zur Repositionierung des Cursors festgelegt werden, wenn er ein
Übergangsfenster betritt. Wenn beispielsweise der Cursor ein Übergangsfenster an der
oberen rechten Ecke eines Bildschirmes betritt, soll er an der unteren linken Ecke des
zweiten Bildschirmes rechts von dem ersten Bildschirm erscheinen. Diese
Übergangsfunktion ist in Schritt 250 definiert. Ahnliche Übergangsfunktionen werden für
die zweiten Bildschirme in Schritt 255 definiert.
In Schritten 260 und 265 werden die Pixeltabellen zur Unsichtbarmachung des Cursors auf
dem ersten bzw. zweiten Bildschirm definiert.
Schließlich soll der Cursor nur auf einem Bildschirm erscheinen. Dementsprechend wird in
Schritt 270 das Unterprogramm zur Unsichtbarmachung des Cursors aktiviert, so daß bei
einer Initialisierung der Cursor nur auf dem ersten Bildschirm erscheint.
In Schritt 275 endet das Unterprogramm und die Verarbeitung geht zu dem Prozeß-
Ereignis-Unterprogramm 300.
Fig. 10C und 10D enthalten ein Flußdiagramm, das das Prozeß-Ereignis-Unterprogramm
300 detailliert zeigt.
In Schritt 302 registriert sich der periphere Manager bei den X-Servern (schafft eine
Ereignismaske) für die Ereignisse, die er erhalten möchte. Wie zuvor erläutert, wenn der
Cursor auf dem ersten Bildschirm ist, beobachtet der periphere Manager nur die ENTER
WINDOW-Ereignisse für die Übergangsfenster. Dementsprechend wird in Schritt 302 die
Ereignismaske für den peripheren Manager angelegt, so daß von dem X-Server nur die
ENTER WINDOW-Ereignisse für die festgelegten Übergangsfenster erhalten werden.
In Schritt 304 wartet das Programm ganz einfach auf das Erhalten des ENTER
WINDOW-Befehls. In Schritt 306 legt es fest, ob der Cursor ein Übergangsfenster
betreten hat. Wenn dies der Fall ist, dann will der periphere Manager nun von dem X-
Server sämtliche Keyboard- und Maus-Ereignisse erhalten. Dementsprechend gibt in den
Schritten 308 und 310 der periphere Manager einen GRAB-Primärzeigerbefehl bzw. einen
GRAB-Primär-Keyboardbefehl aus. Wie in Blöcken 308a und 310a angemerkt, erhält der
periphere Manager nun allein sämtliche Bewegungs-, Tastendruck- und Tastenfreigabe-
Ereignisse hinsichtlich des Cursors und der periphere Manager erhält nun ausschließlich
sämtliche Tastendruck- und Tastenfreigabe-X-Ereignisse von dem X-Server als Antwort
auf den Datenstrom des Keyboards.
In Schritt 312 wird der zweite Zeiger nun zu einer speziellen Position auf dem zweiten
Bildschirm entsprechend der in Schritt 250 angelegten Übergangsfunktion bewegt. In
Schritt 314 wird der erste Cursor unsichtbar gemacht. In Schritt 316 wird der zweite
Cursor sichtbar gemacht.
In Schritt 318 wird der nun unsichtbare erste Cursor zu einer Position auf dem ersten
Bildschirm bewegt entsprechend der Position des zweiten Cursors auf dem zweiten
Bildschirm. Wie zuvor angemerkt ist es notwendig, daß die Cursorbewegung immer auf
dem ersten Bildschirm verfolgt und für die zweiten Bildschirme simuliert wird.
In Schritt 320 wird die Cursor-Position in der Bildschirm-Tabelle erneuert und das
Programm geht zu Schritt 304 zurück. Indessen, da nun der GRAB-Primärzeiger- und
GRAB-Primär-Keyboardbefehl ausgegeben wurden, wird der periphere Manager 304 nun
auf sämtliche Maus- und Keyboard-Ereignisse reagieren.
Da der Cursor nun auf dem zweiten Bildschirm ist, ist die Entscheidung in Schritt 306, ob
der Cursor ein erstes Übergangsfenster betreten hat, nun NEIN, da der Cursor nicht ein
erstes Übergangsfenster von einem zweiten Bildschirm aus betreten kann. Wenn
dementsprechend ein Ereignis auftritt, geht das Programm von Schritt 304 zu Schritt 306
und zu Schritt 322.
In Schritt 322 wird festgelegt, ob das erste in Schritt 304 X-Server-Ereignis ein Cursor-
Bewegungs-Ereignis war. Wenn dies der Fall ist, geht das Programm zu Schritt 324. In
Schritt 324 wird die Bewegung auf dem ersten Bildschirm auf dem zweiten Bildschirm
nachgeführt. Als nächstes wird in Schritt 326 bestimmt, ob die Cursor-Bewegung dem
Cursor in ein Übergangsfenster auf dem zweiten Bildschirm eintreten hat lassen. Wenn dies
nicht der Fall ist, geht das Programm zu Schritt 328, wo der zweite Cursor zu der
nachgebildeten Position bewegt wird. Danach wird in Schritt 330 die Position des Cursors
in der Bildschirm-Koordinaten-Tabelle, die in Schritt 235 erstellt wurde, erneuert und das
Programm geht zu Schritt 304.
Wenn indessen in Schritt 326 der zweite Cursor tatsächlich ein zweites Übergangsfenster
betreten hat, geht das Programm anstelle davon von Schritt 326 zu Schritt 332. In den
Schritten 332 und 334 werden der erste Zeiger und das Keyboard von dem GRAB-Befehl
freigegeben. Der Vorgang der Freigabe des GRAB-Befehls hinsichtlich des Keyboards und
der Maus erstellt wieder die zuvorige Ereignismaske, so daß der periphere Manager nun
nur wiederum die ENTER WINDOW-Ereignisse erhält. In Schritt 336 wird der zweite
Cursor wiederum unsichtbar gemacht. Dann wird in Schritt 338 der erste Cursor zu einer
geeigneten Stelle auf dem ersten Bildschirm entsprechend der, wo er erscheinen soll,
bewegt, wie durch die in dem Initialisierungsschritt 255 festgelegten Funktionen
vorbeschrieben ist. Erst nachdem der erste Cursor in die korrekte Position positioniert ist,
wird er sichtbar gemacht (Schritt 340). Danach geht das Programm zu Schritt 342, wo die
Cursor-Position in der Bildschirm-Tabelle erneuert wird, die in dem Initialisierungsschritt
255 geschaffen wurde. Schließlich geht das Programm zu Schritt 304 zurück, um auf einen
weiteren ENTER WINDOW-Befehl zu warten.
Wenn der sichtbare Cursor in dem zweiten Bildschirm ist und der periphere Manager ein
Maus-Tastenereignis in Schritt 304 erfaßt, geht das Programm von Schritt 304 durch die
Schritte 306 und 322 zu Schritt 344. In dem Schritt 344 wird festgelegt, daß das erfaßte
Ereignis ein Maus-Tastenereignis war und das Programm geht zu Schritt 346. In Schritt
346 wird das Tasten-Ereignis für einen zweiten X-Server simuliert und das Programm geht
zu Schritt 304 zurück.
Wenn indessen das in Schritt 304 erfaßte Ereignis ein Keyboard-Ereignis war (und der
sichtbare Cursor in dem zweiten Bildschirm ist), dann geht das Programm von dem Schritt
304 durch die Schritte 306, 322 und 344 zu Schritt 348. In dem Schritt 348 wird
festgelegt, daß das Ereignis ein Keyboard-Ereignis war und das Programm geht zu Schritt
350. In dem Schritt 350 wird das Keyboard-Ereignis für den zweiten X-Server simuliert.
Das Programm geht dann zu Schritt 304 zurück.
Wenn das erfaßte Ereignis keines der obigen ist und kein Abschluß-Ereignis ist, geht das
Programm durch die Schritte 304, 306, 322, 344, 348 und 352 zu Schritt 304 zurück.
Wenn schließlich das Ereignis, das in Schritt 304 erfaßt wurde, ein Abschluß-Ereignis war,
geht das Programm durch die Schritte 304, 306, 322, 344 und 348 zu Schritt 352,
unabhängig davon, ob der sichtbare Cursor auf dem ersten oder zweiten Bildschirm war.
In Schritt 352 wird festgelegt, daß ein Abschluß-Ereignis aufgetreten ist und das
Programm geht zu Schritt 354, der zu dem Bereinigungs-Unterprogramm 400 zurückführt.
Fig. 10E zeigt das Bereinigungs-Unterprogramm. Insbesondere werden in den Schritten
410 und 420 die Daten des ersten und zweiten Übergangsfensters vernichtet. In Schritten
430 und 440 werden die ursprünglichen ersten und zweiten Cursor wieder hergestellt. In
den Schritten 450 und 460 werden der erste bzw. der zweite unsichtbare Cursor zerstört.
Schließlich werden in Schritt 470 und 480 die Verbindungen zu dem ersten und dem
zweiten X-Server geschlossen. In Schritt 490 endet das periphere Manager-Programm.
Anhang A ist ein Probeausdruck einer minimalen Implementierung der peripheren
Manager-Software 78 der vorliegenden Erfindung zur Verwendung in einem System mit
einem ersten Bildschirm und einem zweiten Bildschirm (Filename xmwm.c). Es werden nur
völlig standardmäßige X-Window X115R5X-Lib-Befehle verwendet. Das Programm ist in
einem Code der generischen Kerrigan und Ritchie C-Sprache geschrieben.
Dementsprechend ist das Programm völlig plattformabhängig, sowohl hinsichtlich des
Host- und des Graphik-Systems.
Es ist ersichtlich, daß in dem GRAB-Modus der periphere Manager, wenn die Anwendung
dafür nachfragt, die simulierten Ereignisse zu mehr als einem X-Server schicken kann. Es
ist weiterhin ersichtlich, daß je nach Anwendung der Cursor gleichzeitig von mehreren
Mäusen gesteuert werden kann. Genauso können mehrere Keyboards gleichzeitig
bezüglich einer einzigen Anzeigevorrichtung betätigt werden. Natürlich blockt bei den
meisten Anwendungen der periphere Manager das Keyboard und die Maus ab, die der
lokalen Workstation zugeordnet sind, wenn der dem Keyboard und der Maus der Master-
Workstation zugeordnete Cursor auf dem Bildschirm erscheint, der der lokalen
Workstation zugeordnet ist.
Fig. 11 ist ein Software-Blockschaltbild eines weiteren Ausführungsbeispieles der
vorliegenden Erfindung. Gemäß diesem Ausführungsbeispiel weist jeder X-Server 150 und
152 seinen eigenen peripheren Manager 154 und 156 auf. Beispielsweise sind die X-Server
150 und 152 auf zwei getrennten Workstations 158 und 160 gezeigt, und sie sind über ein
LAN 162 verbunden. Indessen können die X-Server auf der gleichen Workstation laufen.
Wie zuvor stehen Keyboards und Mäuse 164, 166, 168 und 170 mit ihren jeweiligen
lokalen X-Servern 150 und 152 durch das UNIX-System 172 und 174 in Verbindung.
Indessen gibt es anstelle des UNIX-Systems 172 oder 174, das die Ereignisse zu den
zugeordneten X-Servern 150 oder 152 sendet, ein Dämon-System 176 oder 178 zwischen
dem UNIX-System und dem X-Server. Das Dämon-System steht weiterhin mit dem
zugeordneten peripheren Manager 154 oder 156 wie weiter unten erläutert in Verbindung.
Weiterhin sind die Dämon-Systeme miteinander über das LAN verbunden.
Im Betrieb registriert sich jeder periphere Manager bei seinem zugeordneten X-Server, um
die ENTER WINDOW-Ereignisse für Übergangsfenster in der zugeordneten Anzeige zu
erhalten. Wenn der periphere Manager Information erhält, daß der Cursor ein
Übergangsfenster in der zugeordneten Anzeige betreten hat, gibt er einen Befehl zu dem
zugeordneten Dämon-System aus, um den Keyboard- und Maus-Datenstrom über das
LAN zu dem Dämon-System zu leiten, das dem Bildschirm und dem X-Server zugeordnet
ist, zu dem der Cursor übergehen soll. Dementsprechend, wenn ein Bediener eine Maus
168 auf dem Bildschirm 180 bedient und der periphere Manager 154 beobachtet, daß der
Maus-Cursor ein Übergangsfenster betreten hat, das einen Übergang zwischen
Bildschirmen 180 und 182 schafft, befiehlt er dem Dämon-System 176, den Maus- und
Keyboard-Datenstrom von der Maus 168 und dem Keyboard 164 über das LAN 162 zu
dem Dämon-System 178 anstelle zu dem X-Server 150 zu senden. Das Dämon-System
178 auf der Workstation 160 empfängt die Maus- und Keyboard-Datenströme und sendet
sie zu dem X-Server 152.
Wenn das Dämon-System 178 die Datenströme über das LAN 162 erhält, blockt es
vorzugsweise sämtliche lokale Keyboard- und Maus-Ereignisse von dem Keyboard 166
und der Maus 170 ab. Indessen können bei Bedarf sowohl die lokale Maus- und Keyboard-
Gruppe sowie die abgelegene Maus- und Keyboard-Gruppe durch gleichzeitige Steuerung
des Cursors gestattet sein.
Soweit die X-Server betroffen sind, wissen sie nicht, woher die X-Window-Ereignisse
stammen. Dementsprechend macht es keinen Unterschied, ob die Ereignisse zu dem X-
Server 152 durch das Dämon-System 178 über das LAN 162 oder durch das Dämon-
System 178 lokal von dem Keyboard 166 und der Maus 170 kommen.
Bei diesem Ausführungsbeispiel der Erfindung erfolgt der Übergang zwischen
Bildschirmen vollständig außerhalb der X-Window-Umgebung. In dem
Ausführungsbeispiel von Fig. 8 kann ein anderes Kunden-Programm als der periphere
Manager GRAB-Keyboard- und GRAB-Maus-Befehle ausgeben, um den geeigneten
Betrieb sicherzustellen, indessen ist dies nicht in dem Ausführungsbeispiel von Fig. 11
möglich.
Die Ausgabe von Mitwirkungen von anderen Kunden-Programmen liegt nicht mehr vor, da
der X-Window-Befehl-Datenstrom nach außen von dem X-Window-System zurückgeleitet
wird.
Weiterhin weisen die periphere Manager in dem Ausführungsbeispiel von Fig. 11 der
vorliegenden Erfindung eine einfachere Aufgabe auf. Insbesondere beobachten sie (1) die
geeigneten ENTER WINDOW-Ereignisse, geben den Cursor von dem Haupt-Bildschirm
(2) frei, wenn er ein Übergangsfenster zu einem anderen Bildschirm betritt, repositionieren
(3) den Cursor beim Übergang und befehlen (4) dem Dämon-System, wohin die X-
Window-Ereignisse zu schicken sind, die es von dem zugeordneten Keyboard und der
Maus erhält.
Das Ausführungsbeispiel von Fig. 11 ist weiterhin ein Ausführungsbeispiel mit höherer
Leistungsfähigkeit (schneller), da es keine Simulation von X-Window-Ereignissen gibt.
Dagegen werden die tatsächlichen Keyboard- und Maus-Datenströme ganz einfach gemäß
der Maus-Cursor-Position zurückgeleitet.
Im Vorliegenden wurden spezielle Ausführungsbeispiele der Erfindung beschrieben,
indessen sind verschiedene Abänderungen, Modifikationen und Verbesserungen für den
Fachmann ersichtlich. Beispielsweise ist zu verstehen, daß, auch wenn gemäß der
Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung eine Maus als Cursor-
Steuervorrichtung verwendet wird, jegliche Anzahl an anderen Eingabevorrichtungen, wie
beispielsweise ein Trackball, eine Stift-Maus, ein Leuchtstift oder ein Berührungspult
genauso bei der vorliegenden Erfindung verwendet werden kann.
Claims (23)
1. Verfahren zur gemeinschaftlichen Verwendung einer Cursor-Steuervorrichtung durch
eine erste und eine zweite Graphik-Anzeigevorrichtung (108, 110), wobei die Cursor-
Steuervorrichtung Daten zur Steuerung eines ersten Cursors auf der Graphik-
Anzeigevorrichtung steuert, wobei das Verfahren die folgenden Schritte aufweist:
- (1) Festlegen eines ersten Übergangsfensters (240) in der ersten Graphik- Anzeigevorrichtung und eines zweiten, paarweise zugeordneten Übergangsfensters (245) in der zweiten Graphik-Anzeigevorrichtung;
- (2) Erfassung (306), wenn der erste Cursor in eine erste Position in dem ersten Übergangsfenster bewegt wurde;
- (3) wenn der erste Cursor das erste Übergangsfenster betritt, Bewegung (312) eines zweiten Cursors auf der zweiten Graphik-Anzeigevorrichtung in eine vorbestimmte zweite Position entsprechend der ersten Position auf der ersten Graphik-Anzeigevorrichtung;
- (4) wenn der erste Cursor das Übergangsfenster betritt, automatische Repositionierung (318) des ersten Cursors zu einer dritten Position auf der ersten Graphik- Anzeigevorrichtung entsprechend der vorbestimmten zweiten Position auf der zweiten Graphik-Anzeigevorrichtung;
- (5) wenn der Cursor das erste Übergangsfenster betreten hat, Maskierung (314) des ersten Cursors auf dem ersten Bildschirm, so daß er nicht mehr sichtbar ist; und
- (6) nachdem der Cursor das erste Übergangsfenster betreten hat, Aussendung (308a) von Simulationsdaten der Daten, die durch die Cursor-Steuervorrichtung erzeugt wurden, zu der zweiten Graphik-Anzeigevorrichtung.
2. Verfahren nach Anspruch 1,
bei dem der Schritt (6) weiterhin aufweist:
- (6. 1) Überwachung der durch die Cursor-Steuervorrichtung erzeugten Daten; und
- (6.2) Aussenden von Simulationsdaten der Daten, die durch die Cursor-Steuervorrichtung erzeugt werden, zu der zweiten Graphik-Anzeigevorrichtung.
3. Verfahren nach Anspruch 1 oder 2,
bei dem die Vorrichtung weiterhin eine Keyboard-Eingabevorrichtung zur Eingabe von
Daten aufweist, und der Schritt (6) weiterhin aufweist:
- (6.3) Überwachung (348) der von der Keyboard-Eingabevorrichtung eingegebenen Daten; und
- (6.4) Aussenden von Simulationsdaten der Daten, die von der Keyboard- Eingabevorrichtung eingegeben wurden, zu der zweiten Graphik-Anzeigevorrichtung.
4. Verfahren nach einem der vorhergehenden Ansprüche,
weiterhin aufweisend die folgenden Schritte:
- (7) Festlegung (326), wenn der zweite Cursor in eine vierte Position innerhalb des zweiten Übergangsfensters bewegt wurde;
- (8) wenn der Cursor in die vierte Position bewegt wurde, Löschen (336) des zweiten Cursors von der zweiten Graphik-Anzeigevorrichtung;
- (9) wenn der zweite Cursor in die vierte Position in die vierte Position bewegt wurde, Demaskierung (340) des ersten Cursors; und
- (10) wenn der zweite Cursor in die vierte Position bewegt wurde, Repositionierung (338) des Cursors in eine fünfte Position auf der ersten Graphik-Anzeigevorrichtung entsprechend der vierten Position auf der zweiten Graphik-Anzeigevorrichtung.
5. Verfahren nach einem der vorhergehenden Ansprüche,
bei dem die Cursor-Steuervorrichtung eine Maus (104) aufweist.
6. Verfahren zur gemeinsamen Verwendung einer Eingabevorrichtung durch mehrere
Anzeigevorrichtungen in einer Vorrichtung, aufweisend wenigstens eine erste und eine
zweite Anzeigevorrichtung (108, 110), eine Cursor-Steuerungs-Eingabevorrichtung (104)
zur Ausgabe von Daten zur Bewegung eines ersten Cursors auf der ersten
Anzeigevorrichtung und eines zweiten Cursors auf einer zweiten Anzeigevorrichtung, und
wenigstens einen X-Server (118) zum Erhalten der Daten von der Cursor-
Steuervorrichtung und zur Steuerung der ersten Anzeigevorrichtung, wobei das Verfahren
die folgenden Schritte aufweist:
- (1) Festlegung (240, 245) eines ersten und eines zweiten paarweise zugeordneten Übergangsfensters auf der ersten bzw. zweiten Anzeigevorrichtung;
- (2) Festlegung (306), wenn der erste Cursor das erste Übergangsfenster betreten hat; wenn der Cursor das erste Übergangsfenster betreten hat;
- (3a) Abgreifen (308) der Daten von dem X-Server, die durch die Cursor- Steuervorrichtung ausgegeben werden;
- (3b) Positionierung (312) des zweiten Cursors in einer Position auf der zweiten Anzeigevorrichtung, wobei die Position eine Funktion einer Position des ersten Cursors ist, wenn er das erste Übergangsfenster betritt;
- (3c) Maskierung (314) des ersten Cursors, so daß er nicht auf der ersten Anzeigevorrichtung erscheint;
- (3 d) Demaskierung (316) des zweiten Cursors, so daß er auf der zweiten Anzeigevorrichtung erscheint; und
- (3e) Repositionierung (318) des ersten Cursors auf der ersten Anzeigevorrichtung zu einer Position, die räumlich der ersten Position des zweiten Cursors auf der zweiten Anzeigevorrichtung entspricht; und
- (4) nachdem der erste Cursor das erste Übergangsfenster betreten hat und bis zu dem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt, Simulation (308a) der Daten von der Cursor-Steuervorrichtung für die zweite Anzeigevorrichtung.
7. Verfahren nach Anspruch 6,
bei dem die Vorrichtung weiterhin eine Keyboard-Eingabevorrichtung (102) zur Ausgabe
von Daten zu dem X-Server aufweist und bei dem das Verfahren weiterhin die folgenden
Schritte aufweist:
- (3f) wenn der Cursor das erste Übergangsfenster betritt, Abgreifen (310) der durch die Keyboard-Eingabevorrichtung ausgegebenen Daten von dem X-Server; und
- (5) nachdem der erste Cursor das erste Übergangsfenster betreten hat und bis zu dem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt, Simulation (310a) der Daten von der Keyboard-Eingabevorrichtung für die zweite Anzeigevorrichtung.
8. Verfahren nach Anspruch 6 oder 7,
weiterhin aufweisend die folgenden Schritte:
- wenn der zweite Cursor das zweite Übergangsfenster betritt (326),
- (6a) Freigabe (332) der Daten von der zweiten Cursor-Steuervorrichtung;
- (6b) Maskierung (336) des zweiten Cursors, so daß er nicht mehr auf der zweiten Anzeigevorrichtung erscheint;
- (6c) Demaskierung (340) des ersten Cursors, so daß er auf der ersten Anzeigevorrichtung erscheint; und
- (6d) Repositionierung (338) des ersten Cursors auf der ersten Anzeigevorrichtung zu einer Position auf der ersten Anzeigevorrichtung, wobei die Position eine Funktion einer Position des zweiten Cursors ist, wenn er das zweite Übergangsfenster betritt.
9. Verfahren nach einem der Ansprüche 7 oder 8,
bei dem die Vorrichtung weiterhin einen zweiten X-Server (120) zur Steuerung der
zweiten Anzeigevorrichtung aufweist und bei dem der Schritt (4) den folgenden Schritt
aufweist:
- (4.1) Simulation (308a) der Daten von der Cursor-Steuervorrichtung für den zweiten X- Server.
10. Verfahren nach einem der Ansprüche 7 bis 9,
bei dem der X-Server die erste und die zweite Anzeigevorrichtung steuert und die
Anzeigevorrichtung identifiziert, zu der Daten geleitet werden, unter Verwendung einer
Bildschirm-Identifizierung und bei dem der Schritt (4) den folgenden Schritt aufweist:
- (4.1) Änderung der Bildschirm-Identifizierung der Daten von der Cursor- Steuervorrichtung zur Identifizierung der zweiten Anzeigevorrichtung.
11. Vorrichtung zur gemeinsamen Verwendung einer Eingabevorrichtung durch mehrere
Anzeige-Bildschirme, aufweisend:
einen ersten und einen zweiten Anzeige-Bildschirm (108, 110);
eine Cursor-Steuervorrichtung (104) zur Ausgabe von Daten zur Steuerung der Bewegung eines ersten Cursors;
eine Einrichtung zur Festlegung eines ersten Übergangsfensters in dem ersten Anzeige Bildschirm und eines zweiten Übergangsfensters in dem zweiten Anzeige-Bildschirm;
eine Einrichtung zur Festlegung, wenn der erste Cursor durch die Cursor- Steuervorrichtung in das erste Übergangsfenster bewegt wurde;
eine Einrichtung zur Bewegung eines zweiten Cursors an eine vorbestimmte Position auf dem zweiten Anzeige-Bildschirm, wenn der erste Cursor das erste Übergangsfenster betritt, wobei die vorbestimmte Position eine Funktion einer Position eines ersten Cursors ist, wenn der erste Cursor das erste Übergangsfenster betritt;
eine Einrichtung zur Repositionierung des ersten Cursors zu einer Position auf der ersten Graphik-Anzeigevorrichtung, die räumlich der vorbestimmten Position auf der zweiten Graphik-Anzeigevorrichtung bestimmt, wenn der erste Cursor das Übergangsfenster betritt;
eine Einrichtung zur Maskierung des ersten Cursors auf dem ersten Bildschirm, so daß er nicht erscheint, wenn der erste Cursor das erste Übergangsfenster betritt; und
eine Einrichtung zur Aussendung von Daten von der Cursor-Steuervorrichtung zu dem zweiten Anzeige-Bildschirm, nachdem der erste Cursor das erste Übergangsfenster betreten hat und bevor der zweite Cursor das zweite Übergangsfenster betritt.
einen ersten und einen zweiten Anzeige-Bildschirm (108, 110);
eine Cursor-Steuervorrichtung (104) zur Ausgabe von Daten zur Steuerung der Bewegung eines ersten Cursors;
eine Einrichtung zur Festlegung eines ersten Übergangsfensters in dem ersten Anzeige Bildschirm und eines zweiten Übergangsfensters in dem zweiten Anzeige-Bildschirm;
eine Einrichtung zur Festlegung, wenn der erste Cursor durch die Cursor- Steuervorrichtung in das erste Übergangsfenster bewegt wurde;
eine Einrichtung zur Bewegung eines zweiten Cursors an eine vorbestimmte Position auf dem zweiten Anzeige-Bildschirm, wenn der erste Cursor das erste Übergangsfenster betritt, wobei die vorbestimmte Position eine Funktion einer Position eines ersten Cursors ist, wenn der erste Cursor das erste Übergangsfenster betritt;
eine Einrichtung zur Repositionierung des ersten Cursors zu einer Position auf der ersten Graphik-Anzeigevorrichtung, die räumlich der vorbestimmten Position auf der zweiten Graphik-Anzeigevorrichtung bestimmt, wenn der erste Cursor das Übergangsfenster betritt;
eine Einrichtung zur Maskierung des ersten Cursors auf dem ersten Bildschirm, so daß er nicht erscheint, wenn der erste Cursor das erste Übergangsfenster betritt; und
eine Einrichtung zur Aussendung von Daten von der Cursor-Steuervorrichtung zu dem zweiten Anzeige-Bildschirm, nachdem der erste Cursor das erste Übergangsfenster betreten hat und bevor der zweite Cursor das zweite Übergangsfenster betritt.
12. Vorrichtung nach Anspruch 11,
bei dem die Vorrichtung weiterhin aufweist einen ersten X-Server (118) zur Steuerung des
ersten und zweiten Anzeige-Bildschirmes, und bei der die Einrichtung zur Aussendung von
Daten die Daten zu dem X-Server mit einer Bildschirm-Identifizierung aussendet, die den
ersten Anzeige-Bildschirm identifiziert, wenn der erste Cursor nicht maskiert ist, und mit
einer Bildschirm-Identifizierung, die den zweiten Anzeige-Bildschirm identifiziert, wenn
der erste Cursor maskiert ist.
13. Vorrichtung nach Anspruch 11 oder 12,
bei der die Vorrichtung weiterhin aufweist einen ersten und einen zweiten X-Server (118,
120) zur Steuerung des ersten und zweiten Anzeige-Bildschirmes, und bei der die
Einrichtung zur Aussendung aufweist:
eine Einrichtung zur Aussendung der Daten, die durch die erste Cursor-Steuervorrichtung ausgegeben werden, zu dem zweiten X-Server, wenn der erste Cursor maskiert ist, und eine Aussendung der Daten zu dem zweiten X-Server, wenn der erste Cursor nicht maskiert ist.
eine Einrichtung zur Aussendung der Daten, die durch die erste Cursor-Steuervorrichtung ausgegeben werden, zu dem zweiten X-Server, wenn der erste Cursor maskiert ist, und eine Aussendung der Daten zu dem zweiten X-Server, wenn der erste Cursor nicht maskiert ist.
14. Vorrichtung nach einem der Ansprüche 11 bis 13,
bei der die Einrichtung zur Aussendung und der erste und der zweite Anzeige-Bildschirm
auf einer ersten Workstation (100) geladen sind.
15. Vorrichtung nach einem der Ansprüche 11 bis 14,
bei dem wenigstens einer des ersten und zweiten Anzeige-Bildschirmes auf einer ersten
Workstation geladen ist, und die Einrichtung zur Aussendung auf einer zweiten
Workstation geladen ist, wobei die erste und die zweite Workstation miteinander über ein
lokales Netzwerk verbunden sind.
16. Vorrichtung nach einem der Ansprüche 11 bis 15,
weiterhin aufweisend eine Keyboard-Eingabevorrichtung (102) zur Ausgabe von Daten,
und bei der die Einrichtung zur Aussendung weiterhin eine Einrichtung zur Aussendung
von Daten aufweist, die durch die Keyboard-Eingabevorrichtung ausgegeben werden.
17. Vorrichtung nach einem der Ansprüche 11 bis 16,
weiterhin aufweisend:
eine Einrichtung zur Festlegung, wenn der Cursor zu einer Position in dem zweiten Übergangsfenster bewegt wurde;
eine Einrichtung zur Maskierung des zweiten Cursors auf der zweiten Graphik- Anzeigevorrichtung, wenn der zweite Cursor das zweite Übergangsfenster betritt;
eine Einrichtung zur Demaskierung des ersten Cursors, wenn der zweite Cursor das zweite Übergangsfenster betritt; und
eine Einrichtung zur Repositionierung des ersten Cursors zu einer vorbestimmten Position auf dem ersten Anzeige-Bildschirm, wobei die vorbestimmte Position eine Funktion einer Position des zweiten Cursors ist, wenn er das zweite Übergangsfenster betritt, wenn der zweite Cursor das zweite Übergangsfenster betritt.
eine Einrichtung zur Festlegung, wenn der Cursor zu einer Position in dem zweiten Übergangsfenster bewegt wurde;
eine Einrichtung zur Maskierung des zweiten Cursors auf der zweiten Graphik- Anzeigevorrichtung, wenn der zweite Cursor das zweite Übergangsfenster betritt;
eine Einrichtung zur Demaskierung des ersten Cursors, wenn der zweite Cursor das zweite Übergangsfenster betritt; und
eine Einrichtung zur Repositionierung des ersten Cursors zu einer vorbestimmten Position auf dem ersten Anzeige-Bildschirm, wobei die vorbestimmte Position eine Funktion einer Position des zweiten Cursors ist, wenn er das zweite Übergangsfenster betritt, wenn der zweite Cursor das zweite Übergangsfenster betritt.
18. Vorrichtung nach einem der Ansprüche 11 bis 17,
bei dem die Cursor-Steuervorrichtung eine Maus (104) aufweist.
19. Vorrichtung zur gemeinsamen Verwendung einer Eingabevorrichtung durch mehrere
Anzeigevorrichtungen, aufweisend:
eine erste und eine zweite Anzeigevorrichtung (108, 110);
eine Cursor-Steuereingabevorrichtung (104) zur Ausgabe von Daten zur Bewegung eines ersten Cursors auf der ersten Anzeigevorrichtung und eines zweiten Cursors auf einer zweiten Anzeigevorrichtung;
einen ersten X-Server (118) zum Erhalten der Daten von der Cursor-Steuervorrichtung und zur Steuerung wenigstens der ersten Anzeigevorrichtung;
eine Einrichtung zur Festlegung eines ersten und eines zweiten paarweise zugeordneten Übergangsfensters auf der ersten bzw. der zweiten Anzeigevorrichtung;
eine Einrichtung zur Festlegung, wenn der erste Cursor das erste Übergangsfenster betritt;
eine Einrichtung zum Abgreifen der Daten, die durch die Cursor-Steuervorrichtung ausgegeben werden, von dem ersten X-Server, nachdem der erste Cursor das erste Übergangsfenster betritt, bis zu einem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt;
eine Einrichtung zur Positionierung des zweiten Cursors in einer vorbestimmten Position auf der zweiten Anzeigevorrichtung, wenn der Cursor das erste Übergangsfenster betritt, wobei die vorbestimmte Position eine Funktion einer Position eines ersten Cursors ist, wenn er das erste Übergangsfenster betritt;
eine Einrichtung zur Maskierung des ersten Cursors, so daß er nicht auf der ersten Anzeigevorrichtung erscheint, wenn der Cursor das erste Übergangsfenster betritt; eine Einrichtung zur Demaskierung des zweiten Cursors, so daß er auf der zweiten Anzeigevorrichtung erscheint, wenn der Cursor das erste Übergangsfenster betritt; eine Einrichtung zur Repositionierung des ersten Cursors auf der ersten Anzeigevorrichtung zu einer Position, die räumlich der Position des zweiten Cursors auf der zweiten Anzeigevorrichtung entspricht, wenn der Cursor das erste Übergangsfenster betritt;
eine Einrichtung zur Simulation der Daten von der Cursor-Steuervorrichtung für die zweite Anzeigevorrichtung, nachdem der erste Cursor das erste Übergangsfenster betreten hat, und bis zu dem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt.
eine erste und eine zweite Anzeigevorrichtung (108, 110);
eine Cursor-Steuereingabevorrichtung (104) zur Ausgabe von Daten zur Bewegung eines ersten Cursors auf der ersten Anzeigevorrichtung und eines zweiten Cursors auf einer zweiten Anzeigevorrichtung;
einen ersten X-Server (118) zum Erhalten der Daten von der Cursor-Steuervorrichtung und zur Steuerung wenigstens der ersten Anzeigevorrichtung;
eine Einrichtung zur Festlegung eines ersten und eines zweiten paarweise zugeordneten Übergangsfensters auf der ersten bzw. der zweiten Anzeigevorrichtung;
eine Einrichtung zur Festlegung, wenn der erste Cursor das erste Übergangsfenster betritt;
eine Einrichtung zum Abgreifen der Daten, die durch die Cursor-Steuervorrichtung ausgegeben werden, von dem ersten X-Server, nachdem der erste Cursor das erste Übergangsfenster betritt, bis zu einem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt;
eine Einrichtung zur Positionierung des zweiten Cursors in einer vorbestimmten Position auf der zweiten Anzeigevorrichtung, wenn der Cursor das erste Übergangsfenster betritt, wobei die vorbestimmte Position eine Funktion einer Position eines ersten Cursors ist, wenn er das erste Übergangsfenster betritt;
eine Einrichtung zur Maskierung des ersten Cursors, so daß er nicht auf der ersten Anzeigevorrichtung erscheint, wenn der Cursor das erste Übergangsfenster betritt; eine Einrichtung zur Demaskierung des zweiten Cursors, so daß er auf der zweiten Anzeigevorrichtung erscheint, wenn der Cursor das erste Übergangsfenster betritt; eine Einrichtung zur Repositionierung des ersten Cursors auf der ersten Anzeigevorrichtung zu einer Position, die räumlich der Position des zweiten Cursors auf der zweiten Anzeigevorrichtung entspricht, wenn der Cursor das erste Übergangsfenster betritt;
eine Einrichtung zur Simulation der Daten von der Cursor-Steuervorrichtung für die zweite Anzeigevorrichtung, nachdem der erste Cursor das erste Übergangsfenster betreten hat, und bis zu dem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt.
20. Vorrichtung nach Anspruch 19,
weiterhin aufweisend:
eine Keyboard-Eingabevorrichtung (102) zur Ausgabe von Daten-Ereignissen zu dem X- Server;
eine Einrichtung zum Abgreifen der Daten, die durch die Keyboard-Eingabevorrichtung ausgegeben werden, von dem X-Server, wenn der erste Cursor das erste Übergangsfenster betritt; und
eine Einrichtung zur Simulation der Daten von der Keyboard-Eingabevorrichtung für die zweite Anzeigevorrichtung, nachdem der erste Cursor das erste Übergangsfenster betreten hat, und bis zu dem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt.
eine Keyboard-Eingabevorrichtung (102) zur Ausgabe von Daten-Ereignissen zu dem X- Server;
eine Einrichtung zum Abgreifen der Daten, die durch die Keyboard-Eingabevorrichtung ausgegeben werden, von dem X-Server, wenn der erste Cursor das erste Übergangsfenster betritt; und
eine Einrichtung zur Simulation der Daten von der Keyboard-Eingabevorrichtung für die zweite Anzeigevorrichtung, nachdem der erste Cursor das erste Übergangsfenster betreten hat, und bis zu dem Zeitpunkt, zu dem der zweite Cursor das zweite Übergangsfenster betritt.
21. Vorrichtung nach Anspruch 19 oder 20,
weiterhin aufweisend:
eine Einrichtung zur Freigabe der Daten von der Cursor-Steuervorrichtung, wenn der zweite Cursor das zweite Übergangsfenster betritt;
eine Einrichtung zur Maskierung des zweiten Cursors, so daß er nicht auf der zweiten Anzeigevorrichtung erscheint, wenn der zweite Cursor das zweite Übergangsfenster betritt; und
eine Einrichtung zur Demaskierung des ersten Cursors, so daß er auf der ersten Anzeigevorrichtung erscheint, wenn der zweite Cursor das zweite Übergangsfenster betritt; und
eine Einrichtung zur Repositionierung des ersten Cursors auf der ersten Anzeigevorrichtung zu einer Position auf der ersten Anzeigevorrichtung, wenn der zweite Cursor das zweite Übergangsfenster betritt, wobei die Position eine Funktion einer Position des zweiten Cursors beim Betreten des zweiten Übergangsfensters ist.
eine Einrichtung zur Freigabe der Daten von der Cursor-Steuervorrichtung, wenn der zweite Cursor das zweite Übergangsfenster betritt;
eine Einrichtung zur Maskierung des zweiten Cursors, so daß er nicht auf der zweiten Anzeigevorrichtung erscheint, wenn der zweite Cursor das zweite Übergangsfenster betritt; und
eine Einrichtung zur Demaskierung des ersten Cursors, so daß er auf der ersten Anzeigevorrichtung erscheint, wenn der zweite Cursor das zweite Übergangsfenster betritt; und
eine Einrichtung zur Repositionierung des ersten Cursors auf der ersten Anzeigevorrichtung zu einer Position auf der ersten Anzeigevorrichtung, wenn der zweite Cursor das zweite Übergangsfenster betritt, wobei die Position eine Funktion einer Position des zweiten Cursors beim Betreten des zweiten Übergangsfensters ist.
22. Vorrichtung nach Anspruch 20 oder 21,
weiterhin aufweisend einen zweiten X-Server (120) zur Steuerung der zweiten
Anzeigevorrichtung und eine Einrichtung zur Simulation der Daten von der Cursor-
Steuervorrichtung und der Daten von der Keyboard-Eingabevorrichtung für den zweiten
X-Server, wenn der erste Cursor maskiert ist.
23. Vorrichtung nach einem der Ansprüche 20 bis 22,
bei dem der erste X-Server die erste und die zweite Anzeigevorrichtung steuert und
weiterhin aufweisend eine Einrichtung zur Änderung der Bildschirm-Identifizierung in den
Daten von der Cursor-Steuervorrichtung und der Keyboard-Eingabevorrichtung zur
Identifizierung der zweiten Anzeigevorrichtung, wenn der erste Cursor maskiert ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/531,209 US5748189A (en) | 1995-09-19 | 1995-09-19 | Method and apparatus for sharing input devices amongst plural independent graphic display devices |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19636923A1 true DE19636923A1 (de) | 1997-04-03 |
Family
ID=24116694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19636923A Ceased DE19636923A1 (de) | 1995-09-19 | 1996-09-11 | Verfahren und Vorrichtung zur gemeinsamen Benutzung von Eingabevorrichtungen durch mehrere unabhängige Graphik-Anzeigevorrichtungen |
Country Status (4)
Country | Link |
---|---|
US (1) | US5748189A (de) |
JP (1) | JPH09185483A (de) |
DE (1) | DE19636923A1 (de) |
FR (1) | FR2738943B1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007061537A1 (de) | 2007-12-20 | 2009-07-02 | Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr | Umschaltvorrichtung, Verfahren und System zum Wirksamschalten mindestens einer Eingabevorrichtung für mindestens zwei Rechnereinheiten |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835090A (en) * | 1996-10-16 | 1998-11-10 | Etma, Inc. | Desktop manager for graphical user interface based system with enhanced desktop |
US6202212B1 (en) * | 1997-04-01 | 2001-03-13 | Compaq Computer Corporation | System for changing modalities |
US5995102A (en) * | 1997-06-25 | 1999-11-30 | Comet Systems, Inc. | Server system and method for modifying a cursor image |
US6065041A (en) * | 1997-09-18 | 2000-05-16 | Electronics For Imaging, Inc. | Interface code architecture |
US6249294B1 (en) * | 1998-07-20 | 2001-06-19 | Hewlett-Packard Company | 3D graphics in a single logical sreen display using multiple computer systems |
US6215486B1 (en) * | 1998-07-20 | 2001-04-10 | Hewlett-Packard Company | Event handling in a single logical screen display using multiple remote computer systems |
US6348933B1 (en) * | 1998-07-20 | 2002-02-19 | Hewlett-Packard Company | Single logical screen display using multiple remote computer systems |
US6417849B2 (en) * | 1998-07-31 | 2002-07-09 | Hewlett-Packard Company | Single logical screen in X windows with direct hardware access to the frame buffer for 3D rendering |
JP3627791B2 (ja) * | 1998-08-10 | 2005-03-09 | 富士通株式会社 | 他端末操作装置 |
US6409602B1 (en) * | 1998-11-06 | 2002-06-25 | New Millenium Gaming Limited | Slim terminal gaming system |
JP2000284941A (ja) * | 1999-03-31 | 2000-10-13 | Mitsubishi Electric Corp | マルチディスプレイシステムのカーソル表示装置 |
US7007240B1 (en) | 1999-08-03 | 2006-02-28 | Gateway Inc. | Method and system for displaying non-overlapping program and auxiliary windows |
US6546450B1 (en) * | 1999-12-22 | 2003-04-08 | Intel Corporation | Method and apparatus for sharing a universal serial bus device among multiple computers by switching |
US20020002587A1 (en) * | 2000-07-17 | 2002-01-03 | Siemens Aktiengesellschaft | Method and Arrangement for Determining Current Projection Data for a Projection of a Spatially Variable Area |
US6915347B2 (en) * | 2000-10-17 | 2005-07-05 | Sun Microsystems, Inc. | Associating multiple display units in a grouped server environment |
US6710753B2 (en) | 2000-10-17 | 2004-03-23 | Sun Micosystems, Inc. | Multi-screen session mobility between terminal groups |
JP2002182816A (ja) * | 2000-12-14 | 2002-06-28 | Matsushita Electric Ind Co Ltd | カーソル位置指示装置 |
US7385584B2 (en) | 2001-02-07 | 2008-06-10 | International Business Machines Corporation | Automated keyboard mouse switch |
KR20020077984A (ko) * | 2001-04-03 | 2002-10-18 | 주식회사 태림테크 | 화면 이동용 커서 이동 버튼을 구비한 마우스 및 이를이용한 커서 이동 방법 |
US7629945B2 (en) * | 2001-05-11 | 2009-12-08 | Xerox Corporation | Mixed resolution displays |
DE10217818B4 (de) * | 2001-05-16 | 2010-07-08 | Heidelberger Druckmaschinen Ag | Verfahren zur Anzeige entfernter Bildschirminhalte |
US9405459B2 (en) | 2011-08-24 | 2016-08-02 | Z124 | Unified desktop laptop dock software operation |
US9268518B2 (en) | 2011-09-27 | 2016-02-23 | Z124 | Unified desktop docking rules |
US9715252B2 (en) | 2011-08-24 | 2017-07-25 | Z124 | Unified desktop docking behavior for window stickiness |
US6917362B2 (en) * | 2002-01-25 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | System and method for managing context data in a single logical screen graphics environment |
US6842795B2 (en) * | 2002-06-10 | 2005-01-11 | Siemens Communications, Inc. | Methods and apparatus for shifting focus between multiple devices |
EP1515223A1 (de) * | 2003-09-10 | 2005-03-16 | Siemens Aktiengesellschaft | Generierung einer Objekt-Bearbeitungsplattform zwischen zwei Computern über eine Bildschirmzusammenfügung |
KR100810515B1 (ko) * | 2003-12-13 | 2008-03-10 | 삼성전자주식회사 | 디스플레이 관리시스템 |
JP4325439B2 (ja) * | 2004-03-02 | 2009-09-02 | 株式会社日立製作所 | 画面表示方法 |
US8629836B2 (en) | 2004-04-30 | 2014-01-14 | Hillcrest Laboratories, Inc. | 3D pointing devices with orientation compensation and improved usability |
EP1759529A4 (de) | 2004-04-30 | 2009-11-11 | Hillcrest Lab Inc | Freiraum-zeigeeinrichtungen und verfahren |
US8407347B2 (en) * | 2004-11-19 | 2013-03-26 | Xiao Qian Zhang | Method of operating multiple input and output devices through a single computer |
US8137195B2 (en) * | 2004-11-23 | 2012-03-20 | Hillcrest Laboratories, Inc. | Semantic gaming and application transformation |
US7598941B2 (en) * | 2005-07-01 | 2009-10-06 | Microsoft Corporation | Pointer for a large display |
GB2427530B (en) * | 2005-11-11 | 2007-06-13 | Amulet Electronics Ltd | Computer switching device |
CN100508019C (zh) * | 2006-02-23 | 2009-07-01 | 深圳迈瑞生物医疗电子股份有限公司 | 多通道数字显示信号叠加装置及方法 |
US7567233B2 (en) * | 2006-09-06 | 2009-07-28 | Stereotaxis, Inc. | Global input device for multiple computer-controlled medical systems |
TW200836563A (en) * | 2007-02-27 | 2008-09-01 | Awind Inc | Pointing control system for multi-site presentation conference |
US20080222573A1 (en) * | 2007-03-06 | 2008-09-11 | Simon Abeckaser | Computer mouse with cursor finding function and faster screen privacy function |
US8627211B2 (en) | 2007-03-30 | 2014-01-07 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication |
US8702505B2 (en) | 2007-03-30 | 2014-04-22 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication |
US7950046B2 (en) | 2007-03-30 | 2011-05-24 | Uranus International Limited | Method, apparatus, system, medium, and signals for intercepting a multiple-party communication |
US8060887B2 (en) * | 2007-03-30 | 2011-11-15 | Uranus International Limited | Method, apparatus, system, and medium for supporting multiple-party communications |
US7765266B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium, and signals for publishing content created during a communication |
US7765261B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers |
US20090249219A1 (en) * | 2008-03-31 | 2009-10-01 | Best Steven F | Providing a Shared Desktop Interface of Multiple Computer Terminals |
US9959897B2 (en) * | 2008-06-06 | 2018-05-01 | Disney Enterprises, Inc. | User input handling for digital video playback device |
US20100077335A1 (en) * | 2008-09-23 | 2010-03-25 | Action Star Enterprise Co., Ltd. | Method for transferring a file through a km device between associated computers |
AT507204B1 (de) * | 2008-10-09 | 2010-03-15 | Frequentis Ag | Verfahren sowie anlage zur verteilung von einlangenden daten |
US20100164839A1 (en) * | 2008-12-31 | 2010-07-01 | Lyons Kenton M | Peer-to-peer dynamically appendable logical displays |
US20160320938A9 (en) * | 2009-03-17 | 2016-11-03 | Litera Technologies, LLC | System and Method for the Auto-Detection and Presentation of Pre-Set Configurations for Multiple Monitor Layout Display |
US8471781B2 (en) * | 2009-03-17 | 2013-06-25 | Litera Technologies, LLC | System and method for the auto-detection and presentation of pre-set configurations for multiple monitor layout display |
US8135889B2 (en) * | 2009-06-22 | 2012-03-13 | Apteryx, Inc. | Direct connection single user-interface control of multiple computers and displays |
US8613663B2 (en) * | 2009-11-16 | 2013-12-24 | Bally Gaming, Inc. | Multi-monitor support for gaming devices and related methods |
WO2011076977A1 (en) * | 2009-12-23 | 2011-06-30 | Nokia Corporation | Method and apparatus for display device |
IT1399695B1 (it) * | 2010-04-14 | 2013-04-26 | Sisvel Technology Srl | Metodo per visualizzare un flusso video secondo un formato personalizzato. |
JP2012038210A (ja) * | 2010-08-10 | 2012-02-23 | Sony Corp | 情報処理装置、情報処理方法、コンピュータプログラム及びコンテンツ表示システム |
JP5881739B2 (ja) * | 2011-01-03 | 2016-03-09 | フリーダム サイエンティフィック インコーポレイテッド | 非一時的コンピュータ可読媒体 |
US9495012B2 (en) | 2011-09-27 | 2016-11-15 | Z124 | Secondary single screen mode activation through user interface activation |
US9454186B2 (en) * | 2011-09-30 | 2016-09-27 | Nokia Technologies Oy | User interface |
US9582236B2 (en) | 2011-09-30 | 2017-02-28 | Nokia Technologies Oy | User interface |
US9588604B2 (en) * | 2011-11-07 | 2017-03-07 | Microsoft Technology Licensing, Llc | Shared edge for a display environment |
US9164544B2 (en) | 2011-12-09 | 2015-10-20 | Z124 | Unified desktop: laptop dock, hardware configuration |
CZ306638B6 (cs) | 2012-07-16 | 2017-04-12 | Ažd Praha S. R. O. | Zařízení pro automatické přepínání mezi počítači pomocí společné myši a společné klávesnice a způsob tohoto automatického přepínání |
JP6343889B2 (ja) * | 2013-08-30 | 2018-06-20 | コニカミノルタ株式会社 | 表示制御装置、表示システム、表示プログラム、表示装置 |
CN105094727B (zh) * | 2014-05-23 | 2018-08-21 | 纬创资通股份有限公司 | 扩展屏幕模式下的应用程序运作方法以及平板计算机 |
US9766460B2 (en) | 2014-07-25 | 2017-09-19 | Microsoft Technology Licensing, Llc | Ground plane adjustment in a virtual reality environment |
US10311638B2 (en) | 2014-07-25 | 2019-06-04 | Microsoft Technology Licensing, Llc | Anti-trip when immersed in a virtual reality environment |
US10416760B2 (en) | 2014-07-25 | 2019-09-17 | Microsoft Technology Licensing, Llc | Gaze-based object placement within a virtual reality environment |
US10451875B2 (en) | 2014-07-25 | 2019-10-22 | Microsoft Technology Licensing, Llc | Smart transparency for virtual objects |
US20160027214A1 (en) * | 2014-07-25 | 2016-01-28 | Robert Memmott | Mouse sharing between a desktop and a virtual world |
US9858720B2 (en) | 2014-07-25 | 2018-01-02 | Microsoft Technology Licensing, Llc | Three-dimensional mixed-reality viewport |
CN104156190A (zh) * | 2014-08-12 | 2014-11-19 | 中国电子科技集团公司第十五研究所 | 一种在国产化计算机上实现多屏显示的方法及系统 |
US10673940B2 (en) * | 2014-10-21 | 2020-06-02 | International Business Machines Corporation | Pointing device router for smooth collaboration between devices |
TWI681319B (zh) * | 2018-03-22 | 2020-01-01 | 大陸商東莞寶德電子有限公司 | 游標控制系統及其控制方法 |
US11093101B2 (en) * | 2018-06-14 | 2021-08-17 | International Business Machines Corporation | Multiple monitor mouse movement assistant |
CN115827282B (zh) * | 2023-02-14 | 2023-05-19 | 北京铁力山科技股份有限公司 | 鼠标漫游方法、装置、设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4112423A (en) * | 1976-09-13 | 1978-09-05 | Kelsey-Hayes Co. | Dual-screen data display terminal for data processing units |
US4698625A (en) * | 1985-05-30 | 1987-10-06 | International Business Machines Corp. | Graphic highlight adjacent a pointing cursor |
DE3632601A1 (de) * | 1985-09-27 | 1987-04-23 | Olympus Optical Co | Vorrichtung zum darstellen einer positionsanzeigemarke auf mehreren bildschirmen |
JPS649517A (en) * | 1987-07-02 | 1989-01-12 | Toshiba Corp | Pointing device |
US4974173A (en) * | 1987-12-02 | 1990-11-27 | Xerox Corporation | Small-scale workspace representations indicating activities by other users |
US5280583A (en) * | 1988-05-13 | 1994-01-18 | Hitachi, Ltd. | System and method for performing interlocution at a plurality of terminals connected to communication network |
US5107443A (en) * | 1988-09-07 | 1992-04-21 | Xerox Corporation | Private regions within a shared workspace |
US5198802A (en) * | 1989-12-15 | 1993-03-30 | International Business Machines Corp. | Combined keyboard and mouse entry |
JPH03292524A (ja) * | 1990-04-11 | 1991-12-24 | Oki Electric Ind Co Ltd | カーソル移動方式 |
JPH06274305A (ja) * | 1993-03-18 | 1994-09-30 | Hitachi Ltd | 画面表示装置及びその制御方法 |
GB2282944B (en) * | 1993-09-30 | 1998-01-28 | Intel Corp | Remote display of objects and cursor movement in a conferencing system |
CA2140164A1 (en) * | 1994-01-27 | 1995-07-28 | Kenneth R. Robertson | System and method for computer cursor control |
-
1995
- 1995-09-19 US US08/531,209 patent/US5748189A/en not_active Expired - Lifetime
-
1996
- 1996-09-11 DE DE19636923A patent/DE19636923A1/de not_active Ceased
- 1996-09-13 JP JP8243140A patent/JPH09185483A/ja active Pending
- 1996-09-19 FR FR9611424A patent/FR2738943B1/fr not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007061537A1 (de) | 2007-12-20 | 2009-07-02 | Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr | Umschaltvorrichtung, Verfahren und System zum Wirksamschalten mindestens einer Eingabevorrichtung für mindestens zwei Rechnereinheiten |
Also Published As
Publication number | Publication date |
---|---|
US5748189A (en) | 1998-05-05 |
FR2738943A1 (fr) | 1997-03-21 |
FR2738943B1 (fr) | 1998-09-11 |
JPH09185483A (ja) | 1997-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19636923A1 (de) | Verfahren und Vorrichtung zur gemeinsamen Benutzung von Eingabevorrichtungen durch mehrere unabhängige Graphik-Anzeigevorrichtungen | |
DE69726167T2 (de) | Verfahren zur verwaltung der darstellung von bildschirmanzeigen in einer multifenster-rechnungsumgebung | |
DE69525336T2 (de) | Lernfähiger benutzeroberflächenübersetzer | |
DE10324652B4 (de) | Multivisions-System und Verfahren zum Steuern dieses Systems | |
DE69533568T2 (de) | Virtuelles Desk-Top-System und Verfahren dafür | |
DE60205750T2 (de) | Lenkung der aufmerksamkeit des benutzers auf bestimmte icons, denen sich ein zeiger nähert, in interaktiven benutzerschnittstellen | |
DE4446139C2 (de) | Verfahren und Einrichtung zum Hervorheben von Objekten in einem Konferenzsystem | |
DE69523593T2 (de) | Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle | |
DE69620301T2 (de) | Fensterverwaltung | |
DE3930581A1 (de) | Arbeitsplatz fuer prozessfuehrungspersonal | |
DE3787127T2 (de) | Datenanzeigesystem. | |
DE69230095T2 (de) | Bildfensterverwaltung von verbundenen Anwendungen | |
DE3751075T2 (de) | Verfahren und System zur Steuerung einer Multibildschirmanzeige. | |
DE69426044T2 (de) | Methode und Gerät zur Lieferung eines zweidimensionalen positionsempfindlichen Verschiebungicons in einer Benutzerschnittstelle eines Datenverarbeitungssystem | |
DE69026647T2 (de) | Zoommodusbetriebsarten in einem Anzeigegerät | |
DE69627331T2 (de) | Rekonfigurierbare algorithmische netzwerke für flugzeugdatenverwaltung | |
DE69017186T2 (de) | Verfahren zur Cursorbewegungssteuerung auf bestimmten Arbeitsrechnern. | |
DE19522185A1 (de) | Ein Verfahren und System zur dynamischen Übersetzung zwischen verschiedenen grafischen Benutzeroberflächen-Systemen | |
DE4417588A1 (de) | Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung | |
DE3688191T2 (de) | Editor für virtuelle Maschinen. | |
WO2001075574A2 (de) | Verfahren zum navigieren zwischen ausschnitten in einem darstellungsraum | |
DE4434878A1 (de) | Fern-Anzeige von Objekten und Cursorbewegungen in einem Konferenzsystem | |
DE102016202694A1 (de) | Benutzerschnittstelle mit mehreren Anzeigen und Verfahren zur Positionierung von Inhalten auf mehreren Anzeigen | |
DE69315482T2 (de) | Auf Prioritäten basierte graphische Anzeige in einem offenen System mit Fenstern | |
DE69017185T2 (de) | Verfahren zur Cursorsteuerung der Verschiebungsbewegungen auf bestimmten Arbeitsrechnern. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |
Effective date: 20120307 |