Merge branch 'MoveOutsideShortInterval' of https://github.com/catalinr/wxWidgets
Allow using positions in the entire int range for window positions under MSW, and not just those in (slightly less than) short range, that are supported by the native API. Closes #4262. Closes https://github.com/wxWidgets/wxWidgets/pull/779
This commit is contained in:
@@ -729,8 +729,27 @@ private:
|
||||
bool MSWSafeIsDialogMessage(WXMSG* msg);
|
||||
#endif // __WXUNIVERSAL__
|
||||
|
||||
#if wxUSE_DEFERRED_SIZING
|
||||
static inline bool MSWIsPositionDirectlySupported(int x, int y)
|
||||
{
|
||||
// The supported coordinate intervals for various functions are:
|
||||
// - MoveWindow, DeferWindowPos: [-32768, 32767] a.k.a. [SHRT_MIN, SHRT_MAX];
|
||||
// - CreateWindow, CreateWindowEx: [-32768, 32554].
|
||||
// CreateXXX will _sometimes_ manage to create the window at higher coordinates
|
||||
// like 32580, 32684, 32710, but that was not consistent and the lowest common
|
||||
// limit was 32554 (so far at least).
|
||||
return (x >= SHRT_MIN && x <= 32554 && y >= SHRT_MIN && y <= 32554);
|
||||
}
|
||||
|
||||
protected:
|
||||
WXHWND MSWCreateWindowAtAnyPosition(WXDWORD exStyle, const wxChar* clName,
|
||||
const wxChar* title, WXDWORD style,
|
||||
int x, int y, int width, int height,
|
||||
WXHWND parent, wxWindowID id);
|
||||
|
||||
void MSWMoveWindowToAnyPosition(WXHWND hwnd, int x, int y,
|
||||
int width, int height, bool bRepaint);
|
||||
|
||||
#if wxUSE_DEFERRED_SIZING
|
||||
// this function is called after the window was resized to its new size
|
||||
virtual void MSWEndDeferWindowPos()
|
||||
{
|
||||
|
Reference in New Issue
Block a user