summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann <ssp@localhost.localdomain>2010-11-07 04:08:15 -0500
committerSøren Sandmann Pedersen <ssp@redhat.com>2011-01-26 08:12:19 -0500
commit24a3f9f978c906b0be6dc04c3527b9dce5b6161a (patch)
tree61171999d41a3f4710cb6b8ba866fadf8b6727cc
parented41c3a610af0c5182e52d72d311d06581594a39 (diff)
uxa: In change_window_attributes() only read back if the backing pixmap changed
This speeds up log in time considerably.
-rw-r--r--src/uxa/uxa.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/uxa/uxa.c b/src/uxa/uxa.c
index 141c497..7d6efe1 100644
--- a/src/uxa/uxa.c
+++ b/src/uxa/uxa.c
@@ -335,11 +335,16 @@ void uxa_finish_access_window(WindowPtr pWin)
static Bool uxa_change_window_attributes(WindowPtr pWin, unsigned long mask)
{
Bool ret;
+ Bool need_access = !!(mask & (CWBackPixmap | CWBorderPixmap));
- if (!uxa_prepare_access_window(pWin))
+ if (need_access)
+ {
+ if (!uxa_prepare_access_window(pWin))
return FALSE;
+ }
ret = fbChangeWindowAttributes(pWin, mask);
- uxa_finish_access_window(pWin);
+ if (need_access)
+ uxa_finish_access_window(pWin);
return ret;
}