Occassionally DoDrop seems to think it's got a place to drop, but there's no hint rectangle to display. The most obvious example is when dragging a floating toolbar by its titlebar over the center pane (i.e. when it would not otherwise be docked). This leads to DoDrop returning true, but there being no hint part. DrawHintPart then tries to draw an empty rect. Whether EORing or using my pseudotransparent hint, this creates a small mess in the very top left hand corner of the main frame client area (i.e. in the top left of the top left docking area).
This is fixed by this trivial patch:
- Code: Select all
Index: src/manager.cpp
===================================================================
--- src/manager.cpp (revision 427)
+++ src/manager.cpp (working copy)
@@ -3282,6 +3286,12 @@
delete sizer;
+ if (rect.IsEmpty())
+ {
+ HideHint();
+ return;
+ }
+
// actually show the hint rectangle on the screen
m_frame->ClientToScreen(&rect.x, &rect.y);
ShowHint(rect);