Index: gtk/gtktoggleaction.c
===================================================================
--- gtk/gtktoggleaction.c	(revision 18242)
+++ gtk/gtktoggleaction.c	(working copy)
@@ -143,9 +143,10 @@
 /**
  * gtk_toggle_action_new:
  * @name: A unique name for the action
- * @label: The label displayed in menu items and on buttons
- * @tooltip: A tooltip for the action
- * @stock_id: The stock icon to display in widgets representing the action
+ * @label: The label displayed in menu items and on buttons, or %NULL
+ * @tooltip: A tooltip for the action, or %NULL
+ * @stock_id: The stock icon to display in widgets representing the
+ *   action, or %NULL
  *
  * Creates a new #GtkToggleAction object. To add the action to
  * a #GtkActionGroup and set the accelerator for the action,
@@ -161,16 +162,14 @@
 		       const gchar *tooltip,
 		       const gchar *stock_id)
 {
-  GtkToggleAction *action;
+  g_return_val_if_fail (name != NULL, NULL);
 
-  action = g_object_new (GTK_TYPE_TOGGLE_ACTION,
-			 "name", name,
-			 "label", label,
-			 "tooltip", tooltip,
-			 "stock-id", stock_id,
-			 NULL);
-
-  return action;
+  return g_object_new (GTK_TYPE_TOGGLE_ACTION,
+		       "name", name,
+		       "label", label,
+		       "tooltip", tooltip,
+		       "stock-id", stock_id,
+		       NULL);
 }
 
 static void
Index: gtk/gtkaction.c
===================================================================
--- gtk/gtkaction.c	(revision 18242)
+++ gtk/gtkaction.c	(working copy)
@@ -417,9 +417,10 @@
 /**
  * gtk_action_new:
  * @name: A unique name for the action
- * @label: the label displayed in menu items and on buttons
- * @tooltip: a tooltip for the action
- * @stock_id: the stock icon to display in widgets representing the action
+ * @label: the label displayed in menu items and on buttons, or %NULL
+ * @tooltip: a tooltip for the action, or %NULL
+ * @stock_id: the stock icon to display in widgets representing the
+ *   action, or %NULL
  *
  * Creates a new #GtkAction object. To add the action to a
  * #GtkActionGroup and set the accelerator for the action,
@@ -437,16 +438,14 @@
 		const gchar *tooltip,
 		const gchar *stock_id)
 {
-  GtkAction *action;
+  g_return_val_if_fail (name != NULL, NULL);
 
-  action = g_object_new (GTK_TYPE_ACTION,
-			 "name", name,
-			 "label", label,
-			 "tooltip", tooltip,
-			 "stock-id", stock_id,
-			 NULL);
-
-  return action;
+  return g_object_new (GTK_TYPE_ACTION,
+                       "name", name,
+		       "label", label,
+		       "tooltip", tooltip,
+		       "stock-id", stock_id,
+		       NULL);
 }
 
 static void
Index: gtk/gtkradioaction.c
===================================================================
--- gtk/gtkradioaction.c	(revision 18242)
+++ gtk/gtkradioaction.c	(working copy)
@@ -181,11 +181,12 @@
 /**
  * gtk_radio_action_new:
  * @name: A unique name for the action
- * @label: The label displayed in menu items and on buttons
- * @tooltip: A tooltip for this action
- * @stock_id: The stock icon to display in widgets representing this action
- * @value: The value which gtk_radio_action_get_current_value() should return
- *    if this action is selected.
+ * @label: The label displayed in menu items and on buttons, or %NULL
+ * @tooltip: A tooltip for this action, or %NULL
+ * @stock_id: The stock icon to display in widgets representing this
+ *   action, or %NULL
+ * @value: The value which gtk_radio_action_get_current_value() should
+ *   return if this action is selected.
  *
  * Creates a new #GtkRadioAction object. To add the action to
  * a #GtkActionGroup and set the accelerator for the action,
@@ -202,17 +203,15 @@
 		      const gchar *stock_id,
 		      gint value)
 {
-  GtkRadioAction *action;
+  g_return_val_if_fail (name != NULL, NULL);
 
-  action = g_object_new (GTK_TYPE_RADIO_ACTION,
-			 "name", name,
-			 "label", label,
-			 "tooltip", tooltip,
-			 "stock-id", stock_id,
-			 "value", value,
-			 NULL);
-
-  return action;
+  return g_object_new (GTK_TYPE_RADIO_ACTION,
+		       "name", name,
+		       "label", label,
+		       "tooltip", tooltip,
+		       "stock-id", stock_id,
+		       "value", value,
+		       NULL);
 }
 
 static void
Index: gtk/gtkrecentaction.c
===================================================================
--- gtk/gtkrecentaction.c	(revision 18242)
+++ gtk/gtkrecentaction.c	(working copy)
@@ -688,9 +688,10 @@
 /**
  * gtk_recent_action_new:
  * @name: a unique name for the action
- * @label: the label displayed in menu items and on buttons
- * @tooltip: a tooltip for the action
- * @stock_id: the stock icon to display in widgets representing the action
+ * @label: the label displayed in menu items and on buttons, or %NULL
+ * @tooltip: a tooltip for the action, or %NULL
+ * @stock_id: the stock icon to display in widgets representing the
+ *   action, or %NULL
  *
  * Creates a new #GtkRecentAction object. To add the action to
  * a #GtkActionGroup and set the accelerator for the action,
@@ -706,6 +707,8 @@
                        const gchar *tooltip,
                        const gchar *stock_id)
 {
+  g_return_val_if_fail (name != NULL, NULL);
+
   return g_object_new (GTK_TYPE_RECENT_ACTION,
                        "name", name,
                        "label", label,
@@ -717,10 +720,12 @@
 /**
  * gtk_recent_action_new_for_manager:
  * @name: a unique name for the action
- * @label: the label displayed in menu items and on buttons
- * @tooltip: a tooltip for the action
- * @stock_id: the stock icon to display in widgets representing the action
- * @manager: a #GtkRecentManager or %NULL
+ * @label: the label displayed in menu items and on buttons, or %NULL
+ * @tooltip: a tooltip for the action, or %NULL
+ * @stock_id: the stock icon to display in widgets representing the
+ *   action, or %NULL
+ * @manager: a #GtkRecentManager, or %NULL for using the default
+ *   #GtkRecentManager
  *
  * Creates a new #GtkRecentAction object. To add the action to
  * a #GtkActionGroup and set the accelerator for the action,
@@ -737,6 +742,9 @@
                                    const gchar      *stock_id,
                                    GtkRecentManager *manager)
 {
+  g_return_val_if_fail (name != NULL, NULL);
+  g_return_val_if_fail (manager == NULL || GTK_IS_RECENT_MANAGER (manager), NULL);
+
   return g_object_new (GTK_TYPE_RECENT_ACTION,
                        "name", name,
                        "label", label,
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18242)
+++ ChangeLog	(working copy)
@@ -1,3 +1,13 @@
+2007-06-26  Emmanuele Bassi  <ebassi@gnome.org>
+
+	* gtk/gtkaction.c:
+	* gtk/gtkradioaction.c:
+	* gtk/gtkrecentaction.c:
+	* gtk/gtktoggleaction.c: Update the documentation to mark
+	the optional constructors parameters. The GtkAction::name
+	property is required, instead, as it is used by GtkUIManager
+	to find the action object from the XML. (#450032, Murray Cumming)
+
 2007-06-26  Kristian Rietveld  <kris@imendio.com>
 
 	* gtk/gtktooltips.h: remove the deprecation macros for now to fix
