diff options
Diffstat (limited to 'meta/packages/puzzles')
-rw-r--r-- | meta/packages/puzzles/files/oh-puzzles-owl-menu.patch | 198 | ||||
-rw-r--r-- | meta/packages/puzzles/oh-puzzles_svn.bb | 3 |
2 files changed, 200 insertions, 1 deletions
diff --git a/meta/packages/puzzles/files/oh-puzzles-owl-menu.patch b/meta/packages/puzzles/files/oh-puzzles-owl-menu.patch new file mode 100644 index 000000000..e280ea81b --- /dev/null +++ b/meta/packages/puzzles/files/oh-puzzles-owl-menu.patch @@ -0,0 +1,198 @@ +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 <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/Top"))); ++ + 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 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 \ diff --git a/meta/packages/puzzles/oh-puzzles_svn.bb b/meta/packages/puzzles/oh-puzzles_svn.bb index cf6a9d990..8f02bf221 100644 --- a/meta/packages/puzzles/oh-puzzles_svn.bb +++ b/meta/packages/puzzles/oh-puzzles_svn.bb @@ -7,7 +7,8 @@ PR = "r0" inherit autotools pkgconfig -SRC_URI = "svn://svn.o-hand.com/repos/;module=oh-puzzles;proto=http" +SRC_URI = "svn://svn.o-hand.com/repos/;module=oh-puzzles;proto=http \ + file://oh-puzzles-owl-menu.patch;patch=1;pnum=0" S = "${WORKDIR}/${PN}" do_install_append () { |