X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/feb85348c371e7e702b8b633647392d3268a4825..e944f70a6d8f0a56d00d575940f4fe94f49ef727:/include/wx/msw/popupwin.h diff --git a/include/wx/msw/popupwin.h b/include/wx/msw/popupwin.h index 616b22679d..239ee04212 100644 --- a/include/wx/msw/popupwin.h +++ b/include/wx/msw/popupwin.h @@ -21,7 +21,8 @@ class WXDLLEXPORT wxPopupWindow : public wxPopupWindowBase public: wxPopupWindow() { } - wxPopupWindow(wxWindow *parent) { (void)Create(parent); } + wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE) + { (void)Create(parent, flags); } bool Create(wxWindow *parent, int flags = wxBORDER_NONE) { @@ -30,6 +31,19 @@ public: wxDefaultPosition, wxDefaultSize, (flags & wxBORDER_MASK) | wxPOPUP_WINDOW); } + +protected: + virtual void DoGetPosition(int *x, int *y) const + { + // the position of a "top level" window such as this should be in + // screen coordinates, not in the client ones which MSW gives us + // (because we are a child window) + wxPopupWindowBase::DoGetPosition(x, y); + + GetParent()->ClientToScreen(x, y); + } + + DECLARE_DYNAMIC_CLASS(wxPopupWindow) }; #endif // _WX_MSW_POPUPWIN_H_