Worked around an apparent bug in Windows whereby some deferred positioning

failed: specifically when changing a position from x, to y, to x again.
Added deferred positioning to wxRadioBox, wxSlider and wxSpinCtrl and thereby
eliminated some refresh glitches when resizing.
Eliminated further refresh glitches caused by wxRadioBox (to nearby controls)
by refreshing parent when the radio box moves.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2005-04-28 14:45:09 +00:00
parent 2b822a7e06
commit 8e44f3caab
8 changed files with 230 additions and 40 deletions

View File

@@ -701,6 +701,9 @@ inline bool wxStyleHasBorder(long style)
wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0;
}
// Deferred window moving
bool wxMoveWindowDeferred(HDWP& hdwp, wxWindow* win, HWND hWnd, int x, int y, int width, int height);
// ----------------------------------------------------------------------------
// functions mapping HWND to wxWindow
// ----------------------------------------------------------------------------

View File

@@ -47,6 +47,9 @@ enum
class WXDLLEXPORT wxWindowMSW : public wxWindowBase
{
friend class wxSpinCtrl;
friend class wxSlider;
friend class wxRadioBox;
public:
wxWindowMSW() { Init(); }
@@ -541,5 +544,17 @@ WX_DECLARE_HASH(wxWindowMSW, wxWindowList, wxWinHashTable);
extern wxWinHashTable *wxWinHandleHash;
// ----------------------------------------------------------------------------
// extra data needed for correcting problems with deferred positioning
// ----------------------------------------------------------------------------
struct wxExtraWindowData
{
// Stored during deferred positioning
wxPoint m_pos;
wxSize m_size;
bool m_deferring:1;
};
#endif
// _WX_WINDOW_H_