X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d19390718ef24d7f657be58786787fcaea5d9a84..d43803715268f5396741b3f0eb4b94d1408c9f9d:/src/aui/framemanager.cpp?ds=sidebyside diff --git a/src/aui/framemanager.cpp b/src/aui/framemanager.cpp index 8d0ce8eaa2..fb46813dba 100644 --- a/src/aui/framemanager.cpp +++ b/src/aui/framemanager.cpp @@ -29,6 +29,7 @@ #include "wx/aui/dockart.h" #include "wx/aui/floatpane.h" #include "wx/aui/tabmdi.h" +#include "wx/aui/auibar.h" #ifndef WX_PRECOMP #include "wx/panel.h" @@ -256,6 +257,9 @@ public: m_title = title; m_widget = gtk_window_new( GTK_WINDOW_POPUP ); + g_object_ref(m_widget); + + if (parent) parent->AddChild(this); g_signal_connect( m_widget, "realize", G_CALLBACK (gtk_pseudo_window_realized_callback), this ); @@ -1006,6 +1010,22 @@ bool wxAuiManager::AddPane(wxWindow* window, const wxAuiPaneInfo& pane_info) button.button_id = wxAUI_BUTTON_CLOSE; pinfo.buttons.Add(button); } + + if (pinfo.HasGripper()) + { + if (pinfo.window->IsKindOf(CLASSINFO(wxAuiToolBar))) + { + // prevent duplicate gripper -- both wxAuiManager and wxAuiToolBar + // have a gripper control. The toolbar's built-in gripper + // meshes better with the look and feel of the control than ours, + // so turn wxAuiManager's gripper off, and the toolbar's on. + + wxAuiToolBar* tb = static_cast(pinfo.window); + pinfo.SetFlag(wxAuiPaneInfo::optionGripper, false); + tb->SetGripperVisible(true); + } + } + if (pinfo.best_size == wxDefaultSize && pinfo.window) @@ -1037,6 +1057,8 @@ bool wxAuiManager::AddPane(wxWindow* window, const wxAuiPaneInfo& pane_info) } } + + return true; } @@ -3572,7 +3594,6 @@ void wxAuiManager::OnFloatingPaneMoved(wxWindow* wnd, wxDirection dir) wxPoint frame_pos = pane.frame->GetPosition(); wxPoint action_offset(pt.x-frame_pos.x, pt.y-frame_pos.y); - // if a key modifier is pressed while dragging the frame, // don't dock the window if (CanDockPanel(pane))