@@ -137,29 +137,6 @@ gdict_sidebar_dispose (GObject *object)
137137 G_OBJECT_CLASS (gdict_sidebar_parent_class )-> dispose (object );
138138}
139139
140- static void
141- gdict_sidebar_menu_position_function (GtkMenu * menu ,
142- gint * x ,
143- gint * y ,
144- gboolean * push_in ,
145- gpointer user_data )
146- {
147- GtkWidget * widget ;
148- GtkAllocation allocation ;
149-
150- g_assert (GTK_IS_BUTTON (user_data ));
151-
152- widget = GTK_WIDGET (user_data );
153-
154- gdk_window_get_origin (gtk_widget_get_window (widget ), x , y );
155-
156- gtk_widget_get_allocation (widget , & allocation );
157- * x += allocation .x ;
158- * y += allocation .y + allocation .height ;
159-
160- * push_in = FALSE;
161- }
162-
163140static gboolean
164141gdict_sidebar_select_button_press_cb (GtkWidget * widget ,
165142 GdkEventButton * event ,
@@ -182,10 +159,11 @@ gdict_sidebar_select_button_press_cb (GtkWidget *widget,
182159 gtk_widget_grab_focus (widget );
183160
184161 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget ), TRUE);
185- gtk_menu_popup (GTK_MENU (sidebar -> priv -> menu ),
186- NULL , NULL ,
187- gdict_sidebar_menu_position_function , widget ,
188- event -> button , event -> time );
162+ gtk_menu_popup_at_widget (GTK_MENU (sidebar -> priv -> menu ),
163+ widget ,
164+ GDK_GRAVITY_SOUTH_WEST ,
165+ GDK_GRAVITY_NORTH_WEST ,
166+ (const GdkEvent * ) event );
189167
190168 return TRUE;
191169 }
@@ -206,10 +184,11 @@ gdict_sidebar_select_key_press_cb (GtkWidget *widget,
206184 event -> keyval == GDK_KEY_KP_Enter )
207185 {
208186 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget ), TRUE);
209- gtk_menu_popup (GTK_MENU (sidebar -> priv -> menu ),
210- NULL , NULL ,
211- gdict_sidebar_menu_position_function , widget ,
212- 1 , event -> time );
187+ gtk_menu_popup_at_widget (GTK_MENU (sidebar -> priv -> menu ),
188+ widget ,
189+ GDK_GRAVITY_SOUTH_WEST ,
190+ GDK_GRAVITY_NORTH_WEST ,
191+ (const GdkEvent * ) event );
213192
214193 return TRUE;
215194 }
0 commit comments