[arch-commits] Commit in gtk3/trunk (3 files)

Evangelos Foutras foutrelis at archlinux.org
Tue Feb 16 09:19:11 UTC 2016


    Date: Tuesday, February 16, 2016 @ 10:19:10
  Author: foutrelis
Revision: 259562

upgpkg: gtk3 3.18.7-2

Fix two crashes in the file chooser dialog (FS#48158).

Added:
  gtk3/trunk/0001-file-chooser-Avoid-a-crash.patch
  gtk3/trunk/0001-file-chooser-Use-the-right-model-when-getting-the-se.patch
Modified:
  gtk3/trunk/PKGBUILD

-----------------------------------------------------------------+
 0001-file-chooser-Avoid-a-crash.patch                           |   46 ++++++++++
 0001-file-chooser-Use-the-right-model-when-getting-the-se.patch |   42 +++++++++
 PKGBUILD                                                        |   12 ++
 3 files changed, 99 insertions(+), 1 deletion(-)

Added: 0001-file-chooser-Avoid-a-crash.patch
===================================================================
--- 0001-file-chooser-Avoid-a-crash.patch	                        (rev 0)
+++ 0001-file-chooser-Avoid-a-crash.patch	2016-02-16 09:19:10 UTC (rev 259562)
@@ -0,0 +1,46 @@
+From f793da54a992d87da42c1f98e3cd5e9556c670ab Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Sat, 30 Jan 2016 23:07:56 -0500
+Subject: [PATCH] file chooser: Avoid a crash
+
+Since 39c2d12330b6d4405ca8a5599c12017c58626fcf,
+priv->operation_mode == OPERATION_MODE_BROWSE no longer
+guarantees that priv->browse_files_model is the current
+model of the list - we are only switching the models after
+loading the new directory. Avoid triggering the assertion
+in show_and_select_files by checking if we have right model
+before calling it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=761209
+---
+ gtk/gtkfilechooserwidget.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
+index 127e18b..d1a2ed8 100644
+--- a/gtk/gtkfilechooserwidget.c
++++ b/gtk/gtkfilechooserwidget.c
+@@ -5630,15 +5630,19 @@ gtk_file_chooser_widget_select_file (GtkFileChooser  *chooser,
+   GtkFileChooserWidgetPrivate *priv = impl->priv;
+   GFile *parent_file;
+   gboolean same_path;
++  GtkFileSystemModel *fsmodel;
+ 
+   parent_file = g_file_get_parent (file);
+ 
+   if (!parent_file)
+     return gtk_file_chooser_set_current_folder_file (chooser, file, error);
+ 
++  fsmodel = GTK_FILE_SYSTEM_MODEL (gtk_tree_view_get_model (GTK_TREE_VIEW (priv->browse_files_tree_view)));
++
+   if (priv->operation_mode == OPERATION_MODE_SEARCH ||
+       priv->operation_mode == OPERATION_MODE_RECENT ||
+-      priv->load_state == LOAD_EMPTY)
++      priv->load_state == LOAD_EMPTY ||
++      priv->browse_files_model != fsmodel)
+     {
+       same_path = FALSE;
+     }
+-- 
+2.7.1
+

Added: 0001-file-chooser-Use-the-right-model-when-getting-the-se.patch
===================================================================
--- 0001-file-chooser-Use-the-right-model-when-getting-the-se.patch	                        (rev 0)
+++ 0001-file-chooser-Use-the-right-model-when-getting-the-se.patch	2016-02-16 09:19:10 UTC (rev 259562)
@@ -0,0 +1,42 @@
+From 811a9b21c1bb226236d2a880f9cbbcbcf6028c2e Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Fri, 12 Feb 2016 20:35:26 -0500
+Subject: [PATCH] file chooser: Use the right model when getting the selection
+
+We don't need to make assumptions about which model is currently
+used since gtk_tree_selection_get_selection hands us the model.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=761757
+---
+ gtk/gtkfilechooserwidget.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
+index c77a8b7..6ef25b6 100644
+--- a/gtk/gtkfilechooserwidget.c
++++ b/gtk/gtkfilechooserwidget.c
+@@ -6266,10 +6266,11 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl,
+   GtkTreeSelection *selection;
+   GtkTreeIter iter;
+   GFileInfo *info;
++  GtkTreeModel *model;
+ 
+   g_assert (!priv->select_multiple);
+   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->browse_files_tree_view));
+-  if (!gtk_tree_selection_get_selected (selection, NULL, &iter))
++  if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+     {
+       *had_selection = FALSE;
+       return NULL;
+@@ -6277,7 +6278,7 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl,
+ 
+   *had_selection = TRUE;
+ 
+-  info = _gtk_file_system_model_get_info (priv->browse_files_model, &iter);
++  info = _gtk_file_system_model_get_info (GTK_FILE_SYSTEM_MODEL (model), &iter);
+   return info;
+ }
+ 
+-- 
+2.7.1
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-02-16 09:18:43 UTC (rev 259561)
+++ PKGBUILD	2016-02-16 09:19:10 UTC (rev 259562)
@@ -5,7 +5,7 @@
 pkgbase=gtk3
 pkgname=(gtk3 gtk-update-icon-cache)
 pkgver=3.18.7
-pkgrel=1
+pkgrel=2
 pkgdesc="GObject-based multi-platform GUI toolkit"
 arch=(i686 x86_64)
 url="http://www.gtk.org/"
@@ -15,13 +15,23 @@
 makedepends=(gobject-introspection libcanberra gtk-doc)
 license=(LGPL)
 source=(https://download.gnome.org/sources/gtk+/${pkgver:0:4}/gtk+-$pkgver.tar.xz
+        0001-file-chooser-Avoid-a-crash.patch
+        0001-file-chooser-Use-the-right-model-when-getting-the-se.patch
         settings.ini)
 sha256sums=('a76e1cb0ac45ce5c2734f6778f2731a5c6a23d1ff6bd4db357774f014ee68820'
+            '36058e522839bcae775cbafef8d4ad21cba98265b5cf9e90d5b46b874ddbf79f'
+            '22c0272fdbb048ec8fe62d71bcb1ab6765050de3eb04e833ba7303750782d0a7'
             '01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202')
 
 prepare() {
     cd gtk+-$pkgver
     NOCONFIGURE=1 ./autogen.sh
+
+    # https://bugzilla.gnome.org/show_bug.cgi?id=761209
+    patch -Np1 -i ../0001-file-chooser-Avoid-a-crash.patch
+
+    # https://bugzilla.gnome.org/show_bug.cgi?id=761757
+    patch -Np1 -i ../0001-file-chooser-Use-the-right-model-when-getting-the-se.patch
 }
 
 build() {



More information about the arch-commits mailing list