+
+ wxDataViewModel* const model = GetModel();
+
+ const unsigned int current = GetLineAt( y );
+ const wxDataViewItem item = GetItemByRow(current);
+
+ // Handle right clicking here, before everything else as context menu
+ // events should be sent even when we click outside of any item, unlike all
+ // the other ones.
+ if (event.RightUp())
+ {
+ wxWindow *parent = GetParent();
+ wxDataViewEvent le(wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, parent->GetId());
+ le.SetEventObject(parent);
+ le.SetModel(model);
+
+ if ( item.IsOk() && col )
+ {
+ le.SetItem( item );
+ le.SetColumn( col->GetModelColumn() );
+ le.SetDataViewColumn( col );
+
+ wxVariant value;
+ model->GetValue( value, item, col->GetModelColumn() );
+ le.SetValue(value);
+ }
+
+ parent->ProcessWindowEvent(le);
+ return;
+ }
+