summaryrefslogtreecommitdiffstats
path: root/meta/packages/pcmanfm/files/no-fam-gtk2.6.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/pcmanfm/files/no-fam-gtk2.6.patch')
-rw-r--r--meta/packages/pcmanfm/files/no-fam-gtk2.6.patch374
1 files changed, 374 insertions, 0 deletions
diff --git a/meta/packages/pcmanfm/files/no-fam-gtk2.6.patch b/meta/packages/pcmanfm/files/no-fam-gtk2.6.patch
new file mode 100644
index 0000000000..40ced49d2c
--- /dev/null
+++ b/meta/packages/pcmanfm/files/no-fam-gtk2.6.patch
@@ -0,0 +1,374 @@
+diff -urNd pcmanfm-0.1.9.8.old/configure.in pcmanfm-0.1.9.8/configure.in
+--- pcmanfm-0.1.9.8.old/configure.in 2006-02-08 17:13:05.000000000 +0000
++++ pcmanfm-0.1.9.8/configure.in 2006-02-14 22:53:22.000000000 +0000
+@@ -10,8 +10,12 @@
+ AM_PROG_CC_STDC
+ AC_HEADER_STDC
+
+-pkg_modules="gtk+-2.0 >= 2.8.0 gthread-2.0"
+-PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
++PKG_CHECK_MODULES(PACKAGE, [glib-2.0 >= 2.8.0 gtk+-2.0 >= 2.6.0 gthread-2.0], [
++ PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.8.0], have_gtk28=yes, have_gtk28=no)
++])
++if test x"$have_gtk28" = x"yes"; then
++ AC_DEFINE([HAVE_GTK_2_8],,[Define if you have gtk+-2.0 >= 2.8.0])
++fi
+ AC_SUBST(PACKAGE_CFLAGS)
+ AC_SUBST(PACKAGE_LIBS)
+
+@@ -38,8 +42,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.1.9.8.old/src/foldercontent.c pcmanfm-0.1.9.8/src/foldercontent.c
+--- pcmanfm-0.1.9.8.old/src/foldercontent.c 2006-02-08 18:36:52.000000000 +0000
++++ pcmanfm-0.1.9.8/src/foldercontent.c 2006-02-15 02:51:03.000000000 +0000
+@@ -31,9 +31,11 @@
+ }FolderContentCallback;
+
+ static GHashTable* folder_hash = NULL;
++#ifdef HAVE_FAM_H
+ static FAMConnection fam;
+ static GIOChannel* fam_io_channel = NULL;
+ static guint fam_io_watch = 0;
++#endif
+
+ typedef enum{
+ FCM_FOLDER_VIEW = 1 << 0,
+@@ -58,6 +60,9 @@
+ static FolderContent* folder_content_get( const char* path,
+ FolderContentMode mode,
+ GtkTreeRowReference* tree_parent,
++#ifndef HAVE_GTK_2_8
++ GtkTreeModel* tree_model,
++#endif
+ FolderContentUpdateFunc cb,
+ gpointer user_data );
+
+@@ -72,6 +77,7 @@
+
+ static gboolean connect_to_fam()
+ {
++#ifdef HAVE_FAM_H
+ if( FAMOpen( &fam ) )
+ {
+ fam_io_channel = NULL;
+@@ -100,10 +106,14 @@
+ /*
+ g_print("Connected to FAM server\n");
+ */
++#else
++ return FALSE;
++#endif
+ }
+
+ static void disconnect_from_fam()
+ {
++#ifdef HAVE_FAM_H
+ if( fam_io_channel )
+ {
+ g_io_channel_unref(fam_io_channel);
+@@ -115,6 +125,7 @@
+ g_print("Disonnected from FAM server\n");
+ */
+ }
++#endif
+ }
+
+ /*
+@@ -336,7 +347,11 @@
+ if( ! tree_node )
+ return;
+
++#ifdef HAVE_GTK_2_8
+ tree = gtk_tree_row_reference_get_model (tree_node);
++#else
++ tree = folder_content->tree_model;
++#endif
+ tree_path = gtk_tree_row_reference_get_path (tree_node);
+ if( !tree || !tree_path ){
+ return;
+@@ -428,6 +443,9 @@
+ FolderContent* folder_content_get( const char* path,
+ FolderContentMode mode,
+ GtkTreeRowReference* tree_node,
++#ifndef HAVE_GTK_2_8
++ GtkTreeModel* tree_model,
++#endif
+ FolderContentUpdateFunc callback,
+ gpointer user_data )
+ {
+@@ -467,6 +485,9 @@
+ */
+ if( ! folder_content->tree_node )
+ {
++#ifndef HAVE_GTK_2_8
++ folder_content->tree_model = tree_model;
++#endif
+ folder_content->tree_node = tree_node;
+ dir_tree_sub_folders_new( folder_content );
+ }
+@@ -475,10 +496,12 @@
+
+ /* First new instance */
+ if( add_new ){
++#ifdef HAVE_FAM_H
+ FAMMonitorDirectory( &fam,
+ path,
+ &folder_content->request,
+ folder_content );
++#endif
+ }
+
+ if( callback ) /* Install a callback */
+@@ -548,7 +571,9 @@
+ && 0 >= folder_content->n_ref_tree )
+ {
+ /* g_print("cancel monitor!\n"); */
++#ifdef HAVE_FAM_H
+ FAMCancelMonitor( &fam, &folder_content->request );
++#endif
+ g_hash_table_remove( folder_hash, folder_content->path );
+ g_free( folder_content->path );
+ g_array_free( folder_content->callbacks, TRUE );
+@@ -561,6 +586,7 @@
+ GIOCondition cond,
+ gpointer user_data )
+ {
++#ifdef HAVE_FAM_H
+ FAMEvent evt;
+ FolderContent* content = NULL;
+ GdkPixbuf *folder_icon = get_folder_icon32();
+@@ -613,21 +639,36 @@
+ }
+ }
+ return TRUE;
++#else
++ return FALSE;
++#endif
+ }
+
+ FolderContent* folder_content_list_get( const char* path,
+ FolderContentUpdateFunc cb,
+ gpointer user_data )
+ {
++#ifdef HAVE_GTK_2_8
+ return folder_content_get( path, FCM_FOLDER_VIEW, NULL, cb, user_data );
++#else
++ return folder_content_get( path, FCM_FOLDER_VIEW, NULL, NULL, cb, user_data );
++#endif
+ }
+
+ FolderContent* folder_content_tree_get( const char* path,
+ GtkTreeRowReference* tree_parent,
++#ifndef HAVE_GTK_2_8
++ GtkTreeModel* tree_model,
++#endif
+ FolderContentUpdateFunc cb,
+ gpointer user_data )
+ {
++#ifdef HAVE_GTK_2_8
+ return folder_content_get( path, FCM_DIR_TREE, tree_parent, cb, user_data );
++#else
++ return folder_content_get( path, FCM_DIR_TREE, tree_parent, tree_model, cb,
++ user_data );
++#endif
+ }
+
+ void folder_content_list_unref( FolderContent* folder_content,
+@@ -688,7 +729,11 @@
+ }
+
+ if( content->tree_node ) {
++#ifdef HAVE_GTK_2_8
+ model = gtk_tree_row_reference_get_model( content->tree_node );
++#else
++ model = content->tree_model;
++#endif
+ tree_path = gtk_tree_row_reference_get_path(
+ content->tree_node );
+ gtk_tree_model_get_iter( model, &parent_it, tree_path );
+@@ -724,7 +769,11 @@
+ }
+
+ if( content->tree_node ) {
++#ifdef HAVE_GTK_2_8
+ model = gtk_tree_row_reference_get_model( content->tree_node );
++#else
++ model = content->tree_model;
++#endif
+ tree_path = gtk_tree_row_reference_get_path(
+ content->tree_node );
+ gtk_tree_model_get_iter( model, &parent_it, tree_path );
+@@ -776,7 +825,11 @@
+
+ /* There is no need to update the dir tree currently. */
+ if( content->tree_node ) {
++#ifdef HAVE_GTK_2_8
+ model = gtk_tree_row_reference_get_model( content->tree_node );
++#else
++ model = content->tree_model;
++#endif
+ tree_path = gtk_tree_row_reference_get_path(
+ content->tree_node );
+ gtk_tree_model_get_iter( model, &parent_it, tree_path );
+diff -urNd pcmanfm-0.1.9.8.old/src/foldercontent.h pcmanfm-0.1.9.8/src/foldercontent.h
+--- pcmanfm-0.1.9.8.old/src/foldercontent.h 2006-02-07 10:26:03.000000000 +0000
++++ pcmanfm-0.1.9.8/src/foldercontent.h 2006-02-15 02:13:40.000000000 +0000
+@@ -15,7 +15,12 @@
+
+ #include <gtk/gtk.h>
+ #include <glib.h>
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++#ifdef HAVE_FAM_H
+ #include <fam.h>
++#endif
+
+ /* Columns of folderView */
+ enum{
+@@ -42,10 +47,20 @@
+ typedef struct{
+ GtkListStore* list; /* for Folder View */
+ int n_ref_list; /* reference counting */
++#ifndef HAVE_GTK_2_8
++ GtkTreeModel* tree_model;
++#endif
+ GtkTreeRowReference* tree_node; /* for Dir Tree */
+ int n_ref_tree;
+
++#ifdef HAVE_FAM_H
+ FAMRequest request;
++#else
++ /* A structure the same size as FAMRequest */
++ struct unused {
++ int unused;
++ };
++#endif
+ gchar* path;
+ int n_files;
+
+@@ -82,6 +97,9 @@
+
+ FolderContent* folder_content_tree_get( const char* path,
+ GtkTreeRowReference* tree_node,
++#ifndef HAVE_GTK_2_8
++ GtkTreeModel* tree_model,
++#endif
+ FolderContentUpdateFunc callback,
+ gpointer user_data );
+
+diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c
+--- pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c 2006-02-09 04:29:32.000000000 +0000
++++ pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c 2006-02-15 02:07:16.000000000 +0000
+@@ -31,6 +31,9 @@
+ #include "ptkutils.h"
+
+ #include "settings.h"
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
+
+
+ /* If set to FALSE, all selection changes in folder_view are prevented. */
+@@ -1127,7 +1130,11 @@
+ }
+
+ row_ref = gtk_tree_row_reference_new( store, real_path );
++#ifdef HAVE_GTK_2_8
+ content = folder_content_tree_get( dir_path, row_ref, NULL, NULL );
++#else
++ content = folder_content_tree_get( dir_path, row_ref, model, NULL, NULL );
++#endif
+
+ gtk_tree_model_get_iter( model, &it, tree_path );
+ if( gtk_tree_model_iter_children( model, &child, &it ) ) {
+@@ -1231,12 +1238,15 @@
+ model = ptk_icon_view_get_model( PTK_ICON_VIEW(folder_view) );
+ }
+ else if( file_browser->view_mode == FBVM_LIST_VIEW ) {
++#ifdef HAVE_GTK_2_8
+ if( !gtk_tree_view_get_visible_range ( GTK_TREE_VIEW(folder_view),
+ &start_path, &end_path ) )
+ return;
++#endif
+ model = gtk_tree_view_get_model( GTK_TREE_VIEW(folder_view) );
+ }
+
++#ifdef HAVE_GTK_2_8
+ /*
+ NOTE:It seems that this is a bug of gtk+ 2.8.
+ gtk_tree_view_get_visible_range sometimes returns invalid paths.
+@@ -1252,6 +1262,7 @@
+ gtk_tree_path_free( end_path );
+ return;
+ }
++#endif
+
+ model_sorter = PTK_TREE_MODEL_SORT( gtk_tree_model_filter_get_model(
+ GTK_TREE_MODEL_FILTER(model) ) );
+diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c
+--- pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c 2006-02-03 04:24:09.000000000 +0000
++++ pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c 2006-02-15 02:09:00.000000000 +0000
+@@ -346,7 +346,9 @@
+ GdkPixbuf *colorized = NULL;
+ GdkRectangle pix_rect;
+ GdkRectangle draw_rect;
++#ifdef HAVE_GTK_2_8
+ cairo_t *cr;
++#endif
+
+ GtkCellRendererClass* parent_renderer_class;
+
+@@ -432,16 +434,23 @@
+ pixbuf = colorized;
+ }
+ }
++#ifdef HAVE_GTK_2_8
+ cr = gdk_cairo_create (window);
+
+ gdk_cairo_set_source_pixbuf (cr, pixbuf, pix_rect.x, pix_rect.y);
+ gdk_cairo_rectangle (cr, &draw_rect);
+ cairo_fill (cr);
++#else
++ gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, pixbuf, 0, 0,
++ pix_rect.x, pix_rect.y, pix_rect.width, pix_rect.height,
++ GDK_RGB_DITHER_NORMAL, 0, 0);
++#endif
+
+ if( PTK_FILE_ICON_RENDERER(cell)->file_stat )
+ {
+ if( S_ISLNK(PTK_FILE_ICON_RENDERER(cell)->file_stat->st_mode) )
+ {
++#ifdef HAVE_GTK_2_8
+ gdk_cairo_set_source_pixbuf (cr, link_icon_large,
+ pix_rect.x - 2,
+ pix_rect.y - 2 );
+@@ -449,10 +458,18 @@
+ draw_rect.y -= 2;
+ gdk_cairo_rectangle (cr, &draw_rect);
+ cairo_fill (cr);
++#else
++ gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, link_icon_large, 0, 0,
++ pix_rect.x - 2, pix_rect.y - 2,
++ -1, -1, GDK_RGB_DITHER_NORMAL,
++ 0, 0);
++#endif
+ }
+ }
+-
++
++#ifdef HAVE_GTK_2_8
+ cairo_destroy (cr);
++#endif
+
+ if (invisible)
+ g_object_unref (invisible);