From b7d1bcbf8334751dc2c1f5c0918ef4f2fcda30ce Mon Sep 17 00:00:00 2001 From: bland Date: Sat, 14 Aug 2004 17:49:06 +0000 Subject: Fix a bug in GtkFileChooser which prevent files to be opened. Obtained from: GNOME Bugzilla (#150099) --- x11-toolkits/gtk20/Makefile | 1 + x11-toolkits/gtk20/files/patch-al | 69 +++++++++++++++++++++++++++++++++++++++ x11-toolkits/gtk30/Makefile | 1 + x11-toolkits/gtk30/files/patch-al | 69 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100644 x11-toolkits/gtk20/files/patch-al create mode 100644 x11-toolkits/gtk30/files/patch-al (limited to 'x11-toolkits') diff --git a/x11-toolkits/gtk20/Makefile b/x11-toolkits/gtk20/Makefile index 1969ebbaf805..f36187a07060 100644 --- a/x11-toolkits/gtk20/Makefile +++ b/x11-toolkits/gtk20/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/gtk20/files/patch-al b/x11-toolkits/gtk20/files/patch-al new file mode 100644 index 000000000000..65c0564fc6e4 --- /dev/null +++ b/x11-toolkits/gtk20/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; 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; -- cgit