Fixed RefreshRect() call in wxPropertyGrid::DrawItems() to use physical window coordinates instead of logical grid ones

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2010-03-22 16:07:45 +00:00
parent 976e63a7a8
commit e948e2140f
2 changed files with 10 additions and 1 deletions

View File

@@ -1433,7 +1433,7 @@ public:
/** /**
Returns rectangle that fully contains properties between and including Returns rectangle that fully contains properties between and including
p1 and p2. p1 and p2. Rectangle is in virtual scrolled window coordinates.
*/ */
wxRect GetPropertyRect( const wxPGProperty* p1, wxRect GetPropertyRect( const wxPGProperty* p1,
const wxPGProperty* p2 ) const; const wxPGProperty* p2 ) const;

View File

@@ -2530,6 +2530,8 @@ wxRect wxPropertyGrid::GetPropertyRect( const wxPGProperty* p1, const wxPGProper
// //
// Return rect which encloses the given property range // Return rect which encloses the given property range
// (in logical grid coordinates)
//
int visTop = p1->GetY(); int visTop = p1->GetY();
int visBottom; int visBottom;
@@ -2572,6 +2574,13 @@ void wxPropertyGrid::DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 )
wxRect r = GetPropertyRect(p1, p2); wxRect r = GetPropertyRect(p1, p2);
if ( r.width > 0 ) if ( r.width > 0 )
{ {
// Convert rectangle from logical grid coordinates to physical ones
int vx, vy;
GetViewStart(&vx, &vy);
vx *= wxPG_PIXELS_PER_UNIT;
vy *= wxPG_PIXELS_PER_UNIT;
r.x -= vx;
r.y -= vy;
RefreshRect(r); RefreshRect(r);
} }
} }