X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3cbab64109b007fa1d939fe588f5e79f9105b915..9c862cfb93c8d54cfdd18a7c54c518b1234afa1c:/src/gtk1/window.cpp diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index eebfa24d1e..cbb766c42b 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: gtk/window.cpp +// Name: src/gtk1/window.cpp // Purpose: // Author: Robert Roebling // Id: $Id$ @@ -15,15 +15,25 @@ #endif #include "wx/window.h" -#include "wx/dcclient.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/layout.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#include "wx/module.h" -#include "wx/combobox.h" + +#ifndef WX_PRECOMP + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/app.h" + #include "wx/utils.h" + #include "wx/frame.h" + #include "wx/dcclient.h" + #include "wx/menu.h" + #include "wx/dialog.h" + #include "wx/settings.h" + #include "wx/msgdlg.h" + #include "wx/textctrl.h" + #include "wx/combobox.h" + #include "wx/layout.h" + #include "wx/statusbr.h" + #include "wx/math.h" + #include "wx/module.h" +#endif #if wxUSE_DRAG_AND_DROP #include "wx/dnd.h" @@ -37,22 +47,12 @@ #include "wx/caret.h" #endif // wxUSE_CARET -#if wxUSE_TEXTCTRL - #include "wx/textctrl.h" -#endif - -#include "wx/menu.h" -#include "wx/statusbr.h" -#include "wx/intl.h" -#include "wx/settings.h" -#include "wx/log.h" #include "wx/fontutil.h" #ifdef __WXDEBUG__ #include "wx/thread.h" #endif -#include "wx/math.h" #include #include "wx/gtk1/private.h" @@ -199,7 +199,6 @@ // data //----------------------------------------------------------------------------- -extern wxList wxPendingDelete; extern bool g_blockEventsOnDrag; extern bool g_blockEventsOnScroll; extern wxCursor g_globalCursor; @@ -739,11 +738,11 @@ static long wxTranslateKeySymToWXKey(KeySym keysym, bool isChar) break; case GDK_Prior: // == GDK_Page_Up - key_code = WXK_PRIOR; + key_code = WXK_PAGEUP; break; case GDK_Next: // == GDK_Page_Down - key_code = WXK_NEXT; + key_code = WXK_PAGEDOWN; break; case GDK_End: @@ -822,11 +821,11 @@ static long wxTranslateKeySymToWXKey(KeySym keysym, bool isChar) break; case GDK_KP_Prior: // == GDK_KP_Page_Up - key_code = isChar ? WXK_PRIOR : WXK_NUMPAD_PRIOR; + key_code = isChar ? WXK_PAGEUP : WXK_NUMPAD_PAGEUP; break; case GDK_KP_Next: // == GDK_KP_Page_Down - key_code = isChar ? WXK_NEXT : WXK_NUMPAD_NEXT; + key_code = isChar ? WXK_PAGEDOWN : WXK_NUMPAD_PAGEDOWN; break; case GDK_KP_End: @@ -1057,18 +1056,17 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, bool return_after_IM = false; if( wxTranslateGTKKeyEventToWx(event, win, gdk_event) == false ) + { + // Emit KEY_DOWN event + ret = win->GetEventHandler()->ProcessEvent( event ); + } + else { // Return after IM processing as we cannot do // anything with it anyhow. return_after_IM = true; } - if (return_after_IM) - return false; - - // Emit KEY_DOWN event - ret = win->GetEventHandler()->ProcessEvent( event ); - // This is for GTK+ 1.2 only. The char event generatation for GTK+ 2.0 is done // in the "commit" handler. @@ -1127,6 +1125,9 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, return true; } + if (return_after_IM) + return false; + #if wxUSE_ACCEL if (!ret) { @@ -1346,7 +1347,7 @@ template void InitMouseEvent(wxWindowGTK *win, static void AdjustEventButtonState(wxMouseEvent& event) { // GDK reports the old state of the button for a button press event, but - // for compatibility with MSW and common sense we want m_leftDown be TRUE + // for compatibility with MSW and common sense we want m_leftDown be true // for a LEFT_DOWN event, not FALSE, so we will invert // left/right/middleDown for the corresponding click events @@ -2930,13 +2931,11 @@ void wxWindowGTK::OnInternalIdle() gdk_window_set_cursor( window, cursor.GetCursor() ); } - else + else if ( m_widget ) { - GdkWindow *window = m_widget->window; - if ((window) && !(GTK_WIDGET_NO_WINDOW(m_widget))) + if ( window && !GTK_WIDGET_NO_WINDOW(m_widget) ) gdk_window_set_cursor( window, cursor.GetCursor() ); - } } @@ -3926,7 +3925,7 @@ void wxWindowGTK::DoCaptureMouse() wxCHECK_RET( window, _T("CaptureMouse() failed") ); - wxCursor* cursor = & m_cursor; + const wxCursor* cursor = &m_cursor; if (!cursor->Ok()) cursor = wxSTANDARD_CURSOR; @@ -4230,4 +4229,3 @@ void wxWinModule::OnExit() if (g_eraseGC) gdk_gc_unref( g_eraseGC ); } -