X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f861258fcace51a1aaba2f31c7498b3ba9e31371..c127177f8dc31dbe99764852b8dbcc047d3ad826:/src/gtk/notebook.cpp?ds=sidebyside diff --git a/src/gtk/notebook.cpp b/src/gtk/notebook.cpp index 364487fafc..60df767b8f 100644 --- a/src/gtk/notebook.cpp +++ b/src/gtk/notebook.cpp @@ -23,12 +23,29 @@ #include "wx/gtk/win_gtk.h" #include "gdk/gdkkeysyms.h" +//----------------------------------------------------------------------------- +// idle system +//----------------------------------------------------------------------------- + +extern void wxapp_install_idle_handler(); +extern bool g_isIdle; + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- extern bool g_blockEventsOnDrag; +//----------------------------------------------------------------------------- +// debug +//----------------------------------------------------------------------------- + +#ifdef __WXDEBUG__ + +extern void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window ); + +#endif + //----------------------------------------------------------------------------- // wxNotebookPage //----------------------------------------------------------------------------- @@ -86,6 +103,8 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget), gint nPage, gpointer data) { + if (g_isIdle) wxapp_install_idle_handler(); + wxNotebook *notebook = (wxNotebook *)data; int old = notebook->GetSelection(); @@ -104,6 +123,8 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget), static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win ) { + if (g_isIdle) wxapp_install_idle_handler(); + if ((win->m_x == alloc->x) && (win->m_y == alloc->y) && (win->m_width == alloc->width) && @@ -111,7 +132,7 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* { return; } - + win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height ); if (win->GetAutoLayout()) win->Layout(); @@ -124,6 +145,8 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook ) { + if (g_isIdle) wxapp_install_idle_handler(); + if (g_blockEventsOnDrag) return FALSE; if (!notebook->HasVMT()) return FALSE; @@ -233,6 +256,10 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id, m_widget = gtk_notebook_new(); +#ifdef __WXDEBUG__ + debug_focus_in( m_widget, _T("wxNotebook::m_widget"), name ); +#endif + gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); m_idHandler = gtk_signal_connect (