Fixed bug #1362913, did not check format pointer.
fluxgen fluxgen
1 files changed,
25 insertions(+),
10 deletions(-)
jump to
M
src/FbTk/Transparent.cc
→
src/FbTk/Transparent.cc
@@ -52,7 +52,9 @@ XRenderPictFormat *format = XRenderFindFormat(disp, PictFormatType |
PictFormatDepth | PictFormatAlphaMask, &pic_format, 0); if (format == 0) { - cerr<<"FbTk::Transparent: "<<_FBTK_CONSOLETEXT(Error, NoRenderFormat, "Warning: Failed to find valid format for alpha.", "transparency requires a pict format, can't get one...")<<endl; + cerr<<"FbTk::Transparent: "<<_FBTK_CONSOLETEXT(Error, NoRenderFormat, + "Warning: Failed to find valid format for alpha.", + "transparency requires a pict format, can't get one...")<<endl; return 0; }@@ -60,7 +62,9 @@ // create one pixel pixmap with depth 8 for alpha
Pixmap alpha_pm = XCreatePixmap(disp, drawable, 1, 1, 8); if (alpha_pm == 0) { - cerr<<"FbTk::Transparent: "<<_FBTK_CONSOLETEXT(Error, NoRenderPixmap, "Warning: Failed to create alpha pixmap.", "XCreatePixmap failed for our transparency pixmap")<<endl; + cerr<<"FbTk::Transparent: "<<_FBTK_CONSOLETEXT(Error, NoRenderPixmap, + "Warning: Failed to create alpha pixmap.", + "XCreatePixmap failed for our transparency pixmap")<<endl; return 0; }@@ -71,7 +75,9 @@ Picture alpha_pic = XRenderCreatePicture(disp, alpha_pm,
format, CPRepeat, &attr); if (alpha_pic == 0) { XFreePixmap(disp, alpha_pm); - cerr<<"FbTk::Transparent: "<<_FBTK_CONSOLETEXT(Error, NoRenderPicture, "Warning: Failed to create alpha picture.", "XRenderCreatePicture failed")<<endl; + cerr<<"FbTk::Transparent: "<<_FBTK_CONSOLETEXT(Error, NoRenderPicture, + "Warning: Failed to create alpha picture.", + "XRenderCreatePicture failed")<<endl; return 0; }@@ -228,17 +234,22 @@ freeDest();
// create new dest pic if we have a valid dest drawable if (dest != 0) { - XRenderPictFormat *format = + XRenderPictFormat *format = XRenderFindVisualFormat(disp, DefaultVisual(disp, screen_num)); if (format == 0) { _FB_USES_NLS; cerr<<"FbTk::Transparent: "; - fprintf(stderr, _FBTK_CONSOLETEXT(Error, NoRenderVisualFormat, "Failed to find format for screen(%d)", "XRenderFindVisualFormat failed... include %d for screen number").c_str(), screen_num); + fprintf(stderr, + _FBTK_CONSOLETEXT(Error, NoRenderVisualFormat, + "Failed to find format for screen(%d)", + "XRenderFindVisualFormat failed... include %d for screen number"). + c_str(), screen_num); + cerr<<endl; + } else { + m_dest_pic = XRenderCreatePicture(disp, dest, format, 0, 0); } - m_dest_pic = XRenderCreatePicture(disp, dest, format, 0, 0); - } m_dest = dest;@@ -273,11 +284,15 @@ DefaultVisual(disp, screen_num));
if (format == 0) { _FB_USES_NLS; cerr<<"FbTk::Transparent: "; - fprintf(stderr, _FBTK_CONSOLETEXT(Error, NoRenderVisualFormat, "Failed to find format for screen(%d)", "XRenderFindVisualFormat failed... include %d for screen number").c_str(), screen_num); + fprintf(stderr, _FBTK_CONSOLETEXT(Error, NoRenderVisualFormat, + "Failed to find format for screen(%d)", + "XRenderFindVisualFormat failed... include %d for screen number"). + c_str(), screen_num); cerr<<endl; + } else { + m_src_pic = XRenderCreatePicture(disp, m_source, format, + 0, 0); } - m_src_pic = XRenderCreatePicture(disp, m_source, format, - 0, 0); } // recreate new alpha