Changeset - r18574:ea138cf198ef
[Not reviewed]
master
0 1 0
rubidium - 12 years ago 2011-12-04 14:00:23
rubidium@openttd.org
(svn r23429) -Fix [FS#4842]: prevent windows to be resized beyond the bounds of the (main) window
1 file changed with 7 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/window.cpp
Show inline comments
 
@@ -1671,6 +1671,13 @@ static void EnsureVisibleCaption(Window 
 
void ResizeWindow(Window *w, int delta_x, int delta_y)
 
{
 
	if (delta_x != 0 || delta_y != 0) {
 
		/* Determine the new right/bottom position. If that is outside of the bounds of
 
		 * the resolution clamp it in such a manner that it stays within the bounts. */
 
		int new_right  = w->left + w->width  + delta_x;
 
		int new_bottom = w->top  + w->height + delta_y;
 
		if (new_right  >= (int)_cur_resolution.width)  delta_x -= new_right  - _cur_resolution.width;
 
		if (new_bottom >= (int)_cur_resolution.height) delta_y -= new_bottom - _cur_resolution.height;
 

	
 
		w->SetDirty();
 

	
 
		uint new_xinc = max(0, (w->nested_root->resize_x == 0) ? 0 : (int)(w->nested_root->current_x - w->nested_root->smallest_x) + delta_x);
0 comments (0 inline, 0 general)