X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e1f448eeefd90163fedd9134f35203afe51200c6..93f467a3b4d1eda959b44cc01df34b4463383cfe:/src/gtk/window.cpp diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index ee418a7c17..5dd7c8aabc 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -8,15 +8,17 @@ ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "window.h" #endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #ifdef __VMS #define XWarpPointer XWARPPOINTER #endif -#include "wx/defs.h" #include "wx/window.h" #include "wx/dcclient.h" #include "wx/frame.h" @@ -255,9 +257,9 @@ wxWindowGTK *g_delayedFocus = (wxWindowGTK*) NULL; // send any activate events at all static int g_sendActivateEvent = -1; -/* hack: we need something to pass to gtk_menu_popup, so we store the time of - the last click here */ -static guint32 gs_timeLastClick = 0; +// hack: we need something to pass to gtk_menu_popup, so we store the time of +// the last click here +static guint32 gs_timeLastClick = 0; extern bool g_mainThreadLocked; @@ -515,7 +517,7 @@ static int gtk_window_expose_callback( GtkWidget *widget, GtkPizza *pizza = GTK_PIZZA( widget ); if (gdk_event->window != pizza->bin_window) return FALSE; -#if 0 +#if 1 if (win->GetName()) { wxPrintf( wxT("OnExpose from ") ); @@ -526,6 +528,18 @@ static int gtk_window_expose_callback( GtkWidget *widget, (int)gdk_event->area.width, (int)gdk_event->area.height ); } + + gtk_paint_box + ( + win->m_wxwindow->style, + pizza->bin_window, + GTK_STATE_NORMAL, + GTK_SHADOW_OUT, + (GdkRectangle*) NULL, + win->m_wxwindow, + (char *)"button", // const_cast + 20,20,24,24 + ); #endif win->GetUpdateRegion() = wxRegion( gdk_event->region ); @@ -1507,7 +1521,8 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEvent *peek_event = gdk_event_peek(); if (peek_event) { - if (peek_event->type == GDK_2BUTTON_PRESS) + if ((peek_event->type == GDK_2BUTTON_PRESS) || + (peek_event->type == GDK_3BUTTON_PRESS)) { gdk_event_free( peek_event ); return TRUE; @@ -1527,6 +1542,7 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, { case GDK_BUTTON_PRESS: event_type = wxEVT_LEFT_DOWN; break; case GDK_2BUTTON_PRESS: event_type = wxEVT_LEFT_DCLICK; break; + case GDK_3BUTTON_PRESS: return FALSE; default: break; } } @@ -3860,7 +3876,7 @@ void wxWindowGTK::GtkSendPaintEvents() m_updateRegion.Clear(); } -void wxWindowGTK::Clear() +void wxWindowGTK::ClearBackground() { wxCHECK_RET( m_widget != NULL, wxT("invalid window") ); @@ -4217,7 +4233,11 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y ) wxPopupMenuPositionCallback, // function to position it NULL, // client data 0, // button used to activate it +#ifdef __WXGTK20__ + gtk_get_current_event_time() +#else gs_timeLastClick // the time of activation +#endif ); while (is_waiting)