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-Anzeigevorrichtungen

Info

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
Application number
DE19636923A
Other languages
English (en)
Inventor
John Trueblood
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Electronics Inc
Original Assignee
Sony Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Electronics Inc filed Critical Sony Electronics Inc
Publication of DE19636923A1 publication Critical patent/DE19636923A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0489Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital 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

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.
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.
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.
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.
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.
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.
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.
DE19636923A 1995-09-19 1996-09-11 Verfahren und Vorrichtung zur gemeinsamen Benutzung von Eingabevorrichtungen durch mehrere unabhängige Graphik-Anzeigevorrichtungen Ceased DE19636923A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US6348933B1 (en) * 1998-07-20 2002-02-19 Hewlett-Packard Company Single logical screen display using multiple remote 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
US6249294B1 (en) * 1998-07-20 2001-06-19 Hewlett-Packard Company 3D graphics in a single logical sreen display using multiple 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
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
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
JP2007535773A (ja) 2004-04-30 2007-12-06 ヒルクレスト・ラボラトリーズ・インコーポレイテッド 自由空間ポインティングデバイスおよびポインティング方法
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
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
US7950046B2 (en) 2007-03-30 2011-05-24 Uranus International Limited Method, apparatus, system, medium, and signals for intercepting 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
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
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
US20130174062A1 (en) * 2009-12-23 2013-07-04 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 フリーダム サイエンティフィック インコーポレイテッド 非一時的コンピュータ可読媒体
US9182935B2 (en) 2011-09-27 2015-11-10 Z124 Secondary single screen mode activation through menu option
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 纬创资通股份有限公司 扩展屏幕模式下的应用程序运作方法以及平板计算机
US10311638B2 (en) 2014-07-25 2019-06-04 Microsoft Technology Licensing, Llc Anti-trip when immersed in a virtual reality environment
US9858720B2 (en) 2014-07-25 2018-01-02 Microsoft Technology Licensing, Llc Three-dimensional mixed-reality viewport
US10451875B2 (en) 2014-07-25 2019-10-22 Microsoft Technology Licensing, Llc Smart transparency for virtual objects
US10416760B2 (en) 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
US9766460B2 (en) 2014-07-25 2017-09-19 Microsoft Technology Licensing, Llc Ground plane adjustment in a virtual reality environment
US20160027214A1 (en) * 2014-07-25 2016-01-28 Robert Memmott Mouse sharing between a desktop and a virtual world
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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
FR2738943B1 (fr) 1998-09-11
FR2738943A1 (fr) 1997-03-21
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
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
DE3930581A1 (de) Arbeitsplatz fuer prozessfuehrungspersonal
EP1141799B1 (de) System und verfahren zum bedienen und beobachten eines automatisierungssystems
DE60302063T2 (de) Graphische benutzeroberfläche für einen flugsimulator basierend auf einer client-server-architektur
EP0886821B1 (de) Betrieb mehrerer sichtgeräte an einer bildschirmsteuerung
DE60121832T2 (de) Elektronisches checklistensystem für flugzeuge mit hyperlinks
DE60003246T2 (de) Software Schnittstelle
DE69817158T2 (de) Benutzerschnittstellen-Mechanismus zur Manipulierung von Kontexten in Computerverwaltungsapplikationen
DE19522185A1 (de) Ein Verfahren und System zur dynamischen Übersetzung zwischen verschiedenen grafischen Benutzeroberflächen-Systemen
EP1110127B1 (de) Informations-, bedien- und/oder beobachtungssystem mit modellbasierter benutzeroberfläche und verfahren zum modellbasierten bedienen und/oder beobachten
DE4417588A1 (de) Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung
EP1272921A2 (de) Verfahren zum navigieren zwischen ausschnitten in einem darstellungsraum
DE102004010854A1 (de) Anzeigen von Netzsegmentdecodierinformationen in schematischer Form
DE10051680A1 (de) Schema zur Darstellung mehrerer Druckauftragsabänderungselemente in einer Drucksoftware-Benutzerschnittstelle
DE102016202694A1 (de) Benutzerschnittstelle mit mehreren Anzeigen und Verfahren zur Positionierung von Inhalten auf mehreren Anzeigen
DE60006861T2 (de) Steurung von mehreren anzeigen von verschiedenen typen
DE4414360C2 (de) Interaktives Steuerungssystem mit mehreren Anzeigen und Verfahren zum Betreiben eines solchen
EP0970869B1 (de) Verfahren zur sicheren Anzeige des Zustandes einer signaltechnischen Anlage
EP0623878A2 (de) Anzeigeeinrichtung für ein Installationsbussystem
DE1938248A1 (de) Bilddarstellungsanlage

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