pidgin/pidgin

Use GtkPopoverMenu in PidginAvatar

2022-03-08, Elliott Sales de Andrade
ef8cfc432444
Parents 8d642098b453
Children c6bd9ea15211
Use GtkPopoverMenu in PidginAvatar

This is needed for GTK4, though the API there will be different.

Testing Done:
Opened a conversation and right-clicked on the avatar (though note the actions don't work in conversations...)

Reviewed at https://reviews.imfreedom.org/r/1315/
--- a/pidgin/pidginavatar.c Thu Feb 24 21:16:07 2022 -0600
+++ b/pidgin/pidginavatar.c Tue Mar 08 01:21:19 2022 -0600
@@ -310,14 +310,15 @@
builder = gtk_builder_new_from_resource("/im/pidgin/Pidgin3/Avatar/menu.ui");
model = (GMenuModel *)gtk_builder_get_object(builder, "menu");
- menu = gtk_menu_new_from_model(model);
- gtk_menu_attach_to_widget(GTK_MENU(menu), GTK_WIDGET(avatar), NULL);
+ menu = gtk_popover_menu_new();
+ gtk_popover_bind_model(GTK_POPOVER(menu), model, NULL);
+ gtk_popover_set_relative_to(GTK_POPOVER(menu), GTK_WIDGET(avatar));
+ gtk_popover_set_pointing_to(GTK_POPOVER(menu),
+ &(const GdkRectangle){(int)event->x, (int)event->y, 0, 0});
g_clear_object(&builder);
- gtk_widget_show_all(menu);
-
- gtk_menu_popup_at_pointer(GTK_MENU(menu), (GdkEvent *)event);
+ gtk_popover_popup(GTK_POPOVER(menu));
return TRUE;
}