Deprecate gtk_menu_popup and gtk_menu_popup_for_device

These functions don't work well on backends without global
coordinates (such as Wayland or Mir), and the gtk_menu_popup_at_
variants are better alternatives.

https://bugzilla.gnome.org/show_bug.cgi?id=772552
This commit is contained in:
Matthias Clasen
2016-10-12 13:46:25 -04:00
parent 0ecc4ac7de
commit dd9a9d9dcc
2 changed files with 19 additions and 2 deletions

View File

@ -2039,7 +2039,15 @@ gtk_menu_popup_internal (GtkMenu *menu,
* Only if no such event is available, gtk_get_current_event_time() can * Only if no such event is available, gtk_get_current_event_time() can
* be used instead. * be used instead.
* *
* Note that this function does not work very well on GDK backends that
* do not have global coordinates, such as Wayland or Mir. You should
* probably use one of the gtk_menu_popup_at_ variants, which do not
* have this problem.
*
* Since: 3.0 * Since: 3.0
*
* Deprecated: 3.22: Please use gtk_menu_popup_at_widget(),
* gtk_menu_popup_at_pointer(). or gtk_menu_popup_at_rect() instead
*/ */
void void
gtk_menu_popup_for_device (GtkMenu *menu, gtk_menu_popup_for_device (GtkMenu *menu,
@ -2103,6 +2111,14 @@ gtk_menu_popup_for_device (GtkMenu *menu,
* a mouse click or key press) that caused the initiation of the popup. * a mouse click or key press) that caused the initiation of the popup.
* Only if no such event is available, gtk_get_current_event_time() can * Only if no such event is available, gtk_get_current_event_time() can
* be used instead. * be used instead.
*
* Note that this function does not work very well on GDK backends that
* do not have global coordinates, such as Wayland or Mir. You should
* probably use one of the gtk_menu_popup_at_ variants, which do not
* have this problem.
*
* Deprecated: 3.22: Please use gtk_menu_popup_at_widget(),
* gtk_menu_popup_at_pointer(). or gtk_menu_popup_at_rect() instead
*/ */
void void
gtk_menu_popup (GtkMenu *menu, gtk_menu_popup (GtkMenu *menu,
@ -2119,6 +2135,7 @@ gtk_menu_popup (GtkMenu *menu,
NULL, NULL,
parent_menu_shell, parent_menu_shell,
parent_menu_item, parent_menu_item,
func, data, NULL, func, data, NULL,
button, activate_time); button, activate_time);
} }

View File

@ -134,7 +134,7 @@ GDK_AVAILABLE_IN_3_4
GtkWidget* gtk_menu_new_from_model (GMenuModel *model); GtkWidget* gtk_menu_new_from_model (GMenuModel *model);
/* Display the menu onscreen */ /* Display the menu onscreen */
GDK_AVAILABLE_IN_ALL GDK_DEPRECATED_IN_3_22_FOR((gtk_menu_popup_at_widget, gtk_menu_popup_at_pointer, gtk_menu_popup_at_rect))
void gtk_menu_popup (GtkMenu *menu, void gtk_menu_popup (GtkMenu *menu,
GtkWidget *parent_menu_shell, GtkWidget *parent_menu_shell,
GtkWidget *parent_menu_item, GtkWidget *parent_menu_item,
@ -142,7 +142,7 @@ void gtk_menu_popup (GtkMenu *menu,
gpointer data, gpointer data,
guint button, guint button,
guint32 activate_time); guint32 activate_time);
GDK_AVAILABLE_IN_ALL GDK_DEPRECATED_IN_3_22_FOR((gtk_menu_popup_at_widget, gtk_menu_popup_at_pointer, gtk_menu_popup_at_rect))
void gtk_menu_popup_for_device (GtkMenu *menu, void gtk_menu_popup_for_device (GtkMenu *menu,
GdkDevice *device, GdkDevice *device,
GtkWidget *parent_menu_shell, GtkWidget *parent_menu_shell,