GTK4: Не получается нужный путь с помощью gtk_tree_view_get_path_at_pos () - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть приложение, для которого пользователь может открывать контекстные меню в виде дерева.Чтобы получить текущий путь после щелчка правой кнопкой мыши, я использую

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?

1 Ответ

0 голосов
/ 14 апреля 2019

Что ж, опубликовав это в StackOverflow, похоже, снова очистил мою голову . Для потомков: Использование gtk_tree_view_convert_widget_to_bin_window_coords после gdk_event_get_coords преобразует исходные значения в ожидаемые результаты. Путь теперь правильный.

...