summaryrefslogtreecommitdiffstats
path: root/meta/recipes-sato/pcmanfm/files/owl-window-menu.patch
blob: 88b154e5cb9eab5c19f1f4d2c26a8bde89ef72c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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));
 }