mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-25 07:10:05 +01:00
Perform rotation redisplay before calling driver block handler (which may flush rendering)
The rotation block handler uses regular driver rendering functions to
repaint the screen, if those functions queue commands in the driver,
it's important that the driver block handler be invoked after the
rotated image is drawn.
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 1740cda7a3)
This commit is contained in:
parent
cebc0a7aa7
commit
31dc4fe0be
1 changed files with 3 additions and 2 deletions
|
|
@ -263,11 +263,12 @@ xf86RotateBlockHandler(int screenNum, pointer blockData,
|
|||
ScreenPtr pScreen = screenInfo.screens[screenNum];
|
||||
ScrnInfoPtr pScrn = xf86Screens[screenNum];
|
||||
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
|
||||
Bool rotation_active;
|
||||
|
||||
rotation_active = xf86RotateRedisplay(pScreen);
|
||||
pScreen->BlockHandler = xf86_config->BlockHandler;
|
||||
(*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask);
|
||||
if (xf86RotateRedisplay(pScreen))
|
||||
{
|
||||
if (rotation_active) {
|
||||
/* Re-wrap if rotation is still happening */
|
||||
xf86_config->BlockHandler = pScreen->BlockHandler;
|
||||
pScreen->BlockHandler = xf86RotateBlockHandler;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue