diff --git a/src/common/docview.cpp b/src/common/docview.cpp index 544e8468d3..3d582f8807 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -528,7 +528,7 @@ wxView::wxView() wxView::~wxView() { - GetDocumentManager()->ActivateView(this, FALSE, TRUE); +// GetDocumentManager()->ActivateView(this, FALSE, TRUE); m_viewDocument->RemoveView(this); } diff --git a/src/gtk/checkbox.cpp b/src/gtk/checkbox.cpp index 060c3a127c..2729438afb 100644 --- a/src/gtk/checkbox.cpp +++ b/src/gtk/checkbox.cpp @@ -197,14 +197,14 @@ void wxCheckBox::OnInternalIdle() wxCursor cursor = m_cursor; if (g_globalCursor.Ok()) cursor = g_globalCursor; - if (GTK_TOGGLE_BUTTON(m_widget)->event_window && cursor.Ok()) + if (GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window && cursor.Ok()) { /* I now set the cursor the anew in every OnInternalIdle call as setting the cursor in a parent window also effects the windows above so that checking for the current cursor is not possible. */ - gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widget)->event_window, cursor.GetCursor() ); + gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() ); } UpdateWindowUI(); diff --git a/src/gtk/dialog.cpp b/src/gtk/dialog.cpp index 712a1fd986..ee9764f77a 100644 --- a/src/gtk/dialog.cpp +++ b/src/gtk/dialog.cpp @@ -259,7 +259,7 @@ bool wxDialog::Create( wxWindow *parent, m_insertCallback = (wxInsertChildFunction) wxInsertChildInDialog; - m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL ); + m_widget = gtk_window_new( GTK_WINDOW_DIALOG ); if (!name.IsEmpty()) gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() ); diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index b254ab8d78..f384e1d994 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -2459,13 +2459,14 @@ void wxWindow::SetFocus() if (m_wxwindow) { - gtk_widget_grab_focus (m_wxwindow); + if (!GTK_WIDGET_HAS_FOCUS (m_wxwindow)) + gtk_widget_grab_focus (m_wxwindow); return; } if (m_widget) { - if (GTK_WIDGET_CAN_FOCUS(m_widget) /*&& !GTK_WIDGET_HAS_FOCUS (connect_widget)*/ ) + if (GTK_WIDGET_CAN_FOCUS(m_widget) && !GTK_WIDGET_HAS_FOCUS (m_widget) ) { gtk_widget_grab_focus (m_widget); } diff --git a/src/gtk1/checkbox.cpp b/src/gtk1/checkbox.cpp index 060c3a127c..2729438afb 100644 --- a/src/gtk1/checkbox.cpp +++ b/src/gtk1/checkbox.cpp @@ -197,14 +197,14 @@ void wxCheckBox::OnInternalIdle() wxCursor cursor = m_cursor; if (g_globalCursor.Ok()) cursor = g_globalCursor; - if (GTK_TOGGLE_BUTTON(m_widget)->event_window && cursor.Ok()) + if (GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window && cursor.Ok()) { /* I now set the cursor the anew in every OnInternalIdle call as setting the cursor in a parent window also effects the windows above so that checking for the current cursor is not possible. */ - gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widget)->event_window, cursor.GetCursor() ); + gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() ); } UpdateWindowUI(); diff --git a/src/gtk1/dialog.cpp b/src/gtk1/dialog.cpp index 712a1fd986..ee9764f77a 100644 --- a/src/gtk1/dialog.cpp +++ b/src/gtk1/dialog.cpp @@ -259,7 +259,7 @@ bool wxDialog::Create( wxWindow *parent, m_insertCallback = (wxInsertChildFunction) wxInsertChildInDialog; - m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL ); + m_widget = gtk_window_new( GTK_WINDOW_DIALOG ); if (!name.IsEmpty()) gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() ); diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index b254ab8d78..f384e1d994 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -2459,13 +2459,14 @@ void wxWindow::SetFocus() if (m_wxwindow) { - gtk_widget_grab_focus (m_wxwindow); + if (!GTK_WIDGET_HAS_FOCUS (m_wxwindow)) + gtk_widget_grab_focus (m_wxwindow); return; } if (m_widget) { - if (GTK_WIDGET_CAN_FOCUS(m_widget) /*&& !GTK_WIDGET_HAS_FOCUS (connect_widget)*/ ) + if (GTK_WIDGET_CAN_FOCUS(m_widget) && !GTK_WIDGET_HAS_FOCUS (m_widget) ) { gtk_widget_grab_focus (m_widget); }