diff options
Diffstat (limited to 'packages/pcmanfm/files/no-fam-gtk2.6.patch')
-rw-r--r-- | packages/pcmanfm/files/no-fam-gtk2.6.patch | 374 |
1 files changed, 374 insertions, 0 deletions
diff --git a/packages/pcmanfm/files/no-fam-gtk2.6.patch b/packages/pcmanfm/files/no-fam-gtk2.6.patch new file mode 100644 index 0000000000..40ced49d2c --- /dev/null +++ b/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); |