Entfuehrung des Mauszeigers

04/02/2011 - 13:06 von Andreas M. Kirchwitz | Report spam
Hallo X11-Freunde!

Manche Applikationen wie Firefox oder Chrome setzen gelegentlich
selbstàndig den Mauszeiger um. Beispielsweise Firefox setzt ihn
oft (aber nicht immer) auf das Download-Fenster und Google Chrome 9
setzt ihn beim Öffnen von Bookmarks in die Mitte des Fensters.

Das nervt!

Wenn der Mauszeiger wenigstens auf sinnvolle Positionen entführt
würde, die dem normalen Ablauf entsprechen, dann könnte ich mich
damit arrangieren (obwohl ich's trotzdem eine blöde finde), aber
was Firefox und Chrome machen, ist sinnlos und unproduktiv.

Wie funktioniert so eine "Mauszeiger-Entführung" technisch?
Geht das direkt an den X11-Server? Oder übernimmt das der
Window-Manager? Ich verwende fvwm2.

Wie kann man das verhindern?

Kann man die Mauszeiger-Entführung pro Anwendung abstellen?
Oder meinetwegen auch global?

Entmündigt ... Andreas
 

Lesen sie die antworten

#1 Dirk Thierbach
04/02/2011 - 15:25 | Warnen spam
Andreas M. Kirchwitz wrote:
Wie funktioniert so eine "Mauszeiger-Entführung" technisch?
Geht das direkt an den X11-Server?



Letztendlich ist es vermutlich ein Aufruf von XWarpPointer (3) aus der
Anwendung. Uebrigens, aus der manpage:

There is seldom any reason for calling this function. The pointer
should normally be left to the user. If you do use this function, how‐
ever, it generates events just as if the user had instantaneously moved
the pointer from one position to another.

Die Entwickler von X waren wohl mit Dir einer Meinung...

Oder übernimmt das der Window-Manager? Ich verwende fvwm2.



Unwahrscheinlich. Ich verwende auch fvwm2, und bei mir passiert es nicht.

Wie kann man das verhindern?



Vermutlich die Anwendungsentwickler damit nerven, dass sie es aendern
sollen.

Kann man die Mauszeiger-Entführung pro Anwendung abstellen?



Wenn die Anwendung das zulaesst...

Wenn Du keine Lust hast, Dich durch den Sourcecode zu wuehlen und
neuzuuebersetzen, tut's vielleicht auch ein Library-Preload, in dem
XWarpPointer durch eine leere Funktion ersetzt ist :-)

- Dirk

Ähnliche fragen