From 218c388088596393c94bcca6257993f65f904bd8 Mon Sep 17 00:00:00 2001 From: couriersud Date: Fri, 27 Feb 2015 18:09:39 +0100 Subject: [PATCH] Fix resizing on windows. (nw) --- src/osd/sdl/window.c | 14 +++++++++----- src/osd/windows/window.c | 10 +++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/osd/sdl/window.c b/src/osd/sdl/window.c index b52e81c6d77..65ade6d73ea 100644 --- a/src/osd/sdl/window.c +++ b/src/osd/sdl/window.c @@ -1472,17 +1472,17 @@ osd_rect sdl_window_info::constrain_to_aspect_ratio(const osd_rect &rect, int ad break; case WMSZ_BOTTOMLEFT: - ret = rect.move_by(-adjwidth, 0).resize(rect.width(), rect.height() + adjheight); + ret = rect.move_by(-adjwidth, 0).resize(rect.width() + adjwidth, rect.height() + adjheight); break; case WMSZ_LEFT: case WMSZ_TOPLEFT: case WMSZ_TOP: - ret = rect.move_by(-adjwidth, -adjheight); + ret = rect.move_by(-adjwidth, -adjheight).resize(rect.width() + adjwidth, rect.height() + adjheight); break; case WMSZ_TOPRIGHT: - ret = rect.move_by(0, -adjheight).resize(rect.width() + adjwidth, rect.height()); + ret = rect.move_by(0, -adjheight).resize(rect.width() + adjwidth, rect.height() + adjheight); break; } return ret; @@ -1499,6 +1499,8 @@ osd_dim sdl_window_info::get_min_bounds(int constrain) { INT32 minwidth, minheight; + //assert(GetCurrentThreadId() == window_threadid); + // get the minimum target size m_target->compute_minimum_size(minwidth, minheight); @@ -1548,9 +1550,11 @@ osd_dim sdl_window_info::get_min_bounds(int constrain) osd_dim sdl_window_info::get_max_bounds(int constrain) { - // compute the maximum client area + //assert(GetCurrentThreadId() == window_threadid); - osd_rect maximum = m_monitor->position_size(); + // compute the maximum client area + // m_monitor->refresh(); + osd_rect maximum = m_monitor->usuable_position_size(); // clamp to the window's max int tempw = maximum.width(); diff --git a/src/osd/windows/window.c b/src/osd/windows/window.c index 9790e61d1ef..a53290a9a2c 100644 --- a/src/osd/windows/window.c +++ b/src/osd/windows/window.c @@ -1605,17 +1605,17 @@ osd_rect win_window_info::constrain_to_aspect_ratio(const osd_rect &rect, int ad break; case WMSZ_BOTTOMLEFT: - ret = rect.move_by(-adjwidth, 0).resize(rect.width(), rect.height() + adjheight); + ret = rect.move_by(-adjwidth, 0).resize(rect.width() + adjwidth, rect.height() + adjheight); break; case WMSZ_LEFT: case WMSZ_TOPLEFT: case WMSZ_TOP: - ret = rect.move_by(-adjwidth, -adjheight); + ret = rect.move_by(-adjwidth, -adjheight).resize(rect.width() + adjwidth, rect.height() + adjheight); break; case WMSZ_TOPRIGHT: - ret = rect.move_by(0, -adjheight).resize(rect.width() + adjwidth, rect.height()); + ret = rect.move_by(0, -adjheight).resize(rect.width() + adjwidth, rect.height() + adjheight); break; } return ret; @@ -1632,7 +1632,7 @@ osd_dim win_window_info::get_min_bounds(int constrain) { INT32 minwidth, minheight; - assert(GetCurrentThreadId() == window_threadid); + //assert(GetCurrentThreadId() == window_threadid); // get the minimum target size m_target->compute_minimum_size(minwidth, minheight); @@ -1683,7 +1683,7 @@ osd_dim win_window_info::get_min_bounds(int constrain) osd_dim win_window_info::get_max_bounds(int constrain) { - assert(GetCurrentThreadId() == window_threadid); + //assert(GetCurrentThreadId() == window_threadid); // compute the maximum client area m_monitor->refresh();