X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/db71eb0640221199170ac9ea83371c2d467fa456..cd7d36c065d638f48cff0845a43e35b9ed1e25f6:/src/gtk/window.cpp diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index a4edb3bbd8..206fe6ffd8 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -438,10 +438,16 @@ void wxgtk_combo_size_request_callback(GtkWidget *widget, GtkRequisition entry_req; entry_req.width = 2; entry_req.height = 2; - (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(gcombo->button) )->size_request ) - (gcombo->button, &entry_req ); + (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(gcombo->entry) )->size_request ) + (gcombo->entry, &entry_req ); - requisition->width = w - entry_req.width; + GtkRequisition button_req; + button_req.width = 2; + button_req.height = 2; + (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(gcombo->button) )->size_request ) + (gcombo->button, &button_req ); + + requisition->width = w - button_req.width; requisition->height = entry_req.height; } } @@ -465,7 +471,12 @@ gtk_window_expose_callback( GtkWidget *widget, // time anymore. GtkPizza *pizza = GTK_PIZZA( widget ); - if (gdk_event->window != pizza->bin_window) return FALSE; + if (gdk_event->window != pizza->bin_window) + { + // block expose events on GTK_WIDGET(pizza)->window, + // all drawing is done on pizza->bin_window + return true; + } #if 0 @@ -1459,7 +1470,7 @@ gtk_window_button_press_callback( GtkWidget *widget, // GDK sends surplus button down events // before a double click event. We // need to filter these out. - if (gdk_event->type == GDK_BUTTON_PRESS) + if ((gdk_event->type == GDK_BUTTON_PRESS) && (win->m_wxwindow)) { GdkEvent *peek_event = gdk_event_peek(); if (peek_event) @@ -2318,24 +2329,10 @@ bool wxWindowGTK::Create( wxWindow *parent, m_wxwindow = gtk_pizza_new(); #ifndef __WXUNIVERSAL__ - GtkPizza *pizza = GTK_PIZZA(m_wxwindow); - - if (HasFlag(wxRAISED_BORDER)) - { - gtk_pizza_set_shadow_type( pizza, GTK_MYSHADOW_OUT ); - } - else if (HasFlag(wxSUNKEN_BORDER)) - { - gtk_pizza_set_shadow_type( pizza, GTK_MYSHADOW_IN ); - } - else if (HasFlag(wxSIMPLE_BORDER)) - { - gtk_pizza_set_shadow_type( pizza, GTK_MYSHADOW_THIN ); - } - else - { - gtk_pizza_set_shadow_type( pizza, GTK_MYSHADOW_NONE ); - } + if (HasFlag(wxSIMPLE_BORDER)) + gtk_container_set_border_width((GtkContainer*)m_wxwindow, 1); + else if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) + gtk_container_set_border_width((GtkContainer*)m_wxwindow, 2); #endif // __WXUNIVERSAL__ gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); @@ -2812,20 +2809,9 @@ void wxWindowGTK::DoSetClientSize( int width, int height ) GetScrollbarWidth(m_widget, dw, dh); } -#ifndef __WXUNIVERSAL__ - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - // shadow border size is 2 - dw += 2 * 2; - dh += 2 * 2; - } - if (HasFlag(wxSIMPLE_BORDER)) - { - // simple border size is 1 - dw += 1 * 2; - dh += 1 * 2; - } -#endif // __WXUNIVERSAL__ + const int border = GTK_CONTAINER(m_wxwindow)->border_width; + dw += 2 * border; + dh += 2 * border; width += dw; height += dh; @@ -2849,20 +2835,9 @@ void wxWindowGTK::DoGetClientSize( int *width, int *height ) const if (m_hasScrolling) GetScrollbarWidth(m_widget, dw, dh); -#ifndef __WXUNIVERSAL__ - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - // shadow border size is 2 - dw += 2 * 2; - dh += 2 * 2; - } - if (HasFlag(wxSIMPLE_BORDER)) - { - // simple border size is 1 - dw += 1 * 2; - dh += 1 * 2; - } -#endif // __WXUNIVERSAL__ + const int border = GTK_CONTAINER(m_wxwindow)->border_width; + dw += 2 * border; + dh += 2 * border; w -= dw; h -= dh; @@ -3788,8 +3763,15 @@ void wxWindowGTK::DoSetToolTip( wxToolTip *tip ) void wxWindowGTK::ApplyToolTip( GtkTooltips *tips, const wxChar *tip ) { - wxString tmp( tip ); - gtk_tooltips_set_tip( tips, GetConnectWidget(), wxGTK_CONV(tmp), (gchar*) NULL ); + if (tip) + { + wxString tmp( tip ); + gtk_tooltips_set_tip( tips, GetConnectWidget(), wxGTK_CONV(tmp), (gchar*) NULL ); + } + else + { + gtk_tooltips_set_tip( tips, GetConnectWidget(), NULL, NULL); + } } #endif // wxUSE_TOOLTIPS