Applied patch to allow resizing the popup window.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -327,30 +327,30 @@ void wxPopupWindow::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int
|
|||||||
m_width = width;
|
m_width = width;
|
||||||
m_height = height;
|
m_height = height;
|
||||||
|
|
||||||
|
/* FIXME: is this a hack? */
|
||||||
|
/* since for some reason GTK will revert to using maximum size ever set
|
||||||
|
for this window, we have to set geometry hints maxsize to match
|
||||||
|
size given. */
|
||||||
int minWidth = GetMinWidth(),
|
int minWidth = GetMinWidth(),
|
||||||
minHeight = GetMinHeight(),
|
minHeight = GetMinHeight();
|
||||||
maxWidth = GetMaxWidth(),
|
|
||||||
maxHeight = GetMaxHeight();
|
|
||||||
|
|
||||||
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
|
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
|
||||||
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
|
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
|
||||||
if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
|
|
||||||
if ((maxHeight != -1) && (m_height > maxHeight)) m_height = maxHeight;
|
|
||||||
|
|
||||||
/* set size hints */
|
/* set size hints */
|
||||||
gint flag = 0; // GDK_HINT_POS;
|
gint flag = GDK_HINT_MAX_SIZE; // GDK_HINT_POS;
|
||||||
if ((minWidth != -1) || (minHeight != -1)) flag |= GDK_HINT_MIN_SIZE;
|
if ((minWidth != -1) || (minHeight != -1)) flag |= GDK_HINT_MIN_SIZE;
|
||||||
if ((maxWidth != -1) || (maxHeight != -1)) flag |= GDK_HINT_MAX_SIZE;
|
|
||||||
GdkGeometry geom;
|
GdkGeometry geom;
|
||||||
geom.min_width = minWidth;
|
geom.min_width = minWidth;
|
||||||
geom.min_height = minHeight;
|
geom.min_height = minHeight;
|
||||||
geom.max_width = maxWidth;
|
geom.max_width = m_width;
|
||||||
geom.max_height = maxHeight;
|
geom.max_height = m_height;
|
||||||
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
||||||
(GtkWidget*) NULL,
|
(GtkWidget*) NULL,
|
||||||
&geom,
|
&geom,
|
||||||
(GdkWindowHints) flag );
|
(GdkWindowHints) flag );
|
||||||
|
|
||||||
|
|
||||||
m_sizeSet = TRUE;
|
m_sizeSet = TRUE;
|
||||||
|
|
||||||
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
||||||
|
@@ -327,30 +327,30 @@ void wxPopupWindow::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int
|
|||||||
m_width = width;
|
m_width = width;
|
||||||
m_height = height;
|
m_height = height;
|
||||||
|
|
||||||
|
/* FIXME: is this a hack? */
|
||||||
|
/* since for some reason GTK will revert to using maximum size ever set
|
||||||
|
for this window, we have to set geometry hints maxsize to match
|
||||||
|
size given. */
|
||||||
int minWidth = GetMinWidth(),
|
int minWidth = GetMinWidth(),
|
||||||
minHeight = GetMinHeight(),
|
minHeight = GetMinHeight();
|
||||||
maxWidth = GetMaxWidth(),
|
|
||||||
maxHeight = GetMaxHeight();
|
|
||||||
|
|
||||||
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
|
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
|
||||||
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
|
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
|
||||||
if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
|
|
||||||
if ((maxHeight != -1) && (m_height > maxHeight)) m_height = maxHeight;
|
|
||||||
|
|
||||||
/* set size hints */
|
/* set size hints */
|
||||||
gint flag = 0; // GDK_HINT_POS;
|
gint flag = GDK_HINT_MAX_SIZE; // GDK_HINT_POS;
|
||||||
if ((minWidth != -1) || (minHeight != -1)) flag |= GDK_HINT_MIN_SIZE;
|
if ((minWidth != -1) || (minHeight != -1)) flag |= GDK_HINT_MIN_SIZE;
|
||||||
if ((maxWidth != -1) || (maxHeight != -1)) flag |= GDK_HINT_MAX_SIZE;
|
|
||||||
GdkGeometry geom;
|
GdkGeometry geom;
|
||||||
geom.min_width = minWidth;
|
geom.min_width = minWidth;
|
||||||
geom.min_height = minHeight;
|
geom.min_height = minHeight;
|
||||||
geom.max_width = maxWidth;
|
geom.max_width = m_width;
|
||||||
geom.max_height = maxHeight;
|
geom.max_height = m_height;
|
||||||
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
||||||
(GtkWidget*) NULL,
|
(GtkWidget*) NULL,
|
||||||
&geom,
|
&geom,
|
||||||
(GdkWindowHints) flag );
|
(GdkWindowHints) flag );
|
||||||
|
|
||||||
|
|
||||||
m_sizeSet = TRUE;
|
m_sizeSet = TRUE;
|
||||||
|
|
||||||
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
||||||
|
Reference in New Issue
Block a user