From a703e2406fda3dc150574ae2f90cb5f4810d0601 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 29 Aug 2022 00:25:19 -0700
Subject: [PATCH] Fix signature of create_menu() function

Upstream-Status: Inappropriate [EOL]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 tests/testmenubars.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tests/testmenubars.c b/tests/testmenubars.c
index 416a939..7f247f8 100644
--- a/tests/testmenubars.c
+++ b/tests/testmenubars.c
@@ -21,7 +21,7 @@
 #include <gtk/gtk.h>
 
 static GtkWidget *
-create_menu (depth)
+create_menu (int depth)
 {
     GtkWidget *menu;
     GtkWidget *menuitem;
@@ -70,19 +70,19 @@ create_menubar (GtkPackDirection pack_dir,
   menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_HOME, NULL);
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
   gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
-  menu = create_menu (2, TRUE);
+  menu = create_menu (2);
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
 
   menuitem = gtk_menu_item_new_with_label ("foo");
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
   gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
-  menu = create_menu (2, TRUE);
+  menu = create_menu (2);
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
 
   menuitem = gtk_menu_item_new_with_label ("bar");
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
   gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
-  menu = create_menu (2, TRUE);
+  menu = create_menu (2);
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
 
   return menubar;
-- 
2.37.2

