mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-10-31 08:22:16 +01:00 
			
		
		
		
	GMenu: add g_menu_remove_all() API
Removes all of the items from a GMenu. The keyboard indicator wants to do this as part of refreshing the layout list, as an example. https://bugzilla.gnome.org/show_bug.cgi?id=697601
This commit is contained in:
		| @@ -3773,6 +3773,7 @@ g_menu_prepend_submenu | ||||
|  | ||||
| <SUBSECTION> | ||||
| g_menu_remove | ||||
| g_menu_remove_all | ||||
|  | ||||
| <SUBSECTION> | ||||
| GMenuItem | ||||
|   | ||||
							
								
								
									
										23
									
								
								gio/gmenu.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								gio/gmenu.c
									
									
									
									
									
								
							| @@ -486,6 +486,29 @@ g_menu_remove (GMenu *menu, | ||||
|   g_menu_model_items_changed (G_MENU_MODEL (menu), position, 1, 0); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * g_menu_remove_all: | ||||
|  * @menu: a #GMenu | ||||
|  * | ||||
|  * Removes all items in the menu. | ||||
|  * | ||||
|  * Since: 2.38 | ||||
|  **/ | ||||
| void | ||||
| g_menu_remove_all (GMenu *menu) | ||||
| { | ||||
|   gint i, n; | ||||
|  | ||||
|   g_return_if_fail (G_IS_MENU (menu)); | ||||
|   n = menu->items->len; | ||||
|  | ||||
|   for (i = 0; i < n; i++) | ||||
|     g_menu_clear_item (&g_array_index (menu->items, struct item, i)); | ||||
|   g_array_set_size (menu->items, 0); | ||||
|  | ||||
|   g_menu_model_items_changed (G_MENU_MODEL (menu), 0, n, 0); | ||||
| } | ||||
|  | ||||
| static void | ||||
| g_menu_finalize (GObject *object) | ||||
| { | ||||
|   | ||||
| @@ -63,6 +63,9 @@ GLIB_AVAILABLE_IN_2_32 | ||||
| void        g_menu_remove                           (GMenu       *menu, | ||||
|                                                      gint         position); | ||||
|  | ||||
| GLIB_AVAILABLE_IN_2_38 | ||||
| void        g_menu_remove_all                       (GMenu       *menu); | ||||
|  | ||||
| GLIB_AVAILABLE_IN_2_32 | ||||
| void        g_menu_insert                           (GMenu       *menu, | ||||
|                                                      gint         position, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user