summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohns <johns98@gmx.net>2012-07-25 16:07:36 +0200
committerJohns <johns98@gmx.net>2012-07-25 16:07:36 +0200
commit8b0d8d84463b22a4183a567aaa300f30bc2a2815 (patch)
tree128f04d520331d8d6b0336e08b60fcebc10dfd4d
parent15583a79c4e92c691c0a260b821a0f5702488526 (diff)
downloadvdr-plugin-softhddevice-8b0d8d84463b22a4183a567aaa300f30bc2a2815.tar.gz
vdr-plugin-softhddevice-8b0d8d84463b22a4183a567aaa300f30bc2a2815.tar.bz2
Free used X11 resources colormap, pixmap, cursor.
-rw-r--r--ChangeLog1
-rw-r--r--video.c15
2 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2ae6f09..718d45b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
User johns
Date:
+ Free used X11 resources colormap, pixmap, cursor.
Fix bug: spelling USE_VAPI wrong, missing functions.
User johns
diff --git a/video.c b/video.c
index 1f54bf5..8aa1982 100644
--- a/video.c
+++ b/video.c
@@ -286,6 +286,7 @@ static xcb_colormap_t VideoColormap; ///< video colormap
static xcb_window_t VideoWindow; ///< video window
static xcb_screen_t const *VideoScreen; ///< video screen
static uint32_t VideoBlankTick; ///< blank cursor timer
+static xcb_pixmap_t VideoCursorPixmap; ///< blank curosr pixmap
static xcb_cursor_t VideoBlankCursor; ///< empty invisible cursor
static int VideoWindowX; ///< video output window x coordinate
@@ -9917,9 +9918,9 @@ static void VideoCreateWindow(xcb_window_t parent, xcb_visualid_t visual,
values[0] = cursor;
xcb_change_window_attributes(Connection, VideoWindow, XCB_CW_CURSOR,
values);
+ VideoCursorPixmap = pixmap;
VideoBlankCursor = cursor;
VideoBlankTick = 0;
- // FIXME: free cursor/pixmap needed?
}
///
@@ -10448,6 +10449,18 @@ void VideoExit(void)
xcb_destroy_window(Connection, VideoWindow);
VideoWindow = XCB_NONE;
}
+ if (VideoColormap != XCB_NONE) {
+ xcb_free_colormap(Connection, VideoColormap);
+ VideoColormap = XCB_NONE;
+ }
+ if (VideoBlankCursor != XCB_NONE) {
+ xcb_free_cursor(Connection, VideoBlankCursor);
+ VideoBlankCursor = XCB_NONE;
+ }
+ if (VideoCursorPixmap != XCB_NONE) {
+ xcb_free_pixmap(Connection, VideoCursorPixmap);
+ VideoCursorPixmap = XCB_NONE;
+ }
if (XlibDisplay) {
if (XCloseDisplay(XlibDisplay)) {
Error(_("video: error closing display\n"));