[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index] 
Re: [XaraXtreme-dev] Problem in wxWidgets 2.6.3...
- From: Luke Hart <lukeh@xxxxxxxx>
- Date: Fri, 19 May 2006 11:20:20 +0100
- Subject: Re: [XaraXtreme-dev] Problem in wxWidgets 2.6.3...
Gerry Iles wrote:
There appears to be a problem in wxFindWindowAtPoint that is causing 
our drags to go wrong when galleries or dialogs are open. If you open 
XaraLX and move the window to the right half of the screen and then 
open the colour gallery and put it in the top left corner about half 
the screen height and then try dragging a colour (either from the 
gallery or from the colour line) around in the view you will see that 
there is a patch the size of the colour gallery in the top left of our 
mainframe into which you cant drop the colour.
Adding a little bit of code to the status line that dumps out the 
classname and window title confirms that wxFindWindowAtPointer thinks 
it is over the colour gallery when it isn’t. A similar thing happens 
with the align dialog.
This obviously looks like an issue with GetRect (and GetPosition) 
returning screen coords for “top level” windows. On investigation it 
appears that the bug is here:
--- src/common/utilscmn.cpp 2006-05-19 09:31:14.000000000 +0100
+++ src/common/utilscmn.cpp 2006-05-19 09:25:32.000000000 +0100
@@ -904,7 +904,7 @@
wxPoint pos = win->GetPosition();
wxSize sz = win->GetSize();
- if (win->GetParent())
+ if (!win->IsTopLevel())
{
pos = win->GetParent()->ClientToScreen(pos);
}
The problem with this is that all frames and dialogs are considered 
“top level” regardless of whether they have a parent. Checking 
IsTopLevel instead appears to fix it...
Can someone who has the latest wx source please check if this has been 
fixed already? If not, I’ll post it to the patch tracker.
This could do with being applied to the build server.
Gerry
It's not in 2.6 branch head. I've also applied this to the build server.
Luke
PS It's a lot easier to apply a patch if it's an attachment and not 
included inline.