У меня есть приложение, для которого пользователь может открывать контекстные меню в виде дерева.Чтобы получить текущий путь после щелчка правой кнопкой мыши, я использую
gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (treeview), event_button->x, event_button->y, &path, NULL, NULL, NULL)
, (кнопка event_button имеет тип GdkEventButton , который был передан функции)
, которыйвсегда надежно возвращает правильный путь.Я перенес свое приложение на GTK4, где больше нет прямого доступа к элементам события.Поэтому я подумал, что лучше всего получить координаты с помощью
gdk_event_get_coords (event, &x_win, &y_win)
(x_win и y_win имеют тип double )
, а затем
gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (treeview), (gint) x_win, (gint) y_win, &path, NULL, NULL, NULL)
.
Однако с координатами, полученными gdk_event_get_coords
, я всегда получаю следующий путь внутри дерева (x_win выдает значение, как и ожидалось).Как я могу получить те же значения, что и в GTK3?