Я работаю над дефектом в моем коде GTK для отображения контекстных меню. После создания меню с несколькими пунктами меню я использую gtk_menu_popup()
для отображения меню. Эта функция принимает указатель функции типа GtkMenuPositionFunc
, который позволяет мне позиционировать меню. Я на самом деле ничего не делаю, за исключением того, что говорю GTK сохранить текущую позицию, но вставляю меню, если часть меню находится вне монитора (используя четвертый аргумент функции). Моя проблема в том, что, когда GTK нажимает на меню, абсолютное положение пунктов меню не изменяется. Следовательно, их положение прокрутки изменяется, что приводит к появлению полос прокрутки в меню. Я хочу, чтобы относительное положение пунктов меню по отношению к меню оставалось неизменным. Есть ли способ, которым я могу это сделать? Документация GTK предупреждает об этой проблеме, но ничего не говорит о том, как ее исправить. Для справки есть ссылка:
http://library.gnome.org/devel/gtk/unstable/GtkMenu.html#GtkMenuPositionFunc
РЕДАКТИРОВАТЬ: Я хотел бы включить некоторый код, но логика слишком разбросаны для этого.