[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.