]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dirctrlg.cpp
Ensure there is valid context for DrawRectangle
[wxWidgets.git] / src / generic / dirctrlg.cpp
index 7eba8af2f918dc25ed1d72287d1121160bd45276..78f8ffc2529a39b3dcecff52ee41e5759ce16fd0 100644 (file)
@@ -518,7 +518,7 @@ bool wxGenericDirCtrl::Create(wxWindow *parent,
     m_treeCtrl = CreateTreeCtrl(this, wxID_TREECTRL,
                                 wxPoint(0,0), GetClientSize(), treeStyle);
 
-    if (!filter.empty())
+    if (!filter.empty() && (style & wxDIRCTRL_SHOW_FILTERS))
         m_filterListCtrl = new wxDirFilterListCtrl(this, wxID_FILTERLISTCTRL);
 
     m_defaultPath = dir;
@@ -705,11 +705,18 @@ void wxGenericDirCtrl::OnTreeSelChange(wxTreeEvent &event)
 {
     wxTreeEvent changedEvent(wxEVT_COMMAND_DIRCTRL_CHANGED, GetId());
 
+    changedEvent.SetEventObject(this);
     changedEvent.SetItem(event.GetItem());
     changedEvent.SetClientObject(m_treeCtrl->GetItemData(event.GetItem()));
 
-    GetEventHandler()->SafelyProcessEvent(changedEvent);
-    event.Skip();
+    if (GetEventHandler()->SafelyProcessEvent(changedEvent) && !changedEvent.IsAllowed())
+    {
+        event.Veto();
+    }
+    else
+    {
+        event.Skip();
+    }
 }
 
 void wxGenericDirCtrl::OnExpandItem(wxTreeEvent &event)
@@ -1244,7 +1251,7 @@ void wxGenericDirCtrl::SetFilter(const wxString& filter)
 {
     m_filter = filter;
 
-    if (!filter.empty() && !m_filterListCtrl)
+    if (!filter.empty() && !m_filterListCtrl && HasFlag(wxDIRCTRL_SHOW_FILTERS))
         m_filterListCtrl = new wxDirFilterListCtrl(this, wxID_FILTERLISTCTRL);
     else if (filter.empty() && m_filterListCtrl)
     {