From 556469d8ba15685a85f2c4d2ad33e8c9eb42a420 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Sun, 22 Sep 2002 14:32:23 +0000 Subject: [PATCH] Fixed bug [ 413614 ] native wxDragImage w/o mask is broken by adding ILC_MASK even when there's no mask. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/dragimag.tex | 8 ++++++++ src/msw/dragimag.cpp | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/latex/wx/dragimag.tex b/docs/latex/wx/dragimag.tex index 72cca31294..42eab1e207 100644 --- a/docs/latex/wx/dragimag.tex +++ b/docs/latex/wx/dragimag.tex @@ -28,6 +28,14 @@ override \helpref{wxDragImage::DoDrawImage}{wxdragimagedodrawimage} and Please see {\tt samples/dragimag} for an example. +%\wxheading{Notes} +% +%Using the native Windows implementation, you must supply an image with a mask, or +%the image will not show when dragged. It is not clear if this is a bug +%in Windows or in the wxDragImage implementation. You can add a mask +%with a call to wxImage::SetMaskColour, passing RGB values not likely +%to be in the image. [CURED by creating the ImageList with ILC_MASK] + \wxheading{Derived from} \helpref{wxObject}{wxobject} diff --git a/src/msw/dragimag.cpp b/src/msw/dragimag.cpp index b80fac16b7..ae349c83fd 100644 --- a/src/msw/dragimag.cpp +++ b/src/msw/dragimag.cpp @@ -129,8 +129,12 @@ bool wxDragImage::Create(const wxBitmap& image, const wxCursor& cursor) flags = ILC_COLOR32; bool mask = (image.GetMask() != 0); - if ( mask ) - flags |= ILC_MASK; + + // Curiously, even if the image doesn't have a mask, + // we still have to use ILC_MASK or the image won't show + // up when dragged. +// if ( mask ) + flags |= ILC_MASK; m_hImageList = (WXHIMAGELIST) ImageList_Create(image.GetWidth(), image.GetHeight(), flags, 1, 1);