Set position for wxEVT_DATAVIEW_ITEM_CONTEXT_MENU with GTK wxDataViewCtrl
See #19188
This commit is contained in:
@@ -4693,6 +4693,8 @@ gtk_dataview_button_press_callback( GtkWidget *WXUNUSED(widget),
|
|||||||
if (gdk_event->window != gtk_tree_view_get_bin_window(treeview))
|
if (gdk_event->window != gtk_tree_view_get_bin_window(treeview))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
int x = int(gdk_event->x);
|
||||||
|
int y = int(gdk_event->y);
|
||||||
wxGtkTreePath path;
|
wxGtkTreePath path;
|
||||||
GtkTreeViewColumn *column = NULL;
|
GtkTreeViewColumn *column = NULL;
|
||||||
gint cell_x = 0;
|
gint cell_x = 0;
|
||||||
@@ -4700,7 +4702,7 @@ gtk_dataview_button_press_callback( GtkWidget *WXUNUSED(widget),
|
|||||||
gtk_tree_view_get_path_at_pos
|
gtk_tree_view_get_path_at_pos
|
||||||
(
|
(
|
||||||
treeview,
|
treeview,
|
||||||
(int) gdk_event->x, (int) gdk_event->y,
|
x, y,
|
||||||
path.ByRef(),
|
path.ByRef(),
|
||||||
&column,
|
&column,
|
||||||
&cell_x,
|
&cell_x,
|
||||||
@@ -4722,6 +4724,13 @@ gtk_dataview_button_press_callback( GtkWidget *WXUNUSED(widget),
|
|||||||
|
|
||||||
wxDataViewEvent
|
wxDataViewEvent
|
||||||
event(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, dv, dv->GTKPathToItem(path));
|
event(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, dv, dv->GTKPathToItem(path));
|
||||||
|
#if GTK_CHECK_VERSION(2,12,0)
|
||||||
|
if (wx_is_at_least_gtk2(12))
|
||||||
|
{
|
||||||
|
gtk_tree_view_convert_bin_window_to_widget_coords(treeview, x, y, &x, &y);
|
||||||
|
event.SetPosition(x, y);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return dv->HandleWindowEvent( event );
|
return dv->HandleWindowEvent( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user