Squashed 'yocto-poky/' content from commit ea562de

git-subtree-dir: yocto-poky
git-subtree-split: ea562de57590c966cd5a75fda8defecd397e6436
diff --git a/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch b/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch
new file mode 100644
index 0000000..7e2c3ab
--- /dev/null
+++ b/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch
@@ -0,0 +1,203 @@
+This patch enable owl menu, which is hidden in the title bar to save space on
+small screen. It has not been used for a long time, rebase needed.
+
+Upstream-Status: Inappropriate [enable feature]
+
+Index: src/gtk.c
+===================================================================
+--- src/gtk.c	(revision 22)
++++ src/gtk.c	(working copy)
+@@ -28,6 +28,8 @@
+ #include <gdk/gdkx.h>
+ #include <gdk-pixbuf/gdk-pixbuf.h>
+ 
++#include <libowl/owlwindowmenu.h>
++
+ #include <librsvg/rsvg.h>
+ 
+ #include <X11/Xlib.h>
+@@ -1237,6 +1239,7 @@
+     }
+ }
+ 
++#if 0
+ static void
+ add_widget (GtkUIManager *merge,
+ 	    GtkWidget *widget,
+@@ -1247,10 +1250,11 @@
+     gtk_box_pack_start (box, widget, FALSE, FALSE, 0);
+ 
+     toplevel = gtk_widget_get_toplevel (GTK_WIDGET (box));
+-    gtk_widget_show_all (toplevel);
+ }
++#endif
+ 
+ static GtkActionEntry toplevel_actions[] = {
++    { "Top", NULL, "" },
+     { "Game", NULL, N_("Game") },
+     { "Settings", NULL, N_("Settings") },
+     { "Help", NULL, N_("Help") },
+@@ -1303,11 +1307,13 @@
+ 			frontend *fe)
+ {
+     GString *xml;
++    GError *error = NULL;
+     gboolean presets = FALSE;
+     GSList *radio_group = NULL;
+     int i;
+ 
+-    xml = g_string_new ("<ui><menubar><placeholder name=\"TypePlaceholder\">"
++    xml = g_string_new ("<ui><menubar><menu name=\"TopMenu\" action=\"Top\">"
++			"<placeholder name=\"TypePlaceholder\">"
+ 			"<menu name=\"SettingsMenu\" action=\"Settings\">");
+ 
+     for (i = 0; i < midend_num_presets(fe->me); i++) {
+@@ -1359,8 +1365,14 @@
+ 			 "<menuitem name=\"CustomMenu\" action=\"Custom\"/>");
+     }
+     
+-    g_string_append (xml, "</menu></placeholder></menubar></ui>");
+-    gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, NULL);
++    g_string_append (xml, "</menu></placeholder></menu></menubar></ui>");
++
++    gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, &error);
++    if (error != NULL) {
++	g_warning ("Error adding custom: %s", error->message);
++	g_error_free (error);
++    }
++
+     g_string_free (xml, TRUE);
+ }
+ 
+@@ -1434,6 +1446,7 @@
+ new_window(char *arg, char **error)
+ {
+     frontend *fe;
++    GError *err = NULL;
+     GtkBox *vbox;
+     GtkUIManager *merge;
+     GtkActionGroup *actions;
+@@ -1496,8 +1509,6 @@
+     gtk_window_add_accel_group(GTK_WINDOW(fe->window), fe->accelgroup);
+ 
+     merge = gtk_ui_manager_new ();
+-    g_signal_connect (G_OBJECT (merge), "add_widget",
+-		      G_CALLBACK (add_widget), vbox);
+ 
+     actions = gtk_action_group_new ("PuzzleActions");
+     gtk_action_group_add_actions (actions, toplevel_actions,
+@@ -1509,22 +1520,39 @@
+ 
+     gtk_ui_manager_insert_action_group (merge, actions, 0);
+     
+-    gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml", NULL);
++    gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml", 
++				     &err);
++    if (err != NULL) {
++	g_warning ("Error making UI: %s", err->message);
++	g_error_free (err);
++	err = NULL;
++    }
+ 
+     if (thegame.can_solve) {
+-	    char *str = "<ui><menubar><menu name=\"GameMenu\" action=\"Game\">"
++	char *str = "<ui><menubar><menu name=\"TopMenu\" action=\"Top\">"
++	    "<menu name=\"GameMenu\" action=\"Game\">"
+ 	    "<placeholder name=\"SolvePlaceholder\">"
+ 	    "<separator name=\"SolveSep\"/>"
+ 	    "<menuitem name=\"SolveMenu\" action=\"Solve\"/>"
+-	    "</placeholder></menu></menubar></ui>";
++	    "</placeholder></menu></menu></menubar></ui>";
+ 
+-	gtk_ui_manager_add_ui_from_string (merge, str, -1, NULL);
++	gtk_ui_manager_add_ui_from_string (merge, str, -1, &err);
++	if (err != NULL) {
++	    g_warning ("Error adding solve. %s", err->message);
++	    g_error_free (err);
++	}
+     }
+ 
+     if ((n = midend_num_presets(fe->me)) > 0 || thegame.can_configure) {
+ 	generate_settings_menu (merge, actions, fe);
+     }
+ 
++    /* Do this so that the menu is packed now instead of in the idle loop */
++    gtk_ui_manager_ensure_update (merge);
++
++    owl_set_window_menu_item (GTK_WINDOW (fe->window),
++			      GTK_MENU_ITEM (gtk_ui_manager_get_widget (merge, "/menubar/TopMenu")));
++    
+     setup_colours (fe);
+     setup_pixbufs (fe);
+ 
+@@ -1572,7 +1600,7 @@
+                           GDK_BUTTON_RELEASE_MASK |
+ 			  GDK_BUTTON_MOTION_MASK);
+ 
+-    /* The window is shown once the menubar has been added */
++    gtk_widget_show_all (fe->window);
+     return fe;
+ }
+ 
+Index: src/menu.xml
+===================================================================
+--- src/menu.xml	(revision 22)
++++ src/menu.xml	(working copy)
+@@ -1,26 +1,25 @@
+ <ui>
+ <menubar>
+-<menu name="GameMenu" action="Game">
+-	<menuitem name="NewMenu" action="New"/>
+-	<menuitem name="RestartMenu" action="Restart"/>
+-<!--	<menuitem name="SpecificMenu" action="Specific"/> -->
+-	<menuitem name="RandomMenu" action="Random"/>
+-	<separator name="GameSep1"/>
+-	<menuitem name="LoadMenu" action="Load"/>
+-	<menuitem name="SaveMenu" action="Save"/>
+-	<separator name="GameSep2"/>
+-	<menuitem name="UndoMenu" action="Undo"/>
+-	<menuitem name="RedoMenu" action="Redo"/>
+-	<placeholder name="CopyPlaceholder"/>
+-	<placeholder name="SolvePlaceholder"/>
+-	<separator name="GameSep3"/>
+-	<menuitem name="QuitMenu" action="Quit"/>
+-</menu>
++<menu name="TopMenu" action="Top">
++	<menu name="GameMenu" action="Game">
++		<menuitem name="NewMenu" action="New"/>
++		<menuitem name="RestartMenu" action="Restart"/>
++	<!--	<menuitem name="SpecificMenu" action="Specific"/> -->
++		<menuitem name="RandomMenu" action="Random"/>
++		<separator name="GameSep1"/>
++		<menuitem name="LoadMenu" action="Load"/>
++		<menuitem name="SaveMenu" action="Save"/>
++		<separator name="GameSep2"/>
++		<menuitem name="UndoMenu" action="Undo"/>
++		<menuitem name="RedoMenu" action="Redo"/>
++		<placeholder name="CopyPlaceholder"/>
++		<placeholder name="SolvePlaceholder"/>
++	</menu>
+ 
+-<placeholder name="TypePlaceholder"/>
+-
+-<menu name="HelpMenu" action="Help">
++	<placeholder name="TypePlaceholder"/>
+ 	<menuitem name="AboutMenu" action="About"/>
++	<menuitem name="QuitMenu" action="Quit"/>
++
+ </menu>
+ </menubar>
+ </ui>
+Index: src/Makefile.am
+===================================================================
+--- src/Makefile.am	(revision 22)
++++ src/Makefile.am	(working copy)
+@@ -10,7 +10,7 @@
+ 	lightup loopy map mines net netslide pattern pegs rect samegame \
+ 	sixteen slant solo tents twiddle untangle
+ 
+-libpuzzles_la_LIBADD = $(PUZZLES_LIBS)
++libpuzzles_la_LIBADD = $(PUZZLES_LIBS) -lowl
+ libpuzzles_la_SOURCES = combi.c \
+ 			configuration.c \
+ 			drawing.c \