@@ -222,30 +222,6 @@ eom_sidebar_class_init (EomSidebarClass *eom_sidebar_class)
222222 GTK_TYPE_WIDGET );
223223}
224224
225- static void
226- eom_sidebar_menu_position_under (GtkMenu * menu ,
227- gint * x ,
228- gint * y ,
229- gboolean * push_in ,
230- gpointer user_data )
231- {
232- GtkWidget * widget ;
233- GtkAllocation allocation ;
234-
235- g_return_if_fail (GTK_IS_BUTTON (user_data ));
236- g_return_if_fail (!gtk_widget_get_has_window (user_data ));
237-
238- widget = GTK_WIDGET (user_data );
239- gtk_widget_get_allocation (widget , & allocation );
240-
241- gdk_window_get_origin (gtk_widget_get_window (widget ), x , y );
242-
243- * x += allocation .x ;
244- * y += allocation .y + allocation .height ;
245-
246- * push_in = FALSE;
247- }
248-
249225static gboolean
250226eom_sidebar_select_button_press_cb (GtkWidget * widget ,
251227 GdkEventButton * event ,
@@ -269,9 +245,11 @@ eom_sidebar_select_button_press_cb (GtkWidget *widget,
269245
270246 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget ), TRUE);
271247
272- gtk_menu_popup (GTK_MENU (eom_sidebar -> priv -> menu ),
273- NULL , NULL , eom_sidebar_menu_position_under , widget ,
274- event -> button , event -> time );
248+ gtk_menu_popup_at_widget (GTK_MENU (eom_sidebar -> priv -> menu ),
249+ widget ,
250+ GDK_GRAVITY_SOUTH_WEST ,
251+ GDK_GRAVITY_NORTH_WEST ,
252+ (const GdkEvent * ) event );
275253
276254 return TRUE;
277255 }
@@ -292,9 +270,11 @@ eom_sidebar_select_button_key_press_cb (GtkWidget *widget,
292270 event -> keyval == GDK_KEY_KP_Enter ) {
293271 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget ), TRUE);
294272
295- gtk_menu_popup (GTK_MENU (eom_sidebar -> priv -> menu ),
296- NULL , NULL , eom_sidebar_menu_position_under , widget ,
297- 1 , event -> time );
273+ gtk_menu_popup_at_widget (GTK_MENU (eom_sidebar -> priv -> menu ),
274+ widget ,
275+ GDK_GRAVITY_SOUTH_WEST ,
276+ GDK_GRAVITY_NORTH_WEST ,
277+ (const GdkEvent * ) event );
298278
299279 return TRUE;
300280 }
0 commit comments