summaryrefslogtreecommitdiff
path: root/x11-toolkits/gtk30
diff options
context:
space:
mode:
authorAlexander Nedotsukov <bland@FreeBSD.org>2004-08-14 17:49:06 +0000
committerAlexander Nedotsukov <bland@FreeBSD.org>2004-08-14 17:49:06 +0000
commit7831e5b74da8634e68c4238280891d504a00e311 (patch)
tree3b8e7412b8a351cf25f760b667ab6fef9fd5a923 /x11-toolkits/gtk30
parentFix build with gcc-3.4 (diff)
Fix a bug in GtkFileChooser which prevent files to be opened.
Obtained from: GNOME Bugzilla (#150099)
Notes
Notes: svn path=/head/; revision=116209
Diffstat (limited to 'x11-toolkits/gtk30')
-rw-r--r--x11-toolkits/gtk30/Makefile1
-rw-r--r--x11-toolkits/gtk30/files/patch-al69
2 files changed, 70 insertions, 0 deletions
diff --git a/x11-toolkits/gtk30/Makefile b/x11-toolkits/gtk30/Makefile
index 1969ebbaf805..f36187a07060 100644
--- a/x11-toolkits/gtk30/Makefile
+++ b/x11-toolkits/gtk30/Makefile
@@ -7,6 +7,7 @@
PORTNAME= gtk
PORTVERSION= 2.4.6
+PORTREVISION= 1
CATEGORIES= x11-toolkits
MASTER_SITES= ${MASTER_SITE_GNOME:S,%SUBDIR%,sources/gtk+/2.4,} \
ftp://ftp.gtk.org/pub/gtk/v2.3/ \
diff --git a/x11-toolkits/gtk30/files/patch-al b/x11-toolkits/gtk30/files/patch-al
new file mode 100644
index 000000000000..65c0564fc6e4
--- /dev/null
+++ b/x11-toolkits/gtk30/files/patch-al
@@ -0,0 +1,69 @@
+--- gtk/gtkfilechooserdefault.c.orig 2004-08-13 21:01:49.000000000 +0300
++++ gtk/gtkfilechooserdefault.c 2004-08-14 20:11:58.000000000 +0300
+@@ -1832,7 +1832,6 @@
+
+ struct selection_check_closure {
+ GtkFileChooserDefault *impl;
+- gboolean empty;
+ gboolean all_files;
+ gboolean all_folders;
+ };
+@@ -1850,7 +1849,6 @@
+ gboolean is_folder;
+
+ closure = data;
+- closure->empty = FALSE;
+
+ gtk_tree_model_sort_convert_iter_to_child_iter (closure->impl->sort_model, &child_iter, iter);
+
+@@ -1864,23 +1862,23 @@
+ /* Checks whether the selected items in the file list are all files or all folders */
+ static void
+ selection_check (GtkFileChooserDefault *impl,
+- gboolean *empty,
++ int *num_selected,
+ gboolean *all_files,
+ gboolean *all_folders)
+ {
+ struct selection_check_closure closure;
+ GtkTreeSelection *selection;
++ int selected_rows;
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_files_tree_view));
+
++ selected_rows = gtk_tree_selection_count_selected_rows (selection);
++
+ if (impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
+ || impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
+ {
+- if (gtk_tree_selection_count_selected_rows (selection) == 0)
+- closure.empty = TRUE;
+- else
++ if (selected_rows > 0)
+ {
+- closure.empty = FALSE;
+ closure.all_files = FALSE;
+ closure.all_folders = TRUE;
+ }
+@@ -1891,7 +1889,6 @@
+ || impl->action == GTK_FILE_CHOOSER_ACTION_SAVE);
+
+ closure.impl = impl;
+- closure.empty = TRUE;
+ closure.all_files = TRUE;
+ closure.all_folders = TRUE;
+
+@@ -1900,10 +1897,10 @@
+ &closure);
+ }
+
+- g_assert (closure.empty || !(closure.all_files && closure.all_folders));
++ g_assert (selected_rows == 0 || !(closure.all_files && closure.all_folders));
+
+- if (empty)
+- *empty = closure.empty;
++ if (num_selected)
++ *num_selected = selected_rows;
+
+ if (all_files)
+ *all_files = closure.all_files;