X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b965a9cfbf43c70d133ff268e70f393d8679637..8ddd9176a46065ab74d6ced1ed480e5affb4e1e2:/src/gtk1/window.cpp diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index f828018064..b4f55985b8 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -1000,6 +1000,8 @@ static void wxFillOtherKeyEventFields(wxKeyEvent& event, #if wxUSE_UNICODE event.m_uniChar = gdk_keyval_to_unicode(gdk_event->keyval); #endif + wxGetMousePosition( &x, &y ); + win->ScreenToClient( &x, &y ); event.m_x = x; event.m_y = y; event.SetEventObject( win ); @@ -1185,7 +1187,7 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, } #endif if (return_after_IM) - return true; + return false; #ifndef __WXGTK20__ // This is for GTK+ 1.2 only. The char event generatation for GTK+ 2.0 is done @@ -3100,22 +3102,37 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth; if ((maxHeight != -1) && (m_height > maxHeight)) m_height = maxHeight; - int border = 0; + int left_border = 0; + int right_border = 0; + int top_border = 0; int bottom_border = 0; -#ifndef __WXGTK20__ + /* the default button has a border around it */ if (GTK_WIDGET_CAN_DEFAULT(m_widget)) { - /* the default button has a border around it */ - border = 6; +#ifdef __WXGTK20__ + GtkBorder *default_border = NULL; + gtk_widget_style_get( m_widget, "default_border", &default_border, NULL ); + if (default_border) + { + left_border += default_border->left; + right_border += default_border->right; + top_border += default_border->top; + bottom_border += default_border->bottom; + g_free( default_border ); + } +#else + left_border = 6; + right_border = 6; + top_border = 6; bottom_border = 5; - } #endif + } - DoMoveWindow( m_x-border, - m_y-border, - m_width+2*border, - m_height+border+bottom_border ); + DoMoveWindow( m_x-top_border, + m_y-left_border, + m_width+left_border+right_border, + m_height+top_border+bottom_border ); } if (m_hasScrolling) @@ -3977,12 +3994,10 @@ void wxWindowGTK::GtkSendPaintEvents() // widget to draw on GtkPizza *pizza = GTK_PIZZA (m_wxwindow); - if (GetThemeEnabled() && (GetBackgroundStyle() == wxBG_STYLE_SYSTEM) && !IsTopLevel()) + if (GetThemeEnabled() && (GetBackgroundStyle() == wxBG_STYLE_SYSTEM)) { // find ancestor from which to steal background - wxWindow *parent = GetParent(); - while (parent && !parent->IsTopLevel()) - parent = parent->GetParent(); + wxWindow *parent = wxGetTopLevelParent((wxWindow *)this); if (!parent) parent = (wxWindow*)this; @@ -4006,7 +4021,7 @@ void wxWindowGTK::GtkSendPaintEvents() (char *)"base", 0, 0, -1, -1 ); - upd ++; + ++upd; } } }