]> code.ossystems Code Review - openembedded-core.git/commitdiff
pcmanfm: re-update it to 0.9.7
authorZhai Edwin <edwin.zhai@intel.com>
Tue, 3 Aug 2010 07:32:55 +0000 (15:32 +0800)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 6 Aug 2010 17:28:26 +0000 (18:28 +0100)
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>
meta/packages/pcmanfm/files/cross-compile-fix.patch [new file with mode: 0644]
meta/packages/pcmanfm/files/desktop.patch [deleted file]
meta/packages/pcmanfm/files/no-fam.patch [deleted file]
meta/packages/pcmanfm/files/no-warnings.patch [deleted file]
meta/packages/pcmanfm/files/owl-window-menu.patch
meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch [deleted file]
meta/packages/pcmanfm/pcmanfm_0.9.7.bb [moved from meta/packages/pcmanfm/pcmanfm_0.5.bb with 66% similarity]

diff --git a/meta/packages/pcmanfm/files/cross-compile-fix.patch b/meta/packages/pcmanfm/files/cross-compile-fix.patch
new file mode 100644 (file)
index 0000000..2f654a5
--- /dev/null
@@ -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 (file)
index 93cdd87..0000000
+++ /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 (file)
index b87a02d..0000000
+++ /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 (file)
index b1570a0..0000000
+++ /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();
index d11140cf42613e72c8696769f95de6cb64fb88e8..f3d4e61a2228d9d957ccce1cc61c42fb701e11dc 100644 (file)
@@ -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 (file)
index ad5dc67..0000000
+++ /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
similarity index 66%
rename from meta/packages/pcmanfm/pcmanfm_0.5.bb
rename to meta/packages/pcmanfm/pcmanfm_0.9.7.bb
index db9f4513e241739282738eab49299c06937604d8..46e46da68541b87bf570c6e578d25f75359100b7 100644 (file)
@@ -4,12 +4,12 @@ BUGTRACKER = ""
 
 LICENSE = "GPLv2 & GPLv2+ & LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-                    file://src/pcmanfm.h;endline=22;md5=0fa9129ee918f493e573154f6ec43fb7 \
-                    file://src/find-files.c;endline=26;md5=9a92e8f329c97de94e90976a37dde5a5"
+                    file://src/pcmanfm.h;endline=22;md5=417b3855771a3a87f8ad753d994491f0 \
+                    file://src/gseal-gtk-compat.h;endline=21;md5=46922c8691f58d124f9420fe16149ce2"
 
 SECTION = "x11"
 PRIORITY = "optional"
-DEPENDS = "gtk+ startup-notification"
+DEPENDS = "gtk+ startup-notification libfm"
 DEPENDS_append_poky = " libowl"
 
 PR = "r0"
@@ -21,14 +21,10 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/pcmanfm-${PV}.tar.gz \
           file://gnome-fs-regular.png \
           file://gnome-mime-text-plain.png \
           file://emblem-symbolic-link.png \
-          file://desktop.patch;patch=1 \
-          file://no-warnings.patch;patch=1 \
-          file://pcmanfm-mips-fix.patch;patch=1"
+          file://cross-compile-fix.patch" 
 
 SRC_URI_append_poky = " file://owl-window-menu.patch;patch=1"
 
-EXTRA_OECONF = "--enable-inotify --disable-hal"
-
 inherit autotools pkgconfig
 
 do_install_append () {
@@ -37,5 +33,3 @@ do_install_append () {
 
        install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps
 }
-
-FILES_${PN} += "${datadir}/pixmaps/*.png"