generic-poky/meta/recipes-sato/pcmanfm/files/owl-window-menu.patch

82 lines
2.4 KiB
Diff

0.9.7 use a new menu bar from gtk_ui_manager, so need a translation here to
enable owl menu
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Upstream-Status: Inappropriate [enable feature]
Index: pcmanfm-0.9.9/configure.ac
===================================================================
--- pcmanfm-0.9.9.orig/configure.ac 2011-08-10 05:28:31.000000000 +0800
+++ pcmanfm-0.9.9/configure.ac 2011-10-10 15:47:33.000000000 +0800
@@ -70,6 +70,8 @@
gtk_modules="gtk+-2.0 >= 2.16.0"
PKG_CHECK_MODULES(GTK, [$gtk_modules])
+OWL_LIBS="-lowl"
+GTK_LIBS="$GTK_LIBS $OWL_LIBS"
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
Index: pcmanfm-0.9.9/src/main-win.c
===================================================================
--- pcmanfm-0.9.9.orig/src/main-win.c 2011-08-10 05:28:32.000000000 +0800
+++ pcmanfm-0.9.9/src/main-win.c 2011-10-10 15:50:48.000000000 +0800
@@ -37,6 +37,8 @@
#include "pref.h"
#include "tab-page.h"
+#include "libowl/owlwindowmenu.h"
+
static void fm_main_win_finalize (GObject *object);
G_DEFINE_TYPE(FmMainWin, fm_main_win, GTK_TYPE_WINDOW);
@@ -400,9 +402,27 @@
}
}
+/* Transfer gtk_ui_manager menubar to gtk menubar */
+static GtkWidget * ui_menubar_to_menu(GtkWidget *menubar)
+{
+ GtkWidget *main_menu;
+ GList *iter;
+
+ main_menu = gtk_menu_new();
+
+ for ( iter = gtk_container_get_children(GTK_CONTAINER(menubar));
+ iter;
+ iter = g_list_next(iter) )
+ {
+ GtkWidget *menu = GTK_WIDGET(iter->data);
+ gtk_widget_reparent(menu, main_menu);
+ }
+ return main_menu;
+}
+
static void fm_main_win_init(FmMainWin *win)
{
- GtkWidget *vbox, *menubar, *toolitem, *btn;
+ GtkWidget *vbox, *menubar, *owl_menubar, *toolitem, *btn;
GtkUIManager* ui;
GtkActionGroup* act_grp;
GtkAction* act;
@@ -456,7 +476,6 @@
win->popup = gtk_ui_manager_get_widget(ui, "/popup");
gtk_menu_attach_to_widget(GTK_WIDGET(win->popup), win, NULL);
- gtk_box_pack_start( (GtkBox*)vbox, menubar, FALSE, TRUE, 0 );
gtk_box_pack_start( (GtkBox*)vbox, win->toolbar, FALSE, TRUE, 0 );
/* load bookmarks menu */
@@ -517,6 +536,10 @@
gtk_container_add( (GtkContainer*)win, vbox );
gtk_widget_show_all(vbox);
+
+ owl_menubar = ui_menubar_to_menu(menubar);
+ gtk_widget_show_all(owl_menubar);
+ owl_set_window_menu(GTK_WINDOW(win), GTK_MENU(owl_menubar));
}