static void photos_dropdown_add_manager (PhotosDropdown *self, PhotosBaseManager *mngr) { GMenu *menu; GtkWidget *popover; GtkWidget *w; PhotosBaseModel *model; model = photos_base_model_new (mngr); self->models = g_list_prepend (self->models, g_object_ref (model)); /* HACK: see https://bugzilla.gnome.org/show_bug.cgi?id=733977 */ popover = gtk_popover_new (NULL); menu = photos_base_model_get_model (model); gtk_popover_bind_model (GTK_POPOVER (popover), G_MENU_MODEL (menu), "app"); w = g_object_ref (gtk_bin_get_child (GTK_BIN (popover))); gtk_container_remove (GTK_CONTAINER (popover), w); gtk_container_add (GTK_CONTAINER (self->grid), w); g_object_unref (w); gtk_widget_set_valign (w, GTK_ALIGN_START); gtk_widget_set_vexpand (w, TRUE); gtk_widget_destroy (popover); g_object_unref (model); }
static GtkWidget* setup_popover (VteTerminal *vtterm) { GtkWidget *popover = gtk_popover_new (GTK_WIDGET (vtterm)); g_signal_connect (G_OBJECT (popover), "closed", G_CALLBACK (popover_closed), vtterm); dg_lobj GtkBuilder *builder = gtk_builder_new_from_resource (DWT_GRESOURCE ("menus.xml")); gtk_popover_bind_model (GTK_POPOVER (popover), G_MENU_MODEL (gtk_builder_get_object (builder, "popover-menu")), NULL); return popover; }