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 @@
1diff -urNd pcmanfm-0.1.9.8.old/configure.in pcmanfm-0.1.9.8/configure.in
2--- pcmanfm-0.1.9.8.old/configure.in 2006-02-08 17:13:05.000000000 +0000
3+++ pcmanfm-0.1.9.8/configure.in 2006-02-14 22:53:22.000000000 +0000
4@@ -10,8 +10,12 @@
5 AM_PROG_CC_STDC
6 AC_HEADER_STDC
7
8-pkg_modules="gtk+-2.0 >= 2.8.0 gthread-2.0"
9-PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
10+PKG_CHECK_MODULES(PACKAGE, [glib-2.0 >= 2.8.0 gtk+-2.0 >= 2.6.0 gthread-2.0], [
11+ PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.8.0], have_gtk28=yes, have_gtk28=no)
12+])
13+if test x"$have_gtk28" = x"yes"; then
14+ AC_DEFINE([HAVE_GTK_2_8],,[Define if you have gtk+-2.0 >= 2.8.0])
15+fi
16 AC_SUBST(PACKAGE_CFLAGS)
17 AC_SUBST(PACKAGE_LIBS)
18
19@@ -38,8 +42,8 @@
20 LIBS="$LIBS $FAM_LIBS"
21 AC_CHECK_FUNCS([FAMNoExists])
22 LIBS="$save_LIBS"
23-else
24- AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
25+#else
26+# AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
27 fi
28
29 AC_SUBST([FAM_CFLAGS])
30diff -urNd pcmanfm-0.1.9.8.old/src/foldercontent.c pcmanfm-0.1.9.8/src/foldercontent.c
31--- pcmanfm-0.1.9.8.old/src/foldercontent.c 2006-02-08 18:36:52.000000000 +0000
32+++ pcmanfm-0.1.9.8/src/foldercontent.c 2006-02-15 02:51:03.000000000 +0000
33@@ -31,9 +31,11 @@
34 }FolderContentCallback;
35
36 static GHashTable* folder_hash = NULL;
37+#ifdef HAVE_FAM_H
38 static FAMConnection fam;
39 static GIOChannel* fam_io_channel = NULL;
40 static guint fam_io_watch = 0;
41+#endif
42
43 typedef enum{
44 FCM_FOLDER_VIEW = 1 << 0,
45@@ -58,6 +60,9 @@
46 static FolderContent* folder_content_get( const char* path,
47 FolderContentMode mode,
48 GtkTreeRowReference* tree_parent,
49+#ifndef HAVE_GTK_2_8
50+ GtkTreeModel* tree_model,
51+#endif
52 FolderContentUpdateFunc cb,
53 gpointer user_data );
54
55@@ -72,6 +77,7 @@
56
57 static gboolean connect_to_fam()
58 {
59+#ifdef HAVE_FAM_H
60 if( FAMOpen( &fam ) )
61 {
62 fam_io_channel = NULL;
63@@ -100,10 +106,14 @@
64 /*
65 g_print("Connected to FAM server\n");
66 */
67+#else
68+ return FALSE;
69+#endif
70 }
71
72 static void disconnect_from_fam()
73 {
74+#ifdef HAVE_FAM_H
75 if( fam_io_channel )
76 {
77 g_io_channel_unref(fam_io_channel);
78@@ -115,6 +125,7 @@
79 g_print("Disonnected from FAM server\n");
80 */
81 }
82+#endif
83 }
84
85 /*
86@@ -336,7 +347,11 @@
87 if( ! tree_node )
88 return;
89
90+#ifdef HAVE_GTK_2_8
91 tree = gtk_tree_row_reference_get_model (tree_node);
92+#else
93+ tree = folder_content->tree_model;
94+#endif
95 tree_path = gtk_tree_row_reference_get_path (tree_node);
96 if( !tree || !tree_path ){
97 return;
98@@ -428,6 +443,9 @@
99 FolderContent* folder_content_get( const char* path,
100 FolderContentMode mode,
101 GtkTreeRowReference* tree_node,
102+#ifndef HAVE_GTK_2_8
103+ GtkTreeModel* tree_model,
104+#endif
105 FolderContentUpdateFunc callback,
106 gpointer user_data )
107 {
108@@ -467,6 +485,9 @@
109 */
110 if( ! folder_content->tree_node )
111 {
112+#ifndef HAVE_GTK_2_8
113+ folder_content->tree_model = tree_model;
114+#endif
115 folder_content->tree_node = tree_node;
116 dir_tree_sub_folders_new( folder_content );
117 }
118@@ -475,10 +496,12 @@
119
120 /* First new instance */
121 if( add_new ){
122+#ifdef HAVE_FAM_H
123 FAMMonitorDirectory( &fam,
124 path,
125 &folder_content->request,
126 folder_content );
127+#endif
128 }
129
130 if( callback ) /* Install a callback */
131@@ -548,7 +571,9 @@
132 && 0 >= folder_content->n_ref_tree )
133 {
134 /* g_print("cancel monitor!\n"); */
135+#ifdef HAVE_FAM_H
136 FAMCancelMonitor( &fam, &folder_content->request );
137+#endif
138 g_hash_table_remove( folder_hash, folder_content->path );
139 g_free( folder_content->path );
140 g_array_free( folder_content->callbacks, TRUE );
141@@ -561,6 +586,7 @@
142 GIOCondition cond,
143 gpointer user_data )
144 {
145+#ifdef HAVE_FAM_H
146 FAMEvent evt;
147 FolderContent* content = NULL;
148 GdkPixbuf *folder_icon = get_folder_icon32();
149@@ -613,21 +639,36 @@
150 }
151 }
152 return TRUE;
153+#else
154+ return FALSE;
155+#endif
156 }
157
158 FolderContent* folder_content_list_get( const char* path,
159 FolderContentUpdateFunc cb,
160 gpointer user_data )
161 {
162+#ifdef HAVE_GTK_2_8
163 return folder_content_get( path, FCM_FOLDER_VIEW, NULL, cb, user_data );
164+#else
165+ return folder_content_get( path, FCM_FOLDER_VIEW, NULL, NULL, cb, user_data );
166+#endif
167 }
168
169 FolderContent* folder_content_tree_get( const char* path,
170 GtkTreeRowReference* tree_parent,
171+#ifndef HAVE_GTK_2_8
172+ GtkTreeModel* tree_model,
173+#endif
174 FolderContentUpdateFunc cb,
175 gpointer user_data )
176 {
177+#ifdef HAVE_GTK_2_8
178 return folder_content_get( path, FCM_DIR_TREE, tree_parent, cb, user_data );
179+#else
180+ return folder_content_get( path, FCM_DIR_TREE, tree_parent, tree_model, cb,
181+ user_data );
182+#endif
183 }
184
185 void folder_content_list_unref( FolderContent* folder_content,
186@@ -688,7 +729,11 @@
187 }
188
189 if( content->tree_node ) {
190+#ifdef HAVE_GTK_2_8
191 model = gtk_tree_row_reference_get_model( content->tree_node );
192+#else
193+ model = content->tree_model;
194+#endif
195 tree_path = gtk_tree_row_reference_get_path(
196 content->tree_node );
197 gtk_tree_model_get_iter( model, &parent_it, tree_path );
198@@ -724,7 +769,11 @@
199 }
200
201 if( content->tree_node ) {
202+#ifdef HAVE_GTK_2_8
203 model = gtk_tree_row_reference_get_model( content->tree_node );
204+#else
205+ model = content->tree_model;
206+#endif
207 tree_path = gtk_tree_row_reference_get_path(
208 content->tree_node );
209 gtk_tree_model_get_iter( model, &parent_it, tree_path );
210@@ -776,7 +825,11 @@
211
212 /* There is no need to update the dir tree currently. */
213 if( content->tree_node ) {
214+#ifdef HAVE_GTK_2_8
215 model = gtk_tree_row_reference_get_model( content->tree_node );
216+#else
217+ model = content->tree_model;
218+#endif
219 tree_path = gtk_tree_row_reference_get_path(
220 content->tree_node );
221 gtk_tree_model_get_iter( model, &parent_it, tree_path );
222diff -urNd pcmanfm-0.1.9.8.old/src/foldercontent.h pcmanfm-0.1.9.8/src/foldercontent.h
223--- pcmanfm-0.1.9.8.old/src/foldercontent.h 2006-02-07 10:26:03.000000000 +0000
224+++ pcmanfm-0.1.9.8/src/foldercontent.h 2006-02-15 02:13:40.000000000 +0000
225@@ -15,7 +15,12 @@
226
227 #include <gtk/gtk.h>
228 #include <glib.h>
229+#ifdef HAVE_CONFIG_H
230+#include "config.h"
231+#endif
232+#ifdef HAVE_FAM_H
233 #include <fam.h>
234+#endif
235
236 /* Columns of folderView */
237 enum{
238@@ -42,10 +47,20 @@
239 typedef struct{
240 GtkListStore* list; /* for Folder View */
241 int n_ref_list; /* reference counting */
242+#ifndef HAVE_GTK_2_8
243+ GtkTreeModel* tree_model;
244+#endif
245 GtkTreeRowReference* tree_node; /* for Dir Tree */
246 int n_ref_tree;
247
248+#ifdef HAVE_FAM_H
249 FAMRequest request;
250+#else
251+ /* A structure the same size as FAMRequest */
252+ struct unused {
253+ int unused;
254+ };
255+#endif
256 gchar* path;
257 int n_files;
258
259@@ -82,6 +97,9 @@
260
261 FolderContent* folder_content_tree_get( const char* path,
262 GtkTreeRowReference* tree_node,
263+#ifndef HAVE_GTK_2_8
264+ GtkTreeModel* tree_model,
265+#endif
266 FolderContentUpdateFunc callback,
267 gpointer user_data );
268
269diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c
270--- pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c 2006-02-09 04:29:32.000000000 +0000
271+++ pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c 2006-02-15 02:07:16.000000000 +0000
272@@ -31,6 +31,9 @@
273 #include "ptkutils.h"
274
275 #include "settings.h"
276+#ifdef HAVE_CONFIG_H
277+#include "config.h"
278+#endif
279
280
281 /* If set to FALSE, all selection changes in folder_view are prevented. */
282@@ -1127,7 +1130,11 @@
283 }
284
285 row_ref = gtk_tree_row_reference_new( store, real_path );
286+#ifdef HAVE_GTK_2_8
287 content = folder_content_tree_get( dir_path, row_ref, NULL, NULL );
288+#else
289+ content = folder_content_tree_get( dir_path, row_ref, model, NULL, NULL );
290+#endif
291
292 gtk_tree_model_get_iter( model, &it, tree_path );
293 if( gtk_tree_model_iter_children( model, &child, &it ) ) {
294@@ -1231,12 +1238,15 @@
295 model = ptk_icon_view_get_model( PTK_ICON_VIEW(folder_view) );
296 }
297 else if( file_browser->view_mode == FBVM_LIST_VIEW ) {
298+#ifdef HAVE_GTK_2_8
299 if( !gtk_tree_view_get_visible_range ( GTK_TREE_VIEW(folder_view),
300 &start_path, &end_path ) )
301 return;
302+#endif
303 model = gtk_tree_view_get_model( GTK_TREE_VIEW(folder_view) );
304 }
305
306+#ifdef HAVE_GTK_2_8
307 /*
308 NOTE:It seems that this is a bug of gtk+ 2.8.
309 gtk_tree_view_get_visible_range sometimes returns invalid paths.
310@@ -1252,6 +1262,7 @@
311 gtk_tree_path_free( end_path );
312 return;
313 }
314+#endif
315
316 model_sorter = PTK_TREE_MODEL_SORT( gtk_tree_model_filter_get_model(
317 GTK_TREE_MODEL_FILTER(model) ) );
318diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c
319--- pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c 2006-02-03 04:24:09.000000000 +0000
320+++ pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c 2006-02-15 02:09:00.000000000 +0000
321@@ -346,7 +346,9 @@
322 GdkPixbuf *colorized = NULL;
323 GdkRectangle pix_rect;
324 GdkRectangle draw_rect;
325+#ifdef HAVE_GTK_2_8
326 cairo_t *cr;
327+#endif
328
329 GtkCellRendererClass* parent_renderer_class;
330
331@@ -432,16 +434,23 @@
332 pixbuf = colorized;
333 }
334 }
335+#ifdef HAVE_GTK_2_8
336 cr = gdk_cairo_create (window);
337
338 gdk_cairo_set_source_pixbuf (cr, pixbuf, pix_rect.x, pix_rect.y);
339 gdk_cairo_rectangle (cr, &draw_rect);
340 cairo_fill (cr);
341+#else
342+ gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, pixbuf, 0, 0,
343+ pix_rect.x, pix_rect.y, pix_rect.width, pix_rect.height,
344+ GDK_RGB_DITHER_NORMAL, 0, 0);
345+#endif
346
347 if( PTK_FILE_ICON_RENDERER(cell)->file_stat )
348 {
349 if( S_ISLNK(PTK_FILE_ICON_RENDERER(cell)->file_stat->st_mode) )
350 {
351+#ifdef HAVE_GTK_2_8
352 gdk_cairo_set_source_pixbuf (cr, link_icon_large,
353 pix_rect.x - 2,
354 pix_rect.y - 2 );
355@@ -449,10 +458,18 @@
356 draw_rect.y -= 2;
357 gdk_cairo_rectangle (cr, &draw_rect);
358 cairo_fill (cr);
359+#else
360+ gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, link_icon_large, 0, 0,
361+ pix_rect.x - 2, pix_rect.y - 2,
362+ -1, -1, GDK_RGB_DITHER_NORMAL,
363+ 0, 0);
364+#endif
365 }
366 }
367-
368+
369+#ifdef HAVE_GTK_2_8
370 cairo_destroy (cr);
371+#endif
372
373 if (invisible)
374 g_object_unref (invisible);