Удалите GtkMenuItem из GtkMenu в индикаторе приложения, используя c

Я создаю приложение, которое использует индикатор приложения. Меню должно обновляться динамически. Добавление элементов отлично работает с помощью gtk_menu_shell_append, однако для удаления я не могу найти функцию gtk_menu_shell_*. Я нашел gtk_container_remove и вызвал его с помощью gtkmenuitem, и его родитель приводит к следующим предупреждениям:

GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkWidget'
Gtk-CRITICAL **: gtk_widget_get_parent: assertion `GTK_IS_WIDGET (widget)' failed
Gtk-CRITICAL **: gtk_container_remove: assertion `GTK_IS_CONTAINER (container)' failed

Я также пытался вызвать gtk_widget_destory и получить такие ошибки:

GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkWidget'
Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed

Обратите внимание, что оба метода фактически удаляют пункт меню из меню.

Как правильно удалить GtkMenuItem из GtkMenu без появления этих ошибок/предупреждений?


person Frank Groeneveld    schedule 22.12.2012    source источник


Ответы (1)


Видимо, виджет был каким-то неправильным (не понимаю, почему это все еще работает).

person Frank Groeneveld    schedule 25.12.2012