summaryrefslogtreecommitdiffstats
path: root/meta/packages
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
parent2c2e5dc14677c0c10cf1eaedb7207be58a2ec4cb (diff)
downloadpoky-56bbb27bb06e0e4ad501259631acf9422db12482.tar.gz
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')
-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
-rw-r--r--meta/packages/pcmanfm/pcmanfm_0.9.7.bb (renamed from meta/packages/pcmanfm/pcmanfm_0.5.bb)14
7 files changed, 88 insertions, 574 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 0000000000..2f654a5fb6
--- /dev/null
+++ b/meta/packages/pcmanfm/files/cross-compile-fix.patch
@@ -0,0 +1,16 @@
1pcmanfm need a binary xml-purge(from its own source code) to optimize size of
2data file, which cause build error on cross-compile environment. Simplely
3remove it to work aound this issue.
4
5Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
6
7Index: pcmanfm-0.9.7/data/ui/Makefile.am
8===================================================================
9--- pcmanfm-0.9.7.orig/data/ui/Makefile.am 2010-07-29 15:10:18.000000000 +0800
10+++ pcmanfm-0.9.7/data/ui/Makefile.am 2010-07-29 15:11:24.000000000 +0800
11@@ -21,4 +21,4 @@
12 # Purge GtkBuilder UI files
13 %.ui: %.glade
14 cp $< $@
15- $(top_builddir)/src/xml-purge $@
16+# $(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 93cdd87035..0000000000
--- a/meta/packages/pcmanfm/files/desktop.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Index: pcmanfm-0.5/pcmanfm.desktop.in
2===================================================================
3--- pcmanfm-0.5.orig/pcmanfm.desktop.in
4+++ pcmanfm-0.5/pcmanfm.desktop.in
5@@ -1,8 +1,7 @@
6 [Desktop Entry]
7 Version=1.0
8-Encoding=UTF-8
9-Name=PCMan File Manager
10-Categories=Application;System;Utility;Core;GTK;
11+Name=File Manager
12+Categories=System;Utility;Core;GTK;
13 Name[zh_TW]=檔案總管
14 Exec=pcmanfm %F
15 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 b87a02df01..0000000000
--- a/meta/packages/pcmanfm/files/no-fam.patch
+++ /dev/null
@@ -1,432 +0,0 @@
1diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/configure.in pcmanfm-0.3.0.1/configure.in
2--- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/configure.in 2006-08-20 15:45:28.000000000 +0100
3+++ pcmanfm-0.3.0.1/configure.in 2006-08-20 20:37:36.000000000 +0100
4@@ -63,8 +63,8 @@
5 LIBS="$LIBS $FAM_LIBS"
6 AC_CHECK_FUNCS([FAMNoExists])
7 LIBS="$save_LIBS"
8-else
9- AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
10+#else
11+# AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
12 fi
13
14 AC_SUBST([FAM_CFLAGS])
15diff -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
16--- ../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
17+++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c 2006-08-20 20:54:07.000000000 +0100
18@@ -31,7 +31,6 @@
19 VFSFileMonitorCallbackEntry;
20
21 static GHashTable* monitor_hash = NULL;
22-static FAMConnection fam;
23 static GIOChannel* fam_io_channel = NULL;
24 static guint fam_io_watch = 0;
25
26@@ -40,6 +39,8 @@
27 GIOCondition cond,
28 gpointer user_data );
29
30+#ifdef HAVE_FAM_H
31+static FAMConnection fam;
32
33 static gboolean connect_to_fam()
34 {
35@@ -81,6 +82,16 @@
36 FAMClose( &fam );
37 }
38 }
39+#else
40+static gboolean connect_to_fam ()
41+{
42+ return FALSE;
43+}
44+
45+static void disconnect_from_fam ()
46+{
47+}
48+#endif
49
50 /* final cleanup */
51 void vfs_file_monitor_clean()
52@@ -109,6 +120,7 @@
53 VFSFileMonitorCallback cb,
54 gpointer user_data )
55 {
56+#ifdef HAVE_FAM_H
57 VFSFileMonitor * monitor;
58 VFSFileMonitorCallbackEntry cb_ent;
59 gboolean add_new = FALSE;
60@@ -154,12 +166,16 @@
61 }
62 ++monitor->n_ref;
63 return monitor;
64+#else
65+ return NULL;
66+#endif
67 }
68
69 void vfs_file_monitor_remove( VFSFileMonitor* fm,
70 VFSFileMonitorCallback cb,
71 gpointer user_data )
72 {
73+#ifdef HAVE_FAM_H
74 int i;
75 VFSFileMonitorCallbackEntry* callbacks;
76 if ( cb && fm->callbacks )
77@@ -183,12 +199,14 @@
78 g_array_free( fm->callbacks, TRUE );
79 g_slice_free( VFSFileMonitor, fm );
80 }
81+#endif
82 }
83
84 static void reconnect_fam( gpointer key,
85 gpointer value,
86 gpointer user_data )
87 {
88+#ifdef HAVE_FAM_H
89 struct stat file_stat;
90 VFSFileMonitor* monitor = ( VFSFileMonitor* ) value;
91 const char* path = ( const char* ) key;
92@@ -209,6 +227,7 @@
93 monitor );
94 }
95 }
96+#endif
97 }
98
99 /* event handler of all FAM events */
100@@ -216,6 +235,7 @@
101 GIOCondition cond,
102 gpointer user_data )
103 {
104+#ifdef HAVE_FAM_H
105 FAMEvent evt;
106 VFSFileMonitor* monitor = NULL;
107 VFSFileMonitorCallbackEntry* cb;
108@@ -266,5 +286,8 @@
109 }
110 }
111 return TRUE;
112+#else
113+ return TRUE;
114+#endif
115 }
116
117diff -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~
118--- ../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
119+++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~ 2006-08-20 20:50:49.000000000 +0100
120@@ -0,0 +1,292 @@
121+/*
122+* C Implementation: vfs-monitor
123+*
124+* Description:
125+*
126+*
127+* Author: Hong Jen Yee (PCMan) <pcman.tw (AT) gmail.com>, (C) 2006
128+*
129+* Copyright: See COPYING file that comes with this distribution
130+*
131+*/
132+
133+#ifdef HAVE_CONFIG_H
134+#include "config.h"
135+#endif
136+
137+#include "vfs-file-monitor.h"
138+#include <sys/types.h> /* for stat */
139+#include <sys/stat.h>
140+
141+#include <stdlib.h>
142+#include <string.h>
143+
144+#include "glib-mem.h"
145+
146+typedef struct
147+{
148+ VFSFileMonitorCallback callback;
149+ gpointer user_data;
150+}
151+VFSFileMonitorCallbackEntry;
152+
153+static GHashTable* monitor_hash = NULL;
154+static FAMConnection fam;
155+static GIOChannel* fam_io_channel = NULL;
156+static guint fam_io_watch = 0;
157+
158+/* event handler of all FAM events */
159+static gboolean on_fam_event( GIOChannel *channel,
160+ GIOCondition cond,
161+ gpointer user_data );
162+
163+#ifdef HAVE_FAM_H
164+static gboolean connect_to_fam()
165+{
166+ if ( FAMOpen( &fam ) )
167+ {
168+ fam_io_channel = NULL;
169+ fam.fd = -1;
170+ g_warning( "There is no FAM/gamin server\n" );
171+ return FALSE;
172+ }
173+#if HAVE_FAMNOEXISTS
174+ /*
175+ * Disable the initital directory content loading.
176+ * This can greatly speed up directory loading, but
177+ * unfortunately, it's not compatible with original FAM.
178+ */
179+ FAMNoExists( &fam ); /* This is an extension of gamin */
180+#endif
181+
182+ fam_io_channel = g_io_channel_unix_new( fam.fd );
183+ g_io_channel_set_encoding( fam_io_channel, NULL, NULL );
184+ g_io_channel_set_buffered( fam_io_channel, FALSE );
185+
186+ fam_io_watch = g_io_add_watch( fam_io_channel,
187+ G_IO_IN | G_IO_HUP,
188+ on_fam_event,
189+ NULL );
190+ return TRUE;
191+}
192+
193+static void disconnect_from_fam()
194+{
195+ if ( fam_io_channel )
196+ {
197+ g_io_channel_unref( fam_io_channel );
198+ fam_io_channel = NULL;
199+ g_source_remove( fam_io_watch );
200+
201+ FAMClose( &fam );
202+ }
203+}
204+#else
205+static gboolean connect_to_fam ()
206+{
207+ return FALSE;
208+}
209+
210+static void disconnect_from_fam ()
211+{
212+}
213+#endif
214+
215+/* final cleanup */
216+void vfs_file_monitor_clean()
217+{
218+ disconnect_from_fam();
219+ if ( monitor_hash )
220+ {
221+ g_hash_table_destroy( monitor_hash );
222+ monitor_hash = NULL;
223+ }
224+}
225+
226+/*
227+* Init monitor:
228+* Establish connection with gamin/fam.
229+*/
230+gboolean vfs_file_monitor_init()
231+{
232+ monitor_hash = g_hash_table_new( g_str_hash, g_str_equal );
233+ if ( ! connect_to_fam() )
234+ return FALSE;
235+ return TRUE;
236+}
237+
238+VFSFileMonitor* vfs_file_monitor_add( const char* path,
239+ VFSFileMonitorCallback cb,
240+ gpointer user_data )
241+{
242+#ifdef HAVE_FAM_H
243+ VFSFileMonitor * monitor;
244+ VFSFileMonitorCallbackEntry cb_ent;
245+ gboolean add_new = FALSE;
246+ struct stat file_stat;
247+
248+ if ( ! monitor_hash )
249+ {
250+ if ( !vfs_file_monitor_init() )
251+ return NULL;
252+ }
253+ monitor = ( VFSFileMonitor* ) g_hash_table_lookup ( monitor_hash, path );
254+ if ( ! monitor )
255+ {
256+ monitor = g_slice_new0( VFSFileMonitor );
257+ monitor->path = g_strdup( path );
258+ monitor->callbacks = g_array_new ( FALSE, FALSE, sizeof( VFSFileMonitorCallbackEntry ) );
259+ g_hash_table_insert ( monitor_hash,
260+ path,
261+ monitor );
262+ if ( lstat( path, &file_stat ) != -1 )
263+ {
264+ if ( S_ISDIR( file_stat.st_mode ) )
265+ {
266+ FAMMonitorDirectory( &fam,
267+ path,
268+ &monitor->request,
269+ monitor );
270+ }
271+ else
272+ {
273+ FAMMonitorFile( &fam,
274+ path,
275+ &monitor->request,
276+ monitor );
277+ }
278+ }
279+ }
280+ if ( cb )
281+ { /* Install a callback */
282+ cb_ent.callback = cb;
283+ cb_ent.user_data = user_data;
284+ monitor->callbacks = g_array_append_val( monitor->callbacks, cb_ent );
285+ }
286+ ++monitor->n_ref;
287+ return monitor;
288+#else
289+ return NULL;
290+#endif
291+}
292+
293+void vfs_file_monitor_remove( VFSFileMonitor* fm,
294+ VFSFileMonitorCallback cb,
295+ gpointer user_data )
296+{
297+#ifdef HAVE_FAM_H
298+ int i;
299+ VFSFileMonitorCallbackEntry* callbacks;
300+ if ( cb && fm->callbacks )
301+ {
302+ callbacks = ( VFSFileMonitorCallbackEntry* ) fm->callbacks->data;
303+ for ( i = 0; i < fm->callbacks->len; ++i )
304+ {
305+ if ( callbacks[ i ].callback == cb && callbacks[ i ].user_data == user_data )
306+ {
307+ fm->callbacks = g_array_remove_index_fast ( fm->callbacks, i );
308+ break;
309+ }
310+ }
311+ }
312+ --fm->n_ref;
313+ if ( 0 >= fm->n_ref )
314+ {
315+ FAMCancelMonitor( &fam, &fm->request );
316+ g_hash_table_remove( monitor_hash, fm->path );
317+ g_free( fm->path );
318+ g_array_free( fm->callbacks, TRUE );
319+ g_slice_free( VFSFileMonitor, fm );
320+ }
321+#endif
322+}
323+
324+static void reconnect_fam( gpointer key,
325+ gpointer value,
326+ gpointer user_data )
327+{
328+#ifdef HAVE_FAM_H
329+ struct stat file_stat;
330+ VFSFileMonitor* monitor = ( VFSFileMonitor* ) value;
331+ const char* path = ( const char* ) key;
332+ if ( lstat( path, &file_stat ) != -1 )
333+ {
334+ if ( S_ISDIR( file_stat.st_mode ) )
335+ {
336+ FAMMonitorDirectory( &fam,
337+ path,
338+ &monitor->request,
339+ monitor );
340+ }
341+ else
342+ {
343+ FAMMonitorFile( &fam,
344+ path,
345+ &monitor->request,
346+ monitor );
347+ }
348+ }
349+#endif
350+}
351+
352+/* event handler of all FAM events */
353+static gboolean on_fam_event( GIOChannel *channel,
354+ GIOCondition cond,
355+ gpointer user_data )
356+{
357+#ifdef HAVE_FAM_H
358+ FAMEvent evt;
359+ VFSFileMonitor* monitor = NULL;
360+ VFSFileMonitorCallbackEntry* cb;
361+ VFSFileMonitorCallback func;
362+ int i;
363+
364+ if ( cond & G_IO_HUP )
365+ {
366+ disconnect_from_fam();
367+ if ( g_hash_table_size ( monitor_hash ) > 0 )
368+ {
369+ /*
370+ Disconnected from FAM server, but there are still monitors.
371+ This may be caused by crash of FAM server.
372+ So we have to reconnect to FAM server.
373+ */
374+ connect_to_fam();
375+ g_hash_table_foreach( monitor_hash, ( GHFunc ) reconnect_fam, NULL );
376+ }
377+ return TRUE; /* don't need to remove the event source since
378+ it has been removed by disconnect_from_fam(). */
379+ }
380+
381+ while ( FAMPending( &fam ) )
382+ {
383+ if ( FAMNextEvent( &fam, &evt ) > 0 )
384+ {
385+ monitor = ( VFSFileMonitor* ) evt.userdata;
386+ switch ( evt.code )
387+ {
388+ case FAMCreated:
389+ case FAMDeleted:
390+ case FAMChanged:
391+ /* Call the callback functions */
392+ if ( monitor->callbacks && monitor->callbacks->len )
393+ {
394+ cb = ( VFSFileMonitorCallbackEntry* ) monitor->callbacks->data;
395+ for ( i = 0; i < monitor->callbacks->len; ++i )
396+ {
397+ func = cb[ i ].callback;
398+ func( monitor, evt.code, evt.filename, cb[ i ].user_data );
399+ }
400+ }
401+ break;
402+ default:
403+ return TRUE; /* Other events are not supported */
404+ }
405+ }
406+ }
407+ return TRUE;
408+#else
409+ return TRUE;
410+#endif
411+}
412+
413diff -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
414--- ../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
415+++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h 2006-08-20 20:47:00.000000000 +0100
416@@ -20,7 +20,16 @@
417 #define _VFS_FILE_MONITOR_H_
418
419 #include <glib.h>
420+#ifdef HAVE_FAM_H
421 #include <fam.h>
422+#else
423+# define FAMCreated 0
424+# define FAMDeleted 1
425+# define FAMChanged 2
426+typedef struct {
427+ int reqnum;
428+} FAMRequest;
429+#endif
430
431 G_BEGIN_DECLS
432
diff --git a/meta/packages/pcmanfm/files/no-warnings.patch b/meta/packages/pcmanfm/files/no-warnings.patch
deleted file mode 100644
index b1570a0d98..0000000000
--- a/meta/packages/pcmanfm/files/no-warnings.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1Index: pcmanfm-0.5/src/main.c
2===================================================================
3--- pcmanfm-0.5.orig/src/main.c
4+++ pcmanfm-0.5/src/main.c
5@@ -118,7 +118,7 @@
6
7 static void init_folder();
8 static void init_daemon_or_desktop();
9-static void check_icon_theme();
10+/*static void check_icon_theme();*/
11
12 static gboolean handle_parsed_commandline_args();
13
14@@ -322,7 +322,7 @@
15 gtk_widget_show ( GTK_WIDGET( main_window ) );
16 return main_window;
17 }
18-
19+#if 0
20 void check_icon_theme()
21 {
22 GtkSettings * settings;
23@@ -361,7 +361,7 @@
24 }
25 g_free( theme );
26 }
27-
28+#endif
29 #ifdef _DEBUG_THREAD
30
31 G_LOCK_DEFINE(gdk_lock);
32@@ -405,7 +405,7 @@
33 vfs_file_info_set_thumbnail_size( app_settings.big_icon_size,
34 app_settings.small_icon_size );
35
36- check_icon_theme();
37+/* check_icon_theme();*/
38 folder_initialized = TRUE;
39 }
40
41Index: pcmanfm-0.5/src/main-window.c
42===================================================================
43--- pcmanfm-0.5.orig/src/main-window.c
44+++ pcmanfm-0.5/src/main-window.c
45@@ -633,6 +633,7 @@
46 gtk_widget_grab_focus ( GTK_WIDGET( main_window->address_bar ) );
47
48 #ifdef SUPER_USER_CHECKS
49+#if 0
50 /* Create warning bar for super user */
51 if ( geteuid() == 0 ) /* Run as super user! */
52 {
53@@ -648,6 +649,7 @@
54 main_window->status_bar, FALSE, FALSE, 2 );
55 }
56 #endif
57+#endif
58
59 /* Create client area */
60 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 d11140cf42..f3d4e61a22 100644
--- a/meta/packages/pcmanfm/files/owl-window-menu.patch
+++ b/meta/packages/pcmanfm/files/owl-window-menu.patch
@@ -1,56 +1,80 @@
1Index: pcmanfm-0.5/configure.in 10.9.7 use a new menu bar from gtk_ui_manager, so need a translation here to
2enable owl menu
3
4Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
5
6Index: pcmanfm-0.9.7/configure.ac
2=================================================================== 7===================================================================
3--- pcmanfm-0.5.orig/configure.in 8--- pcmanfm-0.9.7.orig/configure.ac 2010-07-27 10:28:12.000000000 +0800
4+++ pcmanfm-0.5/configure.in 9+++ pcmanfm-0.9.7/configure.ac 2010-07-27 18:03:42.000000000 +0800
5@@ -25,6 +25,12 @@ 10@@ -70,6 +70,8 @@
6 gtk_modules="gtk+-2.0 >= 2.6.0 \ 11
7 gthread-2.0" 12 gtk_modules="gtk+-2.0 >= 2.16.0"
8 PKG_CHECK_MODULES(GTK, [$gtk_modules]) 13 PKG_CHECK_MODULES(GTK, [$gtk_modules])
9+
10+OWL_CFLAGS=""
11+OWL_LIBS="-lowl" 14+OWL_LIBS="-lowl"
12+GTK_CFLAGS="$GTK_CFLAGS $OWL_CFLAGS"
13+GTK_LIBS="$GTK_LIBS $OWL_LIBS" 15+GTK_LIBS="$GTK_LIBS $OWL_LIBS"
14+
15 AC_SUBST(GTK_CFLAGS) 16 AC_SUBST(GTK_CFLAGS)
16 AC_SUBST(GTK_LIBS) 17 AC_SUBST(GTK_LIBS)
17 18
18Index: pcmanfm-0.5/src/main-window.c 19Index: pcmanfm-0.9.7/src/main-win.c
19===================================================================
20--- pcmanfm-0.5.orig/src/main-window.c
21+++ pcmanfm-0.5/src/main-window.c
22@@ -534,9 +534,7 @@
23 main_window->splitter_pos = app_settings.splitter_pos;
24
25 /* Create menu bar */
26- main_window->menu_bar = gtk_menu_bar_new ();
27- gtk_box_pack_start ( GTK_BOX ( main_window->main_vbox ),
28- main_window->menu_bar, FALSE, FALSE, 0 );
29+ main_window->menu_bar = gtk_menu_new ();
30
31 main_window->accel_group = gtk_accel_group_new ();
32 fm_side_pane_menu[ 0 ].ret = ( GtkWidget** ) (GtkWidget*) & main_window->open_side_pane_menu;
33Index: pcmanfm-0.5/src/main.c
34=================================================================== 20===================================================================
35--- pcmanfm-0.5.orig/src/main.c 21--- pcmanfm-0.9.7.orig/src/main-win.c 2010-07-27 10:56:08.000000000 +0800
36+++ pcmanfm-0.5/src/main.c 22+++ pcmanfm-0.9.7/src/main-win.c 2010-07-27 17:28:59.000000000 +0800
37@@ -48,6 +48,8 @@ 23@@ -36,6 +36,8 @@
38 24 #include "main-win.h"
39 #include "desktop.h" 25 #include "pref.h"
40 26
41+#include "libowl/owlwindowmenu.h" 27+#include "libowl/owlwindowmenu.h"
42+ 28+
43 typedef enum{ 29 static void fm_main_win_finalize (GObject *object);
44 CMD_OPEN = 1, 30 G_DEFINE_TYPE(FmMainWin, fm_main_win, GTK_TYPE_WINDOW);
45 CMD_OPEN_TAB, 31
46@@ -320,6 +322,10 @@ 32@@ -466,9 +468,27 @@
47 gtk_window_maximize( GTK_WINDOW( main_window ) ); 33 fm_main_win_chdir(win, path);
48 }
49 gtk_widget_show ( GTK_WIDGET( main_window ) );
50+ gtk_widget_show_all (main_window->menu_bar);
51+ owl_set_window_menu (GTK_WINDOW(main_window),
52+ GTK_MENU(main_window->menu_bar));
53+
54 return main_window;
55 } 34 }
56 #if 0 35
36+/* Transfer gtk_ui_manager menubar to gtk menubar */
37+static GtkWidget * ui_menubar_to_menu(GtkWidget *menubar)
38+{
39+ GtkWidget *main_menu;
40+ GList *iter;
41+
42+ main_menu = gtk_menu_new();
43+
44+ for ( iter = gtk_container_get_children(GTK_CONTAINER(menubar));
45+ iter;
46+ iter = g_list_next(iter) )
47+ {
48+ GtkWidget *menu = GTK_WIDGET(iter->data);
49+ gtk_widget_reparent(menu, main_menu);
50+ }
51+ return main_menu;
52+}
53+
54 static void fm_main_win_init(FmMainWin *self)
55 {
56- GtkWidget *vbox, *menubar, *toolitem, *scroll;
57+ GtkWidget *vbox, *menubar, *owl_menubar, *toolitem, *scroll;
58 GtkUIManager* ui;
59 GtkActionGroup* act_grp;
60 GtkAction* act;
61@@ -537,7 +557,6 @@
62
63 self->popup = gtk_ui_manager_get_widget(ui, "/popup");
64
65- gtk_box_pack_start( (GtkBox*)vbox, menubar, FALSE, TRUE, 0 );
66 gtk_box_pack_start( (GtkBox*)vbox, self->toolbar, FALSE, TRUE, 0 );
67
68 /* load bookmarks menu */
69@@ -586,6 +605,11 @@
70 gtk_container_add( (GtkContainer*)self, vbox );
71 gtk_widget_show_all(vbox);
72
73+ owl_menubar = ui_menubar_to_menu(menubar);
74+ gtk_widget_show_all (owl_menubar);
75+ owl_set_window_menu (GTK_WINDOW(self),
76+ GTK_MENU(owl_menubar));
77+
78 /* create new tab */
79 fm_main_win_add_tab(self, fm_path_get_home());
80 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 ad5dc67727..0000000000
--- a/meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1--- pcmanfm-0.3.2.2-org/src/inotify/inotify-syscalls.h 2010-01-07 14:53:56.938000062 +0800
2+++ pcmanfm-0.3.2.2/src/inotify/inotify-syscalls.h 2010-01-07 14:54:57.830000065 +0800
3@@ -39,6 +39,10 @@
4 # define __NR_inotify_init 290
5 # define __NR_inotify_add_watch 291
6 # define __NR_inotify_rm_watch 292
7+#elif defined (__mips__)
8+# define __NR_inotify_init 284
9+# define __NR_inotify_add_watch 285
10+# define __NR_inotify_rm_watch 286
11 #else
12 # error "Unsupported architecture!"
13 #endif
diff --git a/meta/packages/pcmanfm/pcmanfm_0.5.bb b/meta/packages/pcmanfm/pcmanfm_0.9.7.bb
index db9f4513e2..46e46da685 100644
--- a/meta/packages/pcmanfm/pcmanfm_0.5.bb
+++ b/meta/packages/pcmanfm/pcmanfm_0.9.7.bb
@@ -4,12 +4,12 @@ BUGTRACKER = ""
4 4
5LICENSE = "GPLv2 & GPLv2+ & LGPLv2.1+" 5LICENSE = "GPLv2 & GPLv2+ & LGPLv2.1+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ 6LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
7 file://src/pcmanfm.h;endline=22;md5=0fa9129ee918f493e573154f6ec43fb7 \ 7 file://src/pcmanfm.h;endline=22;md5=417b3855771a3a87f8ad753d994491f0 \
8 file://src/find-files.c;endline=26;md5=9a92e8f329c97de94e90976a37dde5a5" 8 file://src/gseal-gtk-compat.h;endline=21;md5=46922c8691f58d124f9420fe16149ce2"
9 9
10SECTION = "x11" 10SECTION = "x11"
11PRIORITY = "optional" 11PRIORITY = "optional"
12DEPENDS = "gtk+ startup-notification" 12DEPENDS = "gtk+ startup-notification libfm"
13DEPENDS_append_poky = " libowl" 13DEPENDS_append_poky = " libowl"
14 14
15PR = "r0" 15PR = "r0"
@@ -21,14 +21,10 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/pcmanfm-${PV}.tar.gz \
21 file://gnome-fs-regular.png \ 21 file://gnome-fs-regular.png \
22 file://gnome-mime-text-plain.png \ 22 file://gnome-mime-text-plain.png \
23 file://emblem-symbolic-link.png \ 23 file://emblem-symbolic-link.png \
24 file://desktop.patch;patch=1 \ 24 file://cross-compile-fix.patch"
25 file://no-warnings.patch;patch=1 \
26 file://pcmanfm-mips-fix.patch;patch=1"
27 25
28SRC_URI_append_poky = " file://owl-window-menu.patch;patch=1" 26SRC_URI_append_poky = " file://owl-window-menu.patch;patch=1"
29 27
30EXTRA_OECONF = "--enable-inotify --disable-hal"
31
32inherit autotools pkgconfig 28inherit autotools pkgconfig
33 29
34do_install_append () { 30do_install_append () {
@@ -37,5 +33,3 @@ do_install_append () {
37 33
38 install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps 34 install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps
39} 35}
40
41FILES_${PN} += "${datadir}/pixmaps/*.png"