x = dc.LogicalToDeviceX( x );
y = dc.LogicalToDeviceY( y );
- wxTreeTextCtrl *text = new wxTreeTextCtrl(
- this, -1, &m_renameAccept, &m_renameRes, this, s, wxPoint(x-4,y-4), wxSize(w+11,h+8) );
+ wxTreeTextCtrl *text = new wxTreeTextCtrl(this, -1,
+ &m_renameAccept,
+ &m_renameRes,
+ this,
+ s,
+ wxPoint(x-4,y-4),
+ wxSize(w+11,h+8));
text->SetFocus();
}
m_lastOnSame = FALSE;
}
}
- else
+ else // !RightDown() && !LeftUp() ==> LeftDown() || LeftDClick()
{
if ( event.LeftDown() )
{
m_lastOnSame = item == m_current;
}
+ if ( flags & wxTREE_HITTEST_ONITEMBUTTON )
+ {
+ // only toggle the item for a single click, double click on
+ // the button doesn't do anything (it toggles the item twice)
+ if ( event.LeftDown() )
+ {
+ Toggle( item );
+ }
+
+ // don't select the item if the button was clicked
+ return;
+ }
+
// how should the selection work for this event?
bool is_multiple, extended_select, unselect_others;
EventFlagsToSelType(GetWindowStyleFlag(),
event.ControlDown(),
is_multiple, extended_select, unselect_others);
- if ( (flags & wxTREE_HITTEST_ONITEMBUTTON) && event.LeftDown() )
- {
- Toggle( item );
- if ( is_multiple )
- return;
- }
-
SelectItem(item, unselect_others, extended_select);
if ( event.LeftDClick() )