X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3c861501a451503b31c075ccb59d16b0ae01e99..9cf7a6c06b7c8a22084e911cfca78f8ade5b9f89:/src/dfb/window.cpp diff --git a/src/dfb/window.cpp b/src/dfb/window.cpp index 532bf24b92..bd9f6cdce5 100644 --- a/src/dfb/window.cpp +++ b/src/dfb/window.cpp @@ -126,6 +126,10 @@ bool wxWindowDFB::Create(wxWindow *parent, if ( parent ) parent->AddChild(this); + // set the size to something bogus initially, in case some code tries to + // create wxWindowDC before SetSize() is called below: + m_rect.width = m_rect.height = 1; + int x, y, w, h; x = pos.x, y = pos.y; if ( x == -1 ) x = 0; @@ -141,23 +145,21 @@ bool wxWindowDFB::Create(wxWindow *parent, // surface access // --------------------------------------------------------------------------- -IDirectFBSurfacePtr wxWindowDFB::ObtainDfbSurface() const +wxIDirectFBSurfacePtr wxWindowDFB::ObtainDfbSurface() const { wxCHECK_MSG( m_parent, NULL, _T("parentless window?") ); - IDirectFBSurfacePtr parentSurface(m_parent->GetDfbSurface()); + wxIDirectFBSurfacePtr parentSurface(m_parent->GetDfbSurface()); wxCHECK_MSG( parentSurface, NULL, _T("invalid parent surface") ); wxRect r(GetRect()); AdjustForParentClientOrigin(r.x, r.y, 0); DFBRectangle rect = { r.x, r.y, r.width, r.height }; - IDirectFBSurfacePtr surface; - DFB_CALL( parentSurface->GetSubSurface(parentSurface, &rect, &surface) ); - return surface; + return parentSurface->GetSubSurface(&rect); } -IDirectFBSurfacePtr wxWindowDFB::GetDfbSurface() +wxIDirectFBSurfacePtr wxWindowDFB::GetDfbSurface() { if ( !m_surface ) { @@ -192,9 +194,9 @@ void wxWindowDFB::SetFocus() #warning "FIXME: implement in terms of DWET_{GOT,LOST}FOCUS" - IDirectFBWindowPtr dfbwin(m_tlw->GetDirectFBWindow()); + wxIDirectFBWindowPtr dfbwin(m_tlw->GetDirectFBWindow()); #warning "FIXME: RequestFocus() may only be called on visible TLW" - if ( !DFB_CALL( dfbwin->RequestFocus(dfbwin) ) ) + if ( !dfbwin->RequestFocus() ) return; gs_focusedWindow = this; @@ -368,10 +370,10 @@ void wxWindowDFB::WarpPointer(int x, int y) if ( x >= w ) x = w-1; if ( y >= h ) y = h-1; - IDirectFBDisplayLayerPtr layer = wxDfbGetDisplayLayer(); + wxIDirectFBDisplayLayerPtr layer(wxDfbGetDisplayLayer()); wxCHECK_RET( layer, _T("no display layer") ); - layer->WarpCursor(layer, x, y); + layer->WarpCursor(x, y); } // Set this window to be the child of 'parent'.