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:
@@ -350,12 +350,18 @@ void wxTopLevelWindowBase::DoLayout()
|
|||||||
// for whatever reasons, wxGTK wants to have a small offset - it
|
// for whatever reasons, wxGTK wants to have a small offset - it
|
||||||
// probably looks better with it?
|
// probably looks better with it?
|
||||||
#ifdef __WXGTK__
|
#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
|
#else
|
||||||
static const int ofs = 0;
|
const int ofs = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
child->SetSize(ofs, ofs, clientW - 2*ofs, clientH - 2*ofs);
|
child->SetSize(ofs, ofs, clientW, clientH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -681,17 +681,25 @@ void wxSplitterWindow::SizeWindows()
|
|||||||
{
|
{
|
||||||
w1 = size1;
|
w1 = size1;
|
||||||
w2 = w - 2*border - sash - w1;
|
w2 = w - 2*border - sash - w1;
|
||||||
h1 =
|
if (w2 < 0)
|
||||||
|
w2 = 0;
|
||||||
h2 = h - 2*border;
|
h2 = h - 2*border;
|
||||||
|
if (h2 < 0)
|
||||||
|
h2 = 0;
|
||||||
|
h1 = h2;
|
||||||
x2 = size2;
|
x2 = size2;
|
||||||
y2 = border;
|
y2 = border;
|
||||||
}
|
}
|
||||||
else // horz splitter
|
else // horz splitter
|
||||||
{
|
{
|
||||||
w1 =
|
|
||||||
w2 = w - 2*border;
|
w2 = w - 2*border;
|
||||||
|
if (w2 < 0)
|
||||||
|
w2 = 0;
|
||||||
|
w1 = w2;
|
||||||
h1 = size1;
|
h1 = size1;
|
||||||
h2 = h - 2*border - sash - h1;
|
h2 = h - 2*border - sash - h1;
|
||||||
|
if (h2 < 0)
|
||||||
|
h2 = 0;
|
||||||
x2 = border;
|
x2 = border;
|
||||||
y2 = size2;
|
y2 = size2;
|
||||||
}
|
}
|
||||||
|
@@ -276,6 +276,8 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // wxUSE_TOOLBAR
|
#endif // wxUSE_TOOLBAR
|
||||||
|
if (*height < 0)
|
||||||
|
*height = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -915,18 +915,16 @@ void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const
|
|||||||
|
|
||||||
if (height)
|
if (height)
|
||||||
{
|
{
|
||||||
*height = m_height;
|
*height = m_height - 2 * m_miniEdge + m_miniTitle;
|
||||||
|
if (*height < 0)
|
||||||
// mini edge
|
*height = 0;
|
||||||
*height -= m_miniEdge*2 + m_miniTitle;
|
|
||||||
}
|
}
|
||||||
if (width)
|
if (width)
|
||||||
{
|
{
|
||||||
*width = m_width;
|
*width = m_width - 2 * m_miniEdge;
|
||||||
|
if (*width < 0)
|
||||||
*width -= m_miniEdge*2;
|
*width = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTopLevelWindowGTK::DoSetClientSize( int width, int height )
|
void wxTopLevelWindowGTK::DoSetClientSize( int width, int height )
|
||||||
|
@@ -547,6 +547,10 @@ gtk_pizza_size_allocate (GtkWidget *widget,
|
|||||||
y = allocation->y + border;
|
y = allocation->y + border;
|
||||||
w = allocation->width - border*2;
|
w = allocation->width - border*2;
|
||||||
h = allocation->height - border*2;
|
h = allocation->height - border*2;
|
||||||
|
if (w < 0)
|
||||||
|
w = 0;
|
||||||
|
if (h < 0)
|
||||||
|
h = 0;
|
||||||
|
|
||||||
if (GTK_WIDGET_REALIZED (widget))
|
if (GTK_WIDGET_REALIZED (widget))
|
||||||
{
|
{
|
||||||
|
@@ -3020,6 +3020,10 @@ void wxWindowGTK::DoGetClientSize( int *width, int *height ) const
|
|||||||
|
|
||||||
w -= dw;
|
w -= dw;
|
||||||
h -= dh;
|
h -= dh;
|
||||||
|
if (w < 0)
|
||||||
|
w = 0;
|
||||||
|
if (h < 0)
|
||||||
|
h = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (width) *width = w;
|
if (width) *width = w;
|
||||||
|
Reference in New Issue
Block a user