X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1a87edf286921de9b182f3d19adb6bb63ba85ebd..fb5e0dcf0d1f1f82cda094f3cb6099662dcad9be:/src/palmos/control.cpp diff --git a/src/palmos/control.cpp b/src/palmos/control.cpp index 90a0b34af3..3b9b881995 100644 --- a/src/palmos/control.cpp +++ b/src/palmos/control.cpp @@ -123,7 +123,14 @@ bool wxControl::PalmCreateControl(ControlStyleType style, w = size.x == wxDefaultCoord ? 1 : size.x, h = size.y == wxDefaultCoord ? 1 : size.y; - AdjustForParentClientOrigin(x, y); + wxWindow *win = this; + while(win->GetParent()) + { + win = win->GetParent(); + wxPoint pt(win->GetClientAreaOrigin()); + x += pt.x; + y += pt.y; + } ControlType *control = CtlNewControl( (void **)&form, @@ -299,18 +306,23 @@ void wxControl::DoSetBounds( RectangleType &rect ) void wxControl::DoGetPosition( int *x, int *y ) const { + int ox = 0, oy = 0; + AdjustForParentClientOrigin(ox, oy); + RectangleType rect; DoGetBounds(rect); + if(x) - *x = rect.topLeft.x; + *x = rect.topLeft.x - ox; if(y) - *y = rect.topLeft.y; + *y = rect.topLeft.y - oy; } void wxControl::DoGetSize( int *width, int *height ) const { RectangleType rect; DoGetBounds(rect); + if(width) *width = rect.extent.x; if(height)