summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Chary <corentin.chary@gmail.com>2011-06-08 14:01:32 +0200
committerCorentin Chary <corentin.chary@gmail.com>2011-06-08 14:03:21 +0200
commit31244834b8f3faaa6604944a471fa91ebf4eda4b (patch)
tree566c6d3898947da59823d714bf2cdf5559da1188
parent7c8018a8b924fcee9dde432f95b4ef553da25328 (diff)
wlshm: we don't need to destroy the pixmap, X will do it
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
-rw-r--r--src/wlshm.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/wlshm.c b/src/wlshm.c
index 6467cf8..9f9d1c2 100644
--- a/src/wlshm.c
+++ b/src/wlshm.c
@@ -199,16 +199,13 @@ wlshm_valid_mode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
}
static void
-wlshm_free_window_pixmap(WindowPtr pWindow, BOOL destroy)
+wlshm_free_window_pixmap(WindowPtr pWindow)
{
ScreenPtr pScreen = pWindow->drawable.pScreen;
struct wlshm_device *wlshm = wlshm_screen_priv(pScreen);
struct wlshm_pixmap *d;
PixmapPtr pixmap;
- if (!window_own_pixmap(pWindow))
- return ;
-
pixmap = pScreen->GetWindowPixmap(pWindow);
if (!pixmap)
return ;
@@ -219,14 +216,10 @@ wlshm_free_window_pixmap(WindowPtr pWindow, BOOL destroy)
dixSetPrivate(&pixmap->devPrivates, &wlshm_pixmap_private_key, NULL);
- if (destroy) {
- fbDestroyPixmap(pixmap);
- _fbSetWindowPixmap(pWindow, NULL);
- } else {
- pixmap->devPrivate.ptr = d->orig;
- memcpy(d->orig, d->data, d->bytes);
- munmap(d->data, d->bytes);
- }
+ pixmap->devPrivate.ptr = d->orig;
+ memcpy(d->orig, d->data, d->bytes);
+ munmap(d->data, d->bytes);
+
free(d);
}
@@ -237,7 +230,7 @@ wlshm_destroy_window(WindowPtr pWindow)
struct wlshm_device *wlshm = wlshm_screen_priv(pScreen);
Bool ret;
- wlshm_free_window_pixmap(pWindow, TRUE);
+ wlshm_free_window_pixmap(pWindow);
pScreen->DestroyWindow = wlshm->DestroyWindow;
ret = (*pScreen->DestroyWindow)(pWindow);
@@ -254,7 +247,7 @@ wlshm_unrealize_window(WindowPtr pWindow)
struct wlshm_device *wlshm = wlshm_screen_priv(pScreen);
Bool ret;
- wlshm_free_window_pixmap(pWindow, TRUE);
+ wlshm_free_window_pixmap(pWindow);
pScreen->UnrealizeWindow = wlshm->UnrealizeWindow;
ret = (*pScreen->UnrealizeWindow)(pWindow);
@@ -270,7 +263,7 @@ wlshm_set_window_pixmap(WindowPtr pWindow, PixmapPtr pPixmap)
ScreenPtr pScreen = pWindow->drawable.pScreen;
struct wlshm_device *wlshm = wlshm_screen_priv(pScreen);
- wlshm_free_window_pixmap(pWindow, FALSE);
+ wlshm_free_window_pixmap(pWindow);
pScreen->SetWindowPixmap = wlshm->SetWindowPixmap;
(*pScreen->SetWindowPixmap)(pWindow, pPixmap);