diff --git a/src/gtk/choice.cpp b/src/gtk/choice.cpp index 384f8b5d00..54f9b1de42 100644 --- a/src/gtk/choice.cpp +++ b/src/gtk/choice.cpp @@ -560,7 +560,11 @@ wxSize wxChoice::DoGetBestSize() const if ( ret.x < 80 ) ret.x = 80; - ret.y = 16 + GetCharHeight(); + // If this request_size is called with no entries then + // the returned height is wrong. Give it a reasonable + // default value. + if (ret.y <= 18) + ret.y = 8 + GetCharHeight(); return ret; } diff --git a/src/gtk/gauge.cpp b/src/gtk/gauge.cpp index b6cd78c4c5..7fe754a52e 100644 --- a/src/gtk/gauge.cpp +++ b/src/gtk/gauge.cpp @@ -72,10 +72,10 @@ void wxGauge::DoSetGauge() wxSize wxGauge::DoGetBestSize() const { - if (HasFlag(wxGA_HORIZONTAL)) - return wxSize(100, 28); - else + if (HasFlag(wxGA_VERTICAL)) return wxSize(28, 100); + else + return wxSize(100, 28); } void wxGauge::SetRange( int range ) diff --git a/src/gtk1/choice.cpp b/src/gtk1/choice.cpp index 384f8b5d00..54f9b1de42 100644 --- a/src/gtk1/choice.cpp +++ b/src/gtk1/choice.cpp @@ -560,7 +560,11 @@ wxSize wxChoice::DoGetBestSize() const if ( ret.x < 80 ) ret.x = 80; - ret.y = 16 + GetCharHeight(); + // If this request_size is called with no entries then + // the returned height is wrong. Give it a reasonable + // default value. + if (ret.y <= 18) + ret.y = 8 + GetCharHeight(); return ret; } diff --git a/src/gtk1/gauge.cpp b/src/gtk1/gauge.cpp index b6cd78c4c5..7fe754a52e 100644 --- a/src/gtk1/gauge.cpp +++ b/src/gtk1/gauge.cpp @@ -72,10 +72,10 @@ void wxGauge::DoSetGauge() wxSize wxGauge::DoGetBestSize() const { - if (HasFlag(wxGA_HORIZONTAL)) - return wxSize(100, 28); - else + if (HasFlag(wxGA_VERTICAL)) return wxSize(28, 100); + else + return wxSize(100, 28); } void wxGauge::SetRange( int range )