summaryrefslogtreecommitdiff
path: root/meta/packages/pcmanfm/files
diff options
context:
space:
mode:
authorZhai Edwin <edwin.zhai@intel.com>2010-08-03 15:32:55 +0800
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-06 18:28:26 +0100
commit56bbb27bb06e0e4ad501259631acf9422db12482 (patch)
treed9844e56b27df2fe6ccc8698e4567736144ea944 /meta/packages/pcmanfm/files
parent2c2e5dc14677c0c10cf1eaedb7207be58a2ec4cb (diff)
downloadopenembedded-core-56bbb27bb06e0e4ad501259631acf9422db12482.tar.gz
openembedded-core-56bbb27bb06e0e4ad501259631acf9422db12482.tar.bz2
openembedded-core-56bbb27bb06e0e4ad501259631acf9422db12482.tar.xz
openembedded-core-56bbb27bb06e0e4ad501259631acf9422db12482.zip
pcmanfm: re-update it to 0.9.7
Previous update was reverted due to some reason. This commit re-introduce the update after following efforts: * rebase owl-window-menu.patch - Translate the menu of gtk_ui_manager to original gtk menu, to enable owl feature. * fix cross-compile issue - 0.9.7 use a temp binary, built from its own source code, to optimize the data file size. This binary for target can't run on build system. As this size optimization only gain 0.2K improvement for one data file(used for about dialog), disable it to work around this issue. No perf drop found after this fix. Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Diffstat (limited to 'meta/packages/pcmanfm/files')
-rw-r--r--meta/packages/pcmanfm/files/cross-compile-fix.patch16
-rw-r--r--meta/packages/pcmanfm/files/desktop.patch15
-rw-r--r--meta/packages/pcmanfm/files/no-fam.patch432
-rw-r--r--meta/packages/pcmanfm/files/no-warnings.patch60
-rw-r--r--meta/packages/pcmanfm/files/owl-window-menu.patch112
-rw-r--r--meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch13
6 files changed, 84 insertions, 564 deletions
diff --git a/meta/packages/pcmanfm/files/cross-compile-fix.patch b/meta/packages/pcmanfm/files/cross-compile-fix.patch
new file mode 100644
index 000000000..2f654a5fb
--- /dev/null
+++ b/meta/packages/pcmanfm/files/cross-compile-fix.patch
@@ -0,0 +1,16 @@
+pcmanfm need a binary xml-purge(from its own source code) to optimize size of
+data file, which cause build error on cross-compile environment. Simplely
+remove it to work aound this issue.
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+
+Index: pcmanfm-0.9.7/data/ui/Makefile.am
+===================================================================
+--- pcmanfm-0.9.7.orig/data/ui/Makefile.am 2010-07-29 15:10:18.000000000 +0800
++++ pcmanfm-0.9.7/data/ui/Makefile.am 2010-07-29 15:11:24.000000000 +0800
+@@ -21,4 +21,4 @@
+ # Purge GtkBuilder UI files
+ %.ui: %.glade
+ cp $< $@
+- $(top_builddir)/src/xml-purge $@
++# $(top_builddir)/src/xml-purge $@
diff --git a/meta/packages/pcmanfm/files/desktop.patch b/meta/packages/pcmanfm/files/desktop.patch
deleted file mode 100644
index 93cdd8703..000000000
--- a/meta/packages/pcmanfm/files/desktop.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: pcmanfm-0.5/pcmanfm.desktop.in
-===================================================================
---- pcmanfm-0.5.orig/pcmanfm.desktop.in
-+++ pcmanfm-0.5/pcmanfm.desktop.in
-@@ -1,8 +1,7 @@
- [Desktop Entry]
- Version=1.0
--Encoding=UTF-8
--Name=PCMan File Manager
--Categories=Application;System;Utility;Core;GTK;
-+Name=File Manager
-+Categories=System;Utility;Core;GTK;
- Name[zh_TW]=檔案總管
- Exec=pcmanfm %F
- Icon=pcmanfm
diff --git a/meta/packages/pcmanfm/files/no-fam.patch b/meta/packages/pcmanfm/files/no-fam.patch
deleted file mode 100644
index b87a02df0..000000000
--- a/meta/packages/pcmanfm/files/no-fam.patch
+++ /dev/null
@@ -1,432 +0,0 @@
-diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/configure.in pcmanfm-0.3.0.1/configure.in
---- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/configure.in 2006-08-20 15:45:28.000000000 +0100
-+++ pcmanfm-0.3.0.1/configure.in 2006-08-20 20:37:36.000000000 +0100
-@@ -63,8 +63,8 @@
- LIBS="$LIBS $FAM_LIBS"
- AC_CHECK_FUNCS([FAMNoExists])
- LIBS="$save_LIBS"
--else
-- AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
-+#else
-+# AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
- fi
-
- AC_SUBST([FAM_CFLAGS])
-diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c
---- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c 2006-07-16 20:00:46.000000000 +0100
-+++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c 2006-08-20 20:54:07.000000000 +0100
-@@ -31,7 +31,6 @@
- VFSFileMonitorCallbackEntry;
-
- static GHashTable* monitor_hash = NULL;
--static FAMConnection fam;
- static GIOChannel* fam_io_channel = NULL;
- static guint fam_io_watch = 0;
-
-@@ -40,6 +39,8 @@
- GIOCondition cond,
- gpointer user_data );
-
-+#ifdef HAVE_FAM_H
-+static FAMConnection fam;
-
- static gboolean connect_to_fam()
- {
-@@ -81,6 +82,16 @@
- FAMClose( &fam );
- }
- }
-+#else
-+static gboolean connect_to_fam ()
-+{
-+ return FALSE;
-+}
-+
-+static void disconnect_from_fam ()
-+{
-+}
-+#endif
-
- /* final cleanup */
- void vfs_file_monitor_clean()
-@@ -109,6 +120,7 @@
- VFSFileMonitorCallback cb,
- gpointer user_data )
- {
-+#ifdef HAVE_FAM_H
- VFSFileMonitor * monitor;
- VFSFileMonitorCallbackEntry cb_ent;
- gboolean add_new = FALSE;
-@@ -154,12 +166,16 @@
- }
- ++monitor->n_ref;
- return monitor;
-+#else
-+ return NULL;
-+#endif
- }
-
- void vfs_file_monitor_remove( VFSFileMonitor* fm,
- VFSFileMonitorCallback cb,
- gpointer user_data )
- {
-+#ifdef HAVE_FAM_H
- int i;
- VFSFileMonitorCallbackEntry* callbacks;
- if ( cb && fm->callbacks )
-@@ -183,12 +199,14 @@
- g_array_free( fm->callbacks, TRUE );
- g_slice_free( VFSFileMonitor, fm );
- }
-+#endif
- }
-
- static void reconnect_fam( gpointer key,
- gpointer value,
- gpointer user_data )
- {
-+#ifdef HAVE_FAM_H
- struct stat file_stat;
- VFSFileMonitor* monitor = ( VFSFileMonitor* ) value;
- const char* path = ( const char* ) key;
-@@ -209,6 +227,7 @@
- monitor );
- }
- }
-+#endif
- }
-
- /* event handler of all FAM events */
-@@ -216,6 +235,7 @@
- GIOCondition cond,
- gpointer user_data )
- {
-+#ifdef HAVE_FAM_H
- FAMEvent evt;
- VFSFileMonitor* monitor = NULL;
- VFSFileMonitorCallbackEntry* cb;
-@@ -266,5 +286,8 @@
- }
- }
- return TRUE;
-+#else
-+ return TRUE;
-+#endif
- }
-
-diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~
---- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~ 1970-01-01 01:00:00.000000000 +0100
-+++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~ 2006-08-20 20:50:49.000000000 +0100
-@@ -0,0 +1,292 @@
-+/*
-+* C Implementation: vfs-monitor
-+*
-+* Description:
-+*
-+*
-+* Author: Hong Jen Yee (PCMan) <pcman.tw (AT) gmail.com>, (C) 2006
-+*
-+* Copyright: See COPYING file that comes with this distribution
-+*
-+*/
-+
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include "vfs-file-monitor.h"
-+#include <sys/types.h> /* for stat */
-+#include <sys/stat.h>
-+
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#include "glib-mem.h"
-+
-+typedef struct
-+{
-+ VFSFileMonitorCallback callback;
-+ gpointer user_data;
-+}
-+VFSFileMonitorCallbackEntry;
-+
-+static GHashTable* monitor_hash = NULL;
-+static FAMConnection fam;
-+static GIOChannel* fam_io_channel = NULL;
-+static guint fam_io_watch = 0;
-+
-+/* event handler of all FAM events */
-+static gboolean on_fam_event( GIOChannel *channel,
-+ GIOCondition cond,
-+ gpointer user_data );
-+
-+#ifdef HAVE_FAM_H
-+static gboolean connect_to_fam()
-+{
-+ if ( FAMOpen( &fam ) )
-+ {
-+ fam_io_channel = NULL;
-+ fam.fd = -1;
-+ g_warning( "There is no FAM/gamin server\n" );
-+ return FALSE;
-+ }
-+#if HAVE_FAMNOEXISTS
-+ /*
-+ * Disable the initital directory content loading.
-+ * This can greatly speed up directory loading, but
-+ * unfortunately, it's not compatible with original FAM.
-+ */
-+ FAMNoExists( &fam ); /* This is an extension of gamin */
-+#endif
-+
-+ fam_io_channel = g_io_channel_unix_new( fam.fd );
-+ g_io_channel_set_encoding( fam_io_channel, NULL, NULL );
-+ g_io_channel_set_buffered( fam_io_channel, FALSE );
-+
-+ fam_io_watch = g_io_add_watch( fam_io_channel,
-+ G_IO_IN | G_IO_HUP,
-+ on_fam_event,
-+ NULL );
-+ return TRUE;
-+}
-+
-+static void disconnect_from_fam()
-+{
-+ if ( fam_io_channel )
-+ {
-+ g_io_channel_unref( fam_io_channel );
-+ fam_io_channel = NULL;
-+ g_source_remove( fam_io_watch );
-+
-+ FAMClose( &fam );
-+ }
-+}
-+#else
-+static gboolean connect_to_fam ()
-+{
-+ return FALSE;
-+}
-+
-+static void disconnect_from_fam ()
-+{
-+}
-+#endif
-+
-+/* final cleanup */
-+void vfs_file_monitor_clean()
-+{
-+ disconnect_from_fam();
-+ if ( monitor_hash )
-+ {
-+ g_hash_table_destroy( monitor_hash );
-+ monitor_hash = NULL;
-+ }
-+}
-+
-+/*
-+* Init monitor:
-+* Establish connection with gamin/fam.
-+*/
-+gboolean vfs_file_monitor_init()
-+{
-+ monitor_hash = g_hash_table_new( g_str_hash, g_str_equal );
-+ if ( ! connect_to_fam() )
-+ return FALSE;
-+ return TRUE;
-+}
-+
-+VFSFileMonitor* vfs_file_monitor_add( const char* path,
-+ VFSFileMonitorCallback cb,
-+ gpointer user_data )
-+{
-+#ifdef HAVE_FAM_H
-+ VFSFileMonitor * monitor;
-+ VFSFileMonitorCallbackEntry cb_ent;
-+ gboolean add_new = FALSE;
-+ struct stat file_stat;
-+
-+ if ( ! monitor_hash )
-+ {
-+ if ( !vfs_file_monitor_init() )
-+ return NULL;
-+ }
-+ monitor = ( VFSFileMonitor* ) g_hash_table_lookup ( monitor_hash, path );
-+ if ( ! monitor )
-+ {
-+ monitor = g_slice_new0( VFSFileMonitor );
-+ monitor->path = g_strdup( path );
-+ monitor->callbacks = g_array_new ( FALSE, FALSE, sizeof( VFSFileMonitorCallbackEntry ) );
-+ g_hash_table_insert ( monitor_hash,
-+ path,
-+ monitor );
-+ if ( lstat( path, &file_stat ) != -1 )
-+ {
-+ if ( S_ISDIR( file_stat.st_mode ) )
-+ {
-+ FAMMonitorDirectory( &fam,
-+ path,
-+ &monitor->request,
-+ monitor );
-+ }
-+ else
-+ {
-+ FAMMonitorFile( &fam,
-+ path,
-+ &monitor->request,
-+ monitor );
-+ }
-+ }
-+ }
-+ if ( cb )
-+ { /* Install a callback */
-+ cb_ent.callback = cb;
-+ cb_ent.user_data = user_data;
-+ monitor->callbacks = g_array_append_val( monitor->callbacks, cb_ent );
-+ }
-+ ++monitor->n_ref;
-+ return monitor;
-+#else
-+ return NULL;
-+#endif
-+}
-+
-+void vfs_file_monitor_remove( VFSFileMonitor* fm,
-+ VFSFileMonitorCallback cb,
-+ gpointer user_data )
-+{
-+#ifdef HAVE_FAM_H
-+ int i;
-+ VFSFileMonitorCallbackEntry* callbacks;
-+ if ( cb && fm->callbacks )
-+ {
-+ callbacks = ( VFSFileMonitorCallbackEntry* ) fm->callbacks->data;
-+ for ( i = 0; i < fm->callbacks->len; ++i )
-+ {
-+ if ( callbacks[ i ].callback == cb && callbacks[ i ].user_data == user_data )
-+ {
-+ fm->callbacks = g_array_remove_index_fast ( fm->callbacks, i );
-+ break;
-+ }
-+ }
-+ }
-+ --fm->n_ref;
-+ if ( 0 >= fm->n_ref )
-+ {
-+ FAMCancelMonitor( &fam, &fm->request );
-+ g_hash_table_remove( monitor_hash, fm->path );
-+ g_free( fm->path );
-+ g_array_free( fm->callbacks, TRUE );
-+ g_slice_free( VFSFileMonitor, fm );
-+ }
-+#endif
-+}
-+
-+static void reconnect_fam( gpointer key,
-+ gpointer value,
-+ gpointer user_data )
-+{
-+#ifdef HAVE_FAM_H
-+ struct stat file_stat;
-+ VFSFileMonitor* monitor = ( VFSFileMonitor* ) value;
-+ const char* path = ( const char* ) key;
-+ if ( lstat( path, &file_stat ) != -1 )
-+ {
-+ if ( S_ISDIR( file_stat.st_mode ) )
-+ {
-+ FAMMonitorDirectory( &fam,
-+ path,
-+ &monitor->request,
-+ monitor );
-+ }
-+ else
-+ {
-+ FAMMonitorFile( &fam,
-+ path,
-+ &monitor->request,
-+ monitor );
-+ }
-+ }
-+#endif
-+}
-+
-+/* event handler of all FAM events */
-+static gboolean on_fam_event( GIOChannel *channel,
-+ GIOCondition cond,
-+ gpointer user_data )
-+{
-+#ifdef HAVE_FAM_H
-+ FAMEvent evt;
-+ VFSFileMonitor* monitor = NULL;
-+ VFSFileMonitorCallbackEntry* cb;
-+ VFSFileMonitorCallback func;
-+ int i;
-+
-+ if ( cond & G_IO_HUP )
-+ {
-+ disconnect_from_fam();
-+ if ( g_hash_table_size ( monitor_hash ) > 0 )
-+ {
-+ /*
-+ Disconnected from FAM server, but there are still monitors.
-+ This may be caused by crash of FAM server.
-+ So we have to reconnect to FAM server.
-+ */
-+ connect_to_fam();
-+ g_hash_table_foreach( monitor_hash, ( GHFunc ) reconnect_fam, NULL );
-+ }
-+ return TRUE; /* don't need to remove the event source since
-+ it has been removed by disconnect_from_fam(). */
-+ }
-+
-+ while ( FAMPending( &fam ) )
-+ {
-+ if ( FAMNextEvent( &fam, &evt ) > 0 )
-+ {
-+ monitor = ( VFSFileMonitor* ) evt.userdata;
-+ switch ( evt.code )
-+ {
-+ case FAMCreated:
-+ case FAMDeleted:
-+ case FAMChanged:
-+ /* Call the callback functions */
-+ if ( monitor->callbacks && monitor->callbacks->len )
-+ {
-+ cb = ( VFSFileMonitorCallbackEntry* ) monitor->callbacks->data;
-+ for ( i = 0; i < monitor->callbacks->len; ++i )
-+ {
-+ func = cb[ i ].callback;
-+ func( monitor, evt.code, evt.filename, cb[ i ].user_data );
-+ }
-+ }
-+ break;
-+ default:
-+ return TRUE; /* Other events are not supported */
-+ }
-+ }
-+ }
-+ return TRUE;
-+#else
-+ return TRUE;
-+#endif
-+}
-+
-diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h
---- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h 2006-04-03 00:38:33.000000000 +0100
-+++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h 2006-08-20 20:47:00.000000000 +0100
-@@ -20,7 +20,16 @@
- #define _VFS_FILE_MONITOR_H_
-
- #include <glib.h>
-+#ifdef HAVE_FAM_H
- #include <fam.h>
-+#else
-+# define FAMCreated 0
-+# define FAMDeleted 1
-+# define FAMChanged 2
-+typedef struct {
-+ int reqnum;
-+} FAMRequest;
-+#endif
-
- G_BEGIN_DECLS
-
diff --git a/meta/packages/pcmanfm/files/no-warnings.patch b/meta/packages/pcmanfm/files/no-warnings.patch
deleted file mode 100644
index b1570a0d9..000000000
--- a/meta/packages/pcmanfm/files/no-warnings.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Index: pcmanfm-0.5/src/main.c
-===================================================================
---- pcmanfm-0.5.orig/src/main.c
-+++ pcmanfm-0.5/src/main.c
-@@ -118,7 +118,7 @@
-
- static void init_folder();
- static void init_daemon_or_desktop();
--static void check_icon_theme();
-+/*static void check_icon_theme();*/
-
- static gboolean handle_parsed_commandline_args();
-
-@@ -322,7 +322,7 @@
- gtk_widget_show ( GTK_WIDGET( main_window ) );
- return main_window;
- }
--
-+#if 0
- void check_icon_theme()
- {
- GtkSettings * settings;
-@@ -361,7 +361,7 @@
- }
- g_free( theme );
- }
--
-+#endif
- #ifdef _DEBUG_THREAD
-
- G_LOCK_DEFINE(gdk_lock);
-@@ -405,7 +405,7 @@
- vfs_file_info_set_thumbnail_size( app_settings.big_icon_size,
- app_settings.small_icon_size );
-
-- check_icon_theme();
-+/* check_icon_theme();*/
- folder_initialized = TRUE;
- }
-
-Index: pcmanfm-0.5/src/main-window.c
-===================================================================
---- pcmanfm-0.5.orig/src/main-window.c
-+++ pcmanfm-0.5/src/main-window.c
-@@ -633,6 +633,7 @@
- gtk_widget_grab_focus ( GTK_WIDGET( main_window->address_bar ) );
-
- #ifdef SUPER_USER_CHECKS
-+#if 0
- /* Create warning bar for super user */
- if ( geteuid() == 0 ) /* Run as super user! */
- {
-@@ -648,6 +649,7 @@
- main_window->status_bar, FALSE, FALSE, 2 );
- }
- #endif
-+#endif
-
- /* Create client area */
- main_window->notebook = gtk_notebook_new();
diff --git a/meta/packages/pcmanfm/files/owl-window-menu.patch b/meta/packages/pcmanfm/files/owl-window-menu.patch
index d11140cf4..f3d4e61a2 100644
--- a/meta/packages/pcmanfm/files/owl-window-menu.patch
+++ b/meta/packages/pcmanfm/files/owl-window-menu.patch
@@ -1,56 +1,80 @@
-Index: pcmanfm-0.5/configure.in
+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>
+
+Index: pcmanfm-0.9.7/configure.ac
===================================================================
---- pcmanfm-0.5.orig/configure.in
-+++ pcmanfm-0.5/configure.in
-@@ -25,6 +25,12 @@
- gtk_modules="gtk+-2.0 >= 2.6.0 \
- gthread-2.0"
+--- pcmanfm-0.9.7.orig/configure.ac 2010-07-27 10:28:12.000000000 +0800
++++ pcmanfm-0.9.7/configure.ac 2010-07-27 18:03:42.000000000 +0800
+@@ -70,6 +70,8 @@
+
+ gtk_modules="gtk+-2.0 >= 2.16.0"
PKG_CHECK_MODULES(GTK, [$gtk_modules])
-+
-+OWL_CFLAGS=""
+OWL_LIBS="-lowl"
-+GTK_CFLAGS="$GTK_CFLAGS $OWL_CFLAGS"
+GTK_LIBS="$GTK_LIBS $OWL_LIBS"
-+
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
-Index: pcmanfm-0.5/src/main-window.c
-===================================================================
---- pcmanfm-0.5.orig/src/main-window.c
-+++ pcmanfm-0.5/src/main-window.c
-@@ -534,9 +534,7 @@
- main_window->splitter_pos = app_settings.splitter_pos;
-
- /* Create menu bar */
-- main_window->menu_bar = gtk_menu_bar_new ();
-- gtk_box_pack_start ( GTK_BOX ( main_window->main_vbox ),
-- main_window->menu_bar, FALSE, FALSE, 0 );
-+ main_window->menu_bar = gtk_menu_new ();
-
- main_window->accel_group = gtk_accel_group_new ();
- fm_side_pane_menu[ 0 ].ret = ( GtkWidget** ) (GtkWidget*) & main_window->open_side_pane_menu;
-Index: pcmanfm-0.5/src/main.c
+Index: pcmanfm-0.9.7/src/main-win.c
===================================================================
---- pcmanfm-0.5.orig/src/main.c
-+++ pcmanfm-0.5/src/main.c
-@@ -48,6 +48,8 @@
-
- #include "desktop.h"
+--- pcmanfm-0.9.7.orig/src/main-win.c 2010-07-27 10:56:08.000000000 +0800
++++ pcmanfm-0.9.7/src/main-win.c 2010-07-27 17:28:59.000000000 +0800
+@@ -36,6 +36,8 @@
+ #include "main-win.h"
+ #include "pref.h"
+#include "libowl/owlwindowmenu.h"
+
- typedef enum{
- CMD_OPEN = 1,
- CMD_OPEN_TAB,
-@@ -320,6 +322,10 @@
- gtk_window_maximize( GTK_WINDOW( main_window ) );
- }
- gtk_widget_show ( GTK_WIDGET( main_window ) );
-+ gtk_widget_show_all (main_window->menu_bar);
-+ owl_set_window_menu (GTK_WINDOW(main_window),
-+ GTK_MENU(main_window->menu_bar));
-+
- return main_window;
+ static void fm_main_win_finalize (GObject *object);
+ G_DEFINE_TYPE(FmMainWin, fm_main_win, GTK_TYPE_WINDOW);
+
+@@ -466,9 +468,27 @@
+ fm_main_win_chdir(win, path);
}
- #if 0
+
++/* 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 *self)
+ {
+- GtkWidget *vbox, *menubar, *toolitem, *scroll;
++ GtkWidget *vbox, *menubar, *owl_menubar, *toolitem, *scroll;
+ GtkUIManager* ui;
+ GtkActionGroup* act_grp;
+ GtkAction* act;
+@@ -537,7 +557,6 @@
+
+ self->popup = gtk_ui_manager_get_widget(ui, "/popup");
+
+- gtk_box_pack_start( (GtkBox*)vbox, menubar, FALSE, TRUE, 0 );
+ gtk_box_pack_start( (GtkBox*)vbox, self->toolbar, FALSE, TRUE, 0 );
+
+ /* load bookmarks menu */
+@@ -586,6 +605,11 @@
+ gtk_container_add( (GtkContainer*)self, 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(self),
++ GTK_MENU(owl_menubar));
++
+ /* create new tab */
+ fm_main_win_add_tab(self, fm_path_get_home());
+ gtk_widget_grab_focus(self->folder_view);
diff --git a/meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch b/meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch
deleted file mode 100644
index ad5dc6772..000000000
--- a/meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- pcmanfm-0.3.2.2-org/src/inotify/inotify-syscalls.h 2010-01-07 14:53:56.938000062 +0800
-+++ pcmanfm-0.3.2.2/src/inotify/inotify-syscalls.h 2010-01-07 14:54:57.830000065 +0800
-@@ -39,6 +39,10 @@
- # define __NR_inotify_init 290
- # define __NR_inotify_add_watch 291
- # define __NR_inotify_rm_watch 292
-+#elif defined (__mips__)
-+# define __NR_inotify_init 284
-+# define __NR_inotify_add_watch 285
-+# define __NR_inotify_rm_watch 286
- #else
- # error "Unsupported architecture!"
- #endif