X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/72195a0fd23def9b31434ca8de4805b4a6db730f..834362a2e400478c9e9022f17c515493eaeb1174:/src/gtk1/window.cpp diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 4d2bc6c474..2f86fc9602 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -631,25 +631,6 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_e key_code = map_to_wx_keysym( gdk_event->keyval ); - /* wxMSW doesn't send char events with Alt pressed */ - if ((key_code != 0) && - ((gdk_event->state & GDK_MOD1_MASK) == 0) && - ((gdk_event->state & GDK_MOD1_MASK) == 0)) - { - wxKeyEvent event2( wxEVT_CHAR ); - event2.SetTimestamp( gdk_event->time ); - event2.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event2.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); -// event2.m_altDown = (gdk_event->state & GDK_MOD1_MASK); -// event2.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event2.m_keyCode = key_code; - event2.m_scanCode = gdk_event->keyval; - event2.m_x = x; - event2.m_y = y; - event2.SetEventObject( win ); - ret = (ret || win->GetEventHandler()->ProcessEvent( event2 )); - } - #if wxUSE_ACCEL if (!ret) { @@ -667,6 +648,25 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_e } } #endif // wxUSE_ACCEL + /* wxMSW doesn't send char events with Alt pressed */ + /* Only send wxEVT_CHAR event if not processed yet. Thus, ALT-x + will only be sent if it is not a menu accelerator. */ + if ((key_code != 0) && ! ret ) + { + wxKeyEvent event2( wxEVT_CHAR ); + event2.SetTimestamp( gdk_event->time ); + event2.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); + event2.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); + event2.m_altDown = (gdk_event->state & GDK_MOD1_MASK); + event2.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); + event2.m_keyCode = key_code; + event2.m_scanCode = gdk_event->keyval; + event2.m_x = x; + event2.m_y = y; + event2.SetEventObject( win ); + ret = (ret || win->GetEventHandler()->ProcessEvent( event2 )); + } + /* win is a control: tab can be propagated up */ if ( (!ret) && @@ -2069,7 +2069,7 @@ void wxWindow::OnInternalIdle() wxCursor cursor = m_cursor; if (g_globalCursor.Ok()) cursor = g_globalCursor; - if (m_currentGdkCursor != cursor) + if (cursor.Ok() && m_currentGdkCursor != cursor) { gdk_window_set_cursor( window, cursor.GetCursor() ); m_currentGdkCursor = cursor; @@ -2545,7 +2545,7 @@ void wxWindow::DoSetToolTip( wxToolTip *tip ) void wxWindow::ApplyToolTip( GtkTooltips *tips, const wxChar *tip ) { - gtk_tooltips_set_tip( tips, GetConnectWidget(), wxConv_current->cWX2MB(tip), (gchar*) NULL ); + gtk_tooltips_set_tip( tips, GetConnectWidget(), wxConvCurrent->cWX2MB(tip), (gchar*) NULL ); } #endif // wxUSE_TOOLTIPS @@ -2582,7 +2582,6 @@ bool wxWindow::SetBackgroundColour( const wxColour &colour ) } wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if (sysbg == m_backgroundColour) { m_backgroundColour = wxNullColour; @@ -2621,7 +2620,7 @@ bool wxWindow::SetForegroundColour( const wxColour &colour ) } wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if (sysbg == m_foregroundColour) + if ( sysbg == m_backgroundColour ) { m_backgroundColour = wxNullColour; ApplyWidgetStyle();