Korrektur von Fehlern von X Window Clients und Servern

Die Anweisung

workarounds {[+|-]exposeAfterGraphicsExpose
|[+|-]exposeBeforeGraphicsExpose
|[+|-]exposeInsteadOfGraphicsExpose
|[+|-]forgetBitGravity
|[+|-]glx13
|[+|-]refreshBitGravity|none}...

dient zur Behebung von Fehlern einiger X Window Clients und Server, die bei bestimmten Konfigurationen von XposeXrecord auftreten, oder zur Erweiterung der Funktionalität. Diese Korrekturen sind zwar nicht immer konform zum X11-Protokoll, beeinflussen jedoch nicht das Verhalten korrekter Clients.

Die folgenden Abschnitte stellen die Probleme und die Lösungen exemplarisch dar.

Ignorieren von GraphicsExpose-Ereignissen

Einige wenige X Window Clients ignorieren fälschlicherweise GraphicsExpose-Ereignisse in der Annahme, daß ihre Fenster stets ganz sichtbar sind. Wird etwa der Inhalt eines scrollenden Fensters immer aktiv gezeichnet statt als Reaktion auf Expose- und GraphicsExpose-Ereignisse, werden neu sichtbare Bereiche des Fensters unter Umständen nicht korrekt aktualisiert.

Die Anweisungen

workarounds exposeAfterGraphicsExpose
workarounds exposeBeforeGraphicsExpose
workarounds exposeInsteadOfGraphicsExpose

veranlassen das xposexrecord-Programm, für jedes GraphicsExpose-Ereignis ein Expose-Ereignis an den Client zu senden, und zwar nach, vor beziehungsweise anstelle des GraphicsExpose-Ereignisses. Das Expose-Ereignis soll das Zeichnen des neuen Fensterinhalts bewirken.

Fehlerhafte Implementierung des Konzepts der Bit Gravity

Manche X Window Clients nutzen das Konzept der Bit Gravity aus, um die neu zu zeichnenden Flächen zu minimieren. Nicht alle X Window Server implementieren dieses Konzept korrekt.

Die Anweisung

workarounds forgetBitGravity

läßt die Bit Gravity stets ausgeschaltet, und die Anweisung

workarounds refreshBitGravity

veranlaßt das xposexrecord-Programm, nach jeder Änderung der Größe eines Fensters dessen Inhalt vollständig zu aktualisieren.

Teilweise Implementierung der Protokoll-Erweiterung GLX Version 1.3

Die Anweisung

workarounds glx13

läßt den XposeXrecord-Proxy die GLX-Anweisungen GetFBConfigs, MakeContextCurrent, CreateWindow, DestroyWindow, GetColorTable, GetColorTableParameter*, GetConvolutionFilter, GetConvolutionParameter*, GetSeparableFilter, GetHistogram, GetHistogramParameter*, GetMinmax und GetMinmaxParameter* erkennen und verarbeiten, obwohl diese Anweisungen in der Version 1.2 der GLX-Protokoll-Erweiterung nicht definiert sind.

Copyright © 2021 X-Software GmbH
info@x-software.com