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.