don't set negative window size

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41080 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett 2006-09-09 02:42:48 +00:00
parent cd38dd5ba0
commit 6934602337
6 changed files with 35 additions and 13 deletions

View File

@ -350,12 +350,18 @@ void wxTopLevelWindowBase::DoLayout()
// for whatever reasons, wxGTK wants to have a small offset - it
// probably looks better with it?
#ifdef __WXGTK__
static const int ofs = 1;
const int ofs = 1;
clientW -= 2 * ofs;
clientH -= 2 * ofs;
if (clientW < 0)
clientW = 0;
if (clientH < 0)
clientH = 0;
#else
static const int ofs = 0;
const int ofs = 0;
#endif
child->SetSize(ofs, ofs, clientW - 2*ofs, clientH - 2*ofs);
child->SetSize(ofs, ofs, clientW, clientH);
}
}
}

View File

@ -681,17 +681,25 @@ void wxSplitterWindow::SizeWindows()
{
w1 = size1;
w2 = w - 2*border - sash - w1;
h1 =
if (w2 < 0)
w2 = 0;
h2 = h - 2*border;
if (h2 < 0)
h2 = 0;
h1 = h2;
x2 = size2;
y2 = border;
}
else // horz splitter
{
w1 =
w2 = w - 2*border;
if (w2 < 0)
w2 = 0;
w1 = w2;
h1 = size1;
h2 = h - 2*border - sash - h1;
if (h2 < 0)
h2 = 0;
x2 = border;
y2 = size2;
}

View File

@ -276,6 +276,8 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const
}
}
#endif // wxUSE_TOOLBAR
if (*height < 0)
*height = 0;
}
}

View File

@ -915,18 +915,16 @@ void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const
if (height)
{
*height = m_height;
// mini edge
*height -= m_miniEdge*2 + m_miniTitle;
*height = m_height - 2 * m_miniEdge + m_miniTitle;
if (*height < 0)
*height = 0;
}
if (width)
{
*width = m_width;
*width -= m_miniEdge*2;
*width = m_width - 2 * m_miniEdge;
if (*width < 0)
*width = 0;
}
}
void wxTopLevelWindowGTK::DoSetClientSize( int width, int height )

View File

@ -547,6 +547,10 @@ gtk_pizza_size_allocate (GtkWidget *widget,
y = allocation->y + border;
w = allocation->width - border*2;
h = allocation->height - border*2;
if (w < 0)
w = 0;
if (h < 0)
h = 0;
if (GTK_WIDGET_REALIZED (widget))
{

View File

@ -3020,6 +3020,10 @@ void wxWindowGTK::DoGetClientSize( int *width, int *height ) const
w -= dw;
h -= dh;
if (w < 0)
w = 0;
if (h < 0)
h = 0;
}
if (width) *width = w;