summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authordudemanguy2020-04-06 17:32:46 -0500
committerdudemanguy2020-04-06 17:32:46 -0500
commit63699c8f5d450912007d6023a4a4c2c67935ab98 (patch)
tree8e143e668ef5ca141d01586f5eac362aac23c69b
parente607083dd5649c796ea3743bea8f72ac12c7cc32 (diff)
downloadaur-63699c8f5d450912007d6023a4a4c2c67935ab98.tar.gz
3.24.17+15+gdc79e07228-1
-rw-r--r--.SRCINFO16
-rw-r--r--1633.patch57
-rw-r--r--1634.patch43
-rw-r--r--1638.patch39
-rw-r--r--PKGBUILD27
-rw-r--r--gtk3-filechooser-icon-view.patch135
6 files changed, 117 insertions, 200 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b49fb9df63b9..26a1556f1610 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = gtk3-patched-filechooser-icon-view
pkgdesc = GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch.
- pkgver = 3.24.17+4+g8c97702a07
- pkgrel = 2
+ pkgver = 3.24.17+15+gdc79e07228
+ pkgrel = 1
epoch = 1
url = https://github.com/Dudemanguy911/gtk
install = gtk3.install
@@ -44,7 +44,7 @@ pkgbase = gtk3-patched-filechooser-icon-view
depends = iso-codes
depends = gtk-update-icon-cache
optdepends = glib2-patched-thumbnailer: Thumbnail generation in upload dialog
- provides = gtk3=3.24.17+4+g8c97702a07
+ provides = gtk3=3.24.17+15+gdc79e07228
provides = gtk3-print-backends
provides = libgtk-3.so
provides = libgdk-3.so
@@ -52,18 +52,16 @@ pkgbase = gtk3-patched-filechooser-icon-view
conflicts = gtk3
conflicts = gtk3-print-backends
replaces = gtk3-print-backends<=3.22.26-1
- source = git+https://gitlab.gnome.org/GNOME/gtk.git#commit=8c97702a0771ccb186088ea04478dfc8c6616fe4
- source = 1633.patch
- source = 1634.patch
+ source = git+https://gitlab.gnome.org/GNOME/gtk.git#commit=dc79e07228800dafa1062c959c68afcc7b4a1bef
+ source = 1638.patch
source = settings.ini
source = gtk-query-immodules-3.0.hook
source = gtk3-filechooser-icon-view.patch
sha256sums = SKIP
- sha256sums = 7b7141c53de03d0bd6c73287b27c75e39a8eede1853037f52183c4648805255d
- sha256sums = 59f5304bdbeff82fd08e43d1c19afc4c5b65703c36a243909b92681ae1519020
+ sha256sums = 45be674b2596b16d5778a85a51a31b59b3e3a198daaea34eec4400e4cdb9bd4e
sha256sums = 01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202
sha256sums = a0319b6795410f06d38de1e8695a9bf9636ff2169f40701671580e60a108e229
- sha256sums = 1e7758171795a524fac8e7220762c28a3aa146a15b7b9c9f953891bbbcdb9ae8
+ sha256sums = 4323c38740e2ed8f97d53538f2ba2b0ea96afae95109a69e8f165ab4d3258909
pkgname = gtk3-patched-filechooser-icon-view
diff --git a/1633.patch b/1633.patch
deleted file mode 100644
index dc2848e45a55..000000000000
--- a/1633.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 12fc9a45efcbb546eb7de13c5c4d3183f2f5a3b8 Mon Sep 17 00:00:00 2001
-From: William Wold <wm@wmww.sh>
-Date: Sun, 5 Apr 2020 05:26:24 -0400
-Subject: [PATCH 1/2] Do not require an initial configure for custom Wayland
- surfaces
-
-There is no way for custom Wayland surfaces to get configure events, so an
-initial configure event should not be required to resize a custom surface.
-
-Fixes #2578.
----
- gdk/wayland/gdkwindow-wayland.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
-index eba8361b21..5f39c5771c 100644
---- a/gdk/wayland/gdkwindow-wayland.c
-+++ b/gdk/wayland/gdkwindow-wayland.c
-@@ -1087,6 +1087,8 @@ needs_initial_configure (GdkWindow *window)
-
- if (impl->display_server.wl_subsurface)
- return FALSE;
-+ else if (impl->use_custom_surface)
-+ return FALSE;
- else if (is_realized_toplevel (window))
- return TRUE;
- else if (is_realized_popup (window))
---
-2.24.1
-
-
-From 5a52af20cba76474e631b2a7548963bcad22d66d Mon Sep 17 00:00:00 2001
-From: William Wold <wm@wmww.sh>
-Date: Sun, 5 Apr 2020 07:11:45 -0400
-Subject: [PATCH 2/2] Do not require an initial configure for DnD windows
-
-Fixes #2075
----
- gdk/wayland/gdkwindow-wayland.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
-index 5f39c5771c..04506508f3 100644
---- a/gdk/wayland/gdkwindow-wayland.c
-+++ b/gdk/wayland/gdkwindow-wayland.c
-@@ -1089,6 +1089,8 @@ needs_initial_configure (GdkWindow *window)
- return FALSE;
- else if (impl->use_custom_surface)
- return FALSE;
-+ else if (impl->hint == GDK_WINDOW_TYPE_HINT_DND)
-+ return FALSE;
- else if (is_realized_toplevel (window))
- return TRUE;
- else if (is_realized_popup (window))
---
-2.24.1
-
diff --git a/1634.patch b/1634.patch
deleted file mode 100644
index 946ec7df839d..000000000000
--- a/1634.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 79732da1ed8cb167440fb047c72cfc0d888a187b Mon Sep 17 00:00:00 2001
-From: Jonas Witschel <diabonas@archlinux.org>
-Date: Sun, 5 Apr 2020 20:16:52 +0200
-Subject: [PATCH] wayland: don't call gdk_wayland_window_configure without
- valid size
-
-Commit 7f12dc2b66bba15b2e1c0ca077fa4ae58962ec0f ("wayland: Postpone
-window resize requests until configured") runs
-gdk_wayland_window_configure unconditionally even if no valid size is
-set. This breaks GtkDialogs, which are not shown any more, and results
-in warnings like
-
-gtk_widget_size_allocate(): attempt to allocate widget with width -3 and
-height -3
-
-Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2574
----
- gdk/wayland/gdkwindow-wayland.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
-index eba8361b21..2d3e31906e 100644
---- a/gdk/wayland/gdkwindow-wayland.c
-+++ b/gdk/wayland/gdkwindow-wayland.c
-@@ -1635,10 +1635,11 @@ gdk_wayland_window_handle_configure (GdkWindow *window,
- }
- else
- {
-- gdk_wayland_window_configure (window,
-- impl->unconfigured_width,
-- impl->unconfigured_height,
-- impl->scale);
-+ if (impl->unconfigured_width > 0 && impl->unconfigured_height > 0)
-+ gdk_wayland_window_configure (window,
-+ impl->unconfigured_width,
-+ impl->unconfigured_height,
-+ impl->scale);
- }
-
- if (fixed_size)
---
-2.24.1
-
diff --git a/1638.patch b/1638.patch
new file mode 100644
index 000000000000..82c2506e2e3b
--- /dev/null
+++ b/1638.patch
@@ -0,0 +1,39 @@
+From f7811616819040acc66dddd1762101d8ad87a2fa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
+Date: Mon, 6 Apr 2020 14:20:43 +0200
+Subject: [PATCH] wayland: Always store unconfigured size
+
+This means it'll always be as up to date GdkWindow::width/height. We
+still skip the resize for non-configured windows though, to avoid
+mapping with the wrong size.
+---
+ gdk/wayland/gdkwindow-wayland.c | 10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
+index 6c555443bd..05a673eb61 100644
+--- a/gdk/wayland/gdkwindow-wayland.c
++++ b/gdk/wayland/gdkwindow-wayland.c
+@@ -1145,16 +1145,12 @@ gdk_wayland_window_maybe_configure (GdkWindow *window,
+ gboolean is_xdg_popup;
+ gboolean is_visible;
+
++ impl->unconfigured_width = calculate_width_without_margin (window, width);
++ impl->unconfigured_height = calculate_height_without_margin (window, height);
+
+ if (needs_initial_configure (window) &&
+ !impl->initial_configure_received)
+- {
+- impl->unconfigured_width = calculate_width_without_margin (window,
+- width);
+- impl->unconfigured_height = calculate_height_without_margin (window,
+- height);
+- return;
+- }
++ return;
+
+ if (window->width == width &&
+ window->height == height &&
+--
+2.24.1
+
diff --git a/PKGBUILD b/PKGBUILD
index 2535321d79fb..299480429ea2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,8 +4,8 @@
# Contributor: Ionut Biru <ibiru@archlinux.org>
pkgname=gtk3-patched-filechooser-icon-view
-pkgver=3.24.17+4+g8c97702a07
-pkgrel=2
+pkgver=3.24.17+15+gdc79e07228
+pkgrel=1
epoch=1
pkgdesc="GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch."
arch=(x86_64)
@@ -22,19 +22,18 @@ makedepends=(gobject-introspection gtk-doc git glib2-docs sassc meson)
license=(LGPL)
install=gtk3.install
-_commit=8c97702a0771ccb186088ea04478dfc8c6616fe4 # gtk-3-24
+_commit=dc79e07228800dafa1062c959c68afcc7b4a1bef # gtk-3-24
source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit"
- 1633.patch 1634.patch
+ 1638.patch
settings.ini
gtk-query-immodules-3.0.hook
gtk3-filechooser-icon-view.patch)
sha256sums=('SKIP'
- '7b7141c53de03d0bd6c73287b27c75e39a8eede1853037f52183c4648805255d'
- '59f5304bdbeff82fd08e43d1c19afc4c5b65703c36a243909b92681ae1519020'
+ '45be674b2596b16d5778a85a51a31b59b3e3a198daaea34eec4400e4cdb9bd4e'
'01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202'
'a0319b6795410f06d38de1e8695a9bf9636ff2169f40701671580e60a108e229'
- '1e7758171795a524fac8e7220762c28a3aa146a15b7b9c9f953891bbbcdb9ae8')
+ '4323c38740e2ed8f97d53538f2ba2b0ea96afae95109a69e8f165ab4d3258909')
pkgver() {
cd gtk
git describe --tags | sed 's/-/+/g'
@@ -44,19 +43,11 @@ prepare() {
cd gtk
# apply icon-view patch
- patch -Np1 -i ../gtk3-filechooser-icon-view.patch
+ git apply -3 ../gtk3-filechooser-icon-view.patch
# https://bugs.archlinux.org/task/66106
- # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1633
- git apply -3 ../1633.patch
-
- # https://bugs.archlinux.org/task/66106
- # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1634
- git apply -3 ../1634.patch
-
- # https://bugs.archlinux.org/task/66119
- # https://gitlab.gnome.org/GNOME/gtk/-/issues/2576
- # no patch yet
+ # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1638
+ git apply -3 ../1638.patch
}
build() {
diff --git a/gtk3-filechooser-icon-view.patch b/gtk3-filechooser-icon-view.patch
index 7344b9618ad5..24b9f81ac234 100644
--- a/gtk3-filechooser-icon-view.patch
+++ b/gtk3-filechooser-icon-view.patch
@@ -18,7 +18,7 @@ index a0a622c111..1fc93e44a4 100644
#define SETTINGS_KEY_SHOW_SIZE_COLUMN "show-size-column"
#define SETTINGS_KEY_SHOW_TYPE_COLUMN "show-type-column"
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
-index 9c7aadb8fd..f84f65e80c 100644
+index 562b2f7f5a..786b0afc41 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -1,4 +1,4 @@
@@ -701,7 +701,7 @@ index 9c7aadb8fd..f84f65e80c 100644
+ priv->browse_files_current_view = priv->browse_files_icon_view;
+ old_view = priv->browse_files_tree_view;
+ gtk_widget_show (priv->icon_view_scale);
-+ }
++ }
+ else if (view_mode == VIEW_MODE_LIST)
+ {
+ priv->browse_files_current_view = priv->browse_files_tree_view;
@@ -919,7 +919,7 @@ index 9c7aadb8fd..f84f65e80c 100644
+ view_mode_set (impl, view_mode);
+
+ gtk_range_set_value (GTK_RANGE (priv->icon_view_scale), icon_view_scale);
-+ priv->icon_view_icon_size = icon_view_scale;
++ priv->icon_view_icon_size = icon_view_scale;
+
if (!priv->show_hidden_set)
set_show_hidden (impl, show_hidden);
@@ -931,8 +931,8 @@ index 9c7aadb8fd..f84f65e80c 100644
+
+ if (priv->list_size_column) {
+ gtk_tree_view_column_set_visible (priv->list_size_column, show_size_column);
-+ priv->show_type_column = show_type_column;
-+ gtk_tree_view_column_set_visible (priv->list_type_column, show_type_column);
++ priv->show_type_column = show_type_column;
++ gtk_tree_view_column_set_visible (priv->list_type_column, show_type_column);
+ }
priv->sort_column = sort_column;
@@ -1064,7 +1064,7 @@ index 9c7aadb8fd..f84f65e80c 100644
}
/* Replace 'target' with 'replacement' in the input string. */
-@@ -5069,6 +5373,18 @@ get_type_information (GtkFileChooserWidget *impl,
+@@ -5075,6 +5379,18 @@ end:
return g_strdup ("");
}
@@ -1083,7 +1083,7 @@ index 9c7aadb8fd..f84f65e80c 100644
static gboolean
file_system_model_set (GtkFileSystemModel *model,
GFile *file,
-@@ -5128,12 +5444,15 @@ file_system_model_set (GtkFileSystemModel *model,
+@@ -5134,12 +5450,15 @@ file_system_model_set (GtkFileSystemModel *model,
else
g_value_set_boolean (value, TRUE);
break;
@@ -1101,7 +1101,7 @@ index 9c7aadb8fd..f84f65e80c 100644
}
else
{
-@@ -5187,6 +5506,76 @@ file_system_model_set (GtkFileSystemModel *model,
+@@ -5193,6 +5512,76 @@ file_system_model_set (GtkFileSystemModel *model,
else
g_value_set_boxed (value, NULL);
break;
@@ -1122,14 +1122,14 @@ index 9c7aadb8fd..f84f65e80c 100644
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_ICON))
+ {
+ icon_size = priv->icon_view_icon_size;
-+
++
+ cairo_surface_t *icon_surface = _gtk_file_info_render_icon (info, GTK_WIDGET (impl), icon_size);
+ GdkPixbuf *icon_pixbuf = gdk_pixbuf_get_from_surface(icon_surface,
-+ 0, 0,
++ 0, 0,
+ cairo_image_surface_get_width(icon_surface),
+ cairo_image_surface_get_height(icon_surface));
+ cairo_surface_destroy(icon_surface);
-+
++
+ g_value_take_object (value, icon_pixbuf);
+ return TRUE;
+ }
@@ -1178,7 +1178,7 @@ index 9c7aadb8fd..f84f65e80c 100644
case MODEL_COL_SIZE:
g_value_set_int64 (value, info ? g_file_info_get_size (info) : 0);
break;
-@@ -5379,7 +5768,6 @@ static void
+@@ -5385,7 +5774,6 @@ static void
update_chooser_entry (GtkFileChooserWidget *impl)
{
GtkFileChooserWidgetPrivate *priv = impl->priv;
@@ -1186,7 +1186,7 @@ index 9c7aadb8fd..f84f65e80c 100644
struct update_chooser_entry_selected_foreach_closure closure;
/* no need to update the file chooser's entry if there's no entry */
-@@ -5396,9 +5784,8 @@ update_chooser_entry (GtkFileChooserWidget *impl)
+@@ -5402,9 +5790,8 @@ update_chooser_entry (GtkFileChooserWidget *impl)
g_assert (priv->location_entry != NULL);
@@ -1197,18 +1197,17 @@ index 9c7aadb8fd..f84f65e80c 100644
if (closure.num_selected == 0)
{
-@@ -5895,19 +6282,15 @@ gtk_file_chooser_widget_unselect_file (GtkFileChooser *chooser,
+@@ -5901,19 +6288,15 @@ gtk_file_chooser_widget_unselect_file (GtkFileChooser *chooser,
{
GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser);
GtkFileChooserWidgetPrivate *priv = impl->priv;
- GtkTreeView *tree_view;
- GtkTreeModel *model;
GtkTreeIter iter;
--
+
- tree_view = GTK_TREE_VIEW (priv->browse_files_tree_view);
- model = gtk_tree_view_get_model (tree_view);
- if (!model)
-+
+ if (!priv->current_model)
return;
@@ -1221,7 +1220,7 @@ index 9c7aadb8fd..f84f65e80c 100644
}
static gboolean
-@@ -5918,12 +6301,9 @@ maybe_select (GtkTreeModel *model,
+@@ -5924,12 +6307,9 @@ maybe_select (GtkTreeModel *model,
{
GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (data);
GtkFileChooserWidgetPrivate *priv = impl->priv;
@@ -1234,7 +1233,7 @@ index 9c7aadb8fd..f84f65e80c 100644
gtk_tree_model_get (model, iter,
MODEL_COL_IS_FOLDER, &is_folder,
MODEL_COL_IS_SENSITIVE, &is_sensitive,
-@@ -5932,9 +6312,9 @@ maybe_select (GtkTreeModel *model,
+@@ -5938,9 +6318,9 @@ maybe_select (GtkTreeModel *model,
if (is_sensitive &&
((is_folder && priv->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER) ||
(!is_folder && priv->action == GTK_FILE_CHOOSER_ACTION_OPEN)))
@@ -1246,7 +1245,7 @@ index 9c7aadb8fd..f84f65e80c 100644
return FALSE;
}
-@@ -5950,8 +6330,15 @@ gtk_file_chooser_widget_select_all (GtkFileChooser *chooser)
+@@ -5956,8 +6336,15 @@ gtk_file_chooser_widget_select_all (GtkFileChooser *chooser)
{
GtkTreeSelection *selection;
@@ -1264,7 +1263,7 @@ index 9c7aadb8fd..f84f65e80c 100644
return;
}
-@@ -5964,10 +6351,7 @@ static void
+@@ -5970,10 +6357,7 @@ static void
gtk_file_chooser_widget_unselect_all (GtkFileChooser *chooser)
{
GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser);
@@ -1276,7 +1275,7 @@ index 9c7aadb8fd..f84f65e80c 100644
pending_select_files_free (impl);
}
-@@ -6123,15 +6507,13 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser)
+@@ -6129,15 +6513,13 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser)
current_focus = NULL;
file_list_seen = FALSE;
@@ -1295,7 +1294,7 @@ index 9c7aadb8fd..f84f65e80c 100644
/* If there is no selection in the file list, we probably have this situation:
*
-@@ -6165,7 +6547,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser)
+@@ -6171,7 +6553,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser)
else
return NULL;
}
@@ -1304,7 +1303,7 @@ index 9c7aadb8fd..f84f65e80c 100644
goto file_list;
else if (priv->location_entry && priv->toplevel_last_focus_widget == priv->location_entry)
goto file_entry;
-@@ -6443,8 +6825,6 @@ switch_folder_foreach_cb (GtkTreeModel *model,
+@@ -6449,8 +6831,6 @@ switch_folder_foreach_cb (GtkTreeModel *model,
static void
switch_to_selected_folder (GtkFileChooserWidget *impl)
{
@@ -1313,7 +1312,7 @@ index 9c7aadb8fd..f84f65e80c 100644
struct switch_folder_closure closure;
/* We do this with foreach() rather than get_selected() as we may be in
-@@ -6455,8 +6835,7 @@ switch_to_selected_folder (GtkFileChooserWidget *impl)
+@@ -6461,8 +6841,7 @@ switch_to_selected_folder (GtkFileChooserWidget *impl)
closure.file = NULL;
closure.num_selected = 0;
@@ -1323,7 +1322,7 @@ index 9c7aadb8fd..f84f65e80c 100644
g_assert (closure.file && closure.num_selected == 1);
-@@ -6474,19 +6853,33 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl,
+@@ -6480,19 +6859,33 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl,
GtkTreeSelection *selection;
GtkTreeIter iter;
GFileInfo *info;
@@ -1365,7 +1364,7 @@ index 9c7aadb8fd..f84f65e80c 100644
return info;
}
-@@ -6979,7 +7372,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserEmbed *chooser_embed)
+@@ -6985,7 +7378,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserEmbed *chooser_embed)
current_focus = gtk_window_get_focus (GTK_WINDOW (toplevel));
@@ -1374,7 +1373,7 @@ index 9c7aadb8fd..f84f65e80c 100644
{
/* The following array encodes what we do based on the priv->action and the
* number of files selected.
-@@ -7226,7 +7619,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserEmbed *chooser_embed)
+@@ -7232,7 +7625,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserEmbed *chooser_embed)
{
if (priv->location_mode == LOCATION_MODE_PATH_BAR
|| priv->operation_mode == OPERATION_MODE_RECENT)
@@ -1383,7 +1382,7 @@ index 9c7aadb8fd..f84f65e80c 100644
else
widget = priv->location_entry;
}
-@@ -7264,45 +7657,24 @@ selected_foreach_get_file_cb (GtkTreeModel *model,
+@@ -7270,45 +7663,24 @@ selected_foreach_get_file_cb (GtkTreeModel *model,
static GSList *
get_selected_files (GtkFileChooserWidget *impl)
{
@@ -1431,7 +1430,7 @@ index 9c7aadb8fd..f84f65e80c 100644
result = g_slist_reverse (result);
return result;
-@@ -7373,6 +7745,7 @@ search_engine_finished_cb (GtkSearchEngine *engine,
+@@ -7379,6 +7751,7 @@ search_engine_finished_cb (GtkSearchEngine *engine,
gtk_stack_set_visible_child_name (GTK_STACK (priv->browse_files_stack), "empty");
gtk_entry_grab_focus_without_selecting (GTK_ENTRY (priv->search_entry));
}
@@ -1439,7 +1438,7 @@ index 9c7aadb8fd..f84f65e80c 100644
}
static void
-@@ -7398,7 +7771,7 @@ search_clear_model (GtkFileChooserWidget *impl,
+@@ -7404,7 +7777,7 @@ search_clear_model (GtkFileChooserWidget *impl,
if (remove &&
gtk_tree_view_get_model (GTK_TREE_VIEW (priv->browse_files_tree_view)) == GTK_TREE_MODEL (priv->search_model))
@@ -1448,7 +1447,7 @@ index 9c7aadb8fd..f84f65e80c 100644
g_clear_object (&priv->search_model);
}
-@@ -7608,7 +7981,7 @@ recent_clear_model (GtkFileChooserWidget *impl,
+@@ -7614,7 +7987,7 @@ recent_clear_model (GtkFileChooserWidget *impl,
return;
if (remove)
@@ -1457,7 +1456,7 @@ index 9c7aadb8fd..f84f65e80c 100644
g_set_object (&priv->recent_model, NULL);
}
-@@ -7661,8 +8034,7 @@ recent_idle_cleanup (gpointer data)
+@@ -7667,8 +8040,7 @@ recent_idle_cleanup (gpointer data)
GtkFileChooserWidget *impl = load_data->impl;
GtkFileChooserWidgetPrivate *priv = impl->priv;
@@ -1467,7 +1466,7 @@ index 9c7aadb8fd..f84f65e80c 100644
gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->browse_files_tree_view), -1);
gtk_tree_view_column_set_sort_column_id (priv->list_name_column, -1);
-@@ -7810,12 +8182,10 @@ static gboolean
+@@ -7816,12 +8188,10 @@ static gboolean
recent_should_respond (GtkFileChooserWidget *impl)
{
GtkFileChooserWidgetPrivate *priv = impl->priv;
@@ -1481,17 +1480,16 @@ index 9c7aadb8fd..f84f65e80c 100644
}
static void
-@@ -7875,29 +8245,41 @@ check_preview_change (GtkFileChooserWidget *impl)
+@@ -7881,29 +8251,41 @@ check_preview_change (GtkFileChooserWidget *impl)
GtkTreeModel *model;
GtkTreeSelection *selection;
-- model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->browse_files_tree_view));
++ model = priv->current_model;
++
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->browse_files_tree_view));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->browse_files_tree_view));
- if (gtk_tree_selection_get_mode (selection) == GTK_SELECTION_SINGLE ||
- gtk_tree_selection_get_mode (selection) == GTK_SELECTION_BROWSE)
-+ model = priv->current_model;
-+
-+ //model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->browse_files_tree_view));
+ if (priv->view_mode == VIEW_MODE_LIST)
{
- GtkTreeIter iter;
@@ -1500,15 +1498,15 @@ index 9c7aadb8fd..f84f65e80c 100644
+ gtk_tree_selection_get_mode (selection) == GTK_SELECTION_BROWSE)
+ {
+ GtkTreeIter iter;
-
-- if (gtk_tree_selection_get_selected (selection, NULL, &iter))
-- path = gtk_tree_model_get_path (model, &iter);
++
+ if (gtk_tree_selection_get_selected (selection, NULL, &iter))
+ path = gtk_tree_model_get_path (model, &iter);
+ else
+ path = NULL;
+ }
-+
+
+- if (gtk_tree_selection_get_selected (selection, NULL, &iter))
+- path = gtk_tree_model_get_path (model, &iter);
else
- path = NULL;
- }
@@ -1527,7 +1525,7 @@ index 9c7aadb8fd..f84f65e80c 100644
+ }
}
}
-+ else if (priv->view_mode == VIEW_MODE_ICON)
++ else if (priv->view_mode == VIEW_MODE_ICON)
+ {
+ gtk_icon_view_get_cursor (GTK_ICON_VIEW (priv->browse_files_icon_view), &path, NULL);
+ }
@@ -1539,7 +1537,7 @@ index 9c7aadb8fd..f84f65e80c 100644
{
GtkTreeIter iter;
-@@ -7981,15 +8363,13 @@ list_select_func (GtkTreeSelection *selection,
+@@ -7987,15 +8369,13 @@ list_select_func (GtkTreeSelection *selection,
return TRUE;
}
@@ -1558,7 +1556,7 @@ index 9c7aadb8fd..f84f65e80c 100644
if (priv->location_entry)
update_chooser_entry (impl);
-@@ -8013,16 +8393,35 @@ list_row_activated (GtkTreeView *tree_view,
+@@ -8019,16 +8399,35 @@ list_row_activated (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
GtkFileChooserWidget *impl)
@@ -1597,16 +1595,16 @@ index 9c7aadb8fd..f84f65e80c 100644
if (!gtk_tree_model_get_iter (model, &iter, path))
return;
-@@ -8042,7 +8441,7 @@ list_row_activated (GtkTreeView *tree_view,
+@@ -8048,7 +8447,7 @@ list_row_activated (GtkTreeView *tree_view,
priv->action == GTK_FILE_CHOOSER_ACTION_SAVE)
g_signal_emit_by_name (impl, "file-activated");
- out:
-+ out:
++ out:
if (file)
g_object_unref (file);
-@@ -8073,10 +8472,13 @@ static void
+@@ -8079,10 +8478,13 @@ static void
update_cell_renderer_attributes (GtkFileChooserWidget *impl)
{
GtkFileChooserWidgetPrivate *priv = impl->priv;
@@ -1621,7 +1619,7 @@ index 9c7aadb8fd..f84f65e80c 100644
"sensitive", MODEL_COL_IS_SENSITIVE,
NULL);
gtk_tree_view_column_set_attributes (priv->list_name_column,
-@@ -8658,16 +9060,20 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
+@@ -8664,16 +9066,20 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, browse_widgets_hpaned);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, browse_files_stack);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, places_sidebar);
@@ -1643,7 +1641,7 @@ index 9c7aadb8fd..f84f65e80c 100644
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, preview_box);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, extra_align);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, extra_and_filters);
-@@ -8686,6 +9092,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
+@@ -8692,6 +9098,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_type_renderer);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_location_column);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_location_renderer);
@@ -1651,7 +1649,7 @@ index 9c7aadb8fd..f84f65e80c 100644
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_name_entry);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_create_button);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_error_label);
-@@ -8695,6 +9102,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
+@@ -8701,6 +9108,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, rename_file_error_label);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, rename_file_popover);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, remote_warning_bar);
@@ -1659,7 +1657,7 @@ index 9c7aadb8fd..f84f65e80c 100644
/* And a *lot* of callbacks to bind ... */
gtk_widget_class_bind_template_callback (widget_class, browse_files_key_press_event_cb);
-@@ -8709,6 +9117,10 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
+@@ -8715,6 +9123,10 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_callback (widget_class, file_list_drag_end_cb);
gtk_widget_class_bind_template_callback (widget_class, list_selection_changed);
gtk_widget_class_bind_template_callback (widget_class, list_cursor_changed);
@@ -1670,7 +1668,7 @@ index 9c7aadb8fd..f84f65e80c 100644
gtk_widget_class_bind_template_callback (widget_class, filter_combo_changed);
gtk_widget_class_bind_template_callback (widget_class, path_bar_clicked);
gtk_widget_class_bind_template_callback (widget_class, places_sidebar_open_location_cb);
-@@ -8756,6 +9168,18 @@ post_process_ui (GtkFileChooserWidget *impl)
+@@ -8762,6 +9174,18 @@ post_process_ui (GtkFileChooserWidget *impl)
GDK_ACTION_COPY | GDK_ACTION_MOVE);
gtk_drag_dest_add_uri_targets (impl->priv->browse_files_tree_view);
@@ -1689,16 +1687,16 @@ index 9c7aadb8fd..f84f65e80c 100644
/* File browser treemodel columns are shared between GtkFileChooser implementations,
* so we don't set cell renderer attributes in GtkBuilder, but rather keep that
* in code.
-@@ -8787,6 +9211,8 @@ post_process_ui (GtkFileChooserWidget *impl)
- * that priv->icon_size be already setup.
+@@ -8794,6 +9218,8 @@ post_process_ui (GtkFileChooserWidget *impl)
*/
set_icon_cell_renderer_fixed_size (impl);
-+
-+ impl->priv->browse_files_current_view = impl->priv->browse_files_tree_view;
++ impl->priv->browse_files_current_view = impl->priv->browse_files_tree_view;
++
atk_obj = gtk_widget_get_accessible (impl->priv->browse_new_folder_button);
if (GTK_IS_ACCESSIBLE (atk_obj))
-@@ -8836,9 +9262,10 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl)
+ atk_object_set_name (atk_obj, _("Create Folder"));
+@@ -8842,9 +9268,10 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl)
priv->select_multiple = FALSE;
priv->show_hidden = FALSE;
priv->show_size_column = TRUE;
@@ -1710,7 +1708,7 @@ index 9c7aadb8fd..f84f65e80c 100644
priv->load_state = LOAD_EMPTY;
priv->reload_state = RELOAD_EMPTY;
priv->pending_select_files = NULL;
-@@ -8850,6 +9277,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl)
+@@ -8856,6 +9283,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl)
priv->create_folders = TRUE;
priv->auto_selecting_first_row = FALSE;
priv->renamed_file = NULL;
@@ -1718,7 +1716,7 @@ index 9c7aadb8fd..f84f65e80c 100644
/* Ensure GTK+ private types used by the template
* definition before calling gtk_widget_init_template()
-@@ -8897,6 +9325,258 @@ gtk_file_chooser_widget_new (GtkFileChooserAction action)
+@@ -8903,6 +9331,258 @@ gtk_file_chooser_widget_new (GtkFileChooserAction action)
NULL);
}
@@ -1977,16 +1975,7 @@ index 9c7aadb8fd..f84f65e80c 100644
static void
gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser,
const char *id,
-@@ -8949,7 +9629,7 @@ gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser,
- widget = check;
- }
-
-- gtk_widget_show_all (widget);
-+ gtk_widget_show_all (widget);
- gtk_container_add (GTK_CONTAINER (priv->choice_box), widget);
- }
-
-@@ -9016,4 +9696,3 @@ gtk_file_chooser_widget_get_choice (GtkFileChooser *chooser,
+@@ -9022,4 +9702,3 @@ gtk_file_chooser_widget_get_choice (GtkFileChooser *chooser,
return NULL;
}
@@ -2029,7 +2018,7 @@ index dda603ab61..f0f59b44b1 100644
<default>false</default>
<summary>Show hidden files</summary>
diff --git a/gtk/ui/gtkfilechooserwidget.ui b/gtk/ui/gtkfilechooserwidget.ui
-index c1b4b43d50..9d9f48d2d8 100644
+index c1b4b43d50..16a9fdf082 100644
--- a/gtk/ui/gtkfilechooserwidget.ui
+++ b/gtk/ui/gtkfilechooserwidget.ui
@@ -8,6 +8,56 @@
@@ -2061,7 +2050,7 @@ index c1b4b43d50..9d9f48d2d8 100644
+ <child>
+ <object class="GtkAdjustment" id="icon_view_icon_size">
+ <property name="upper">256</property>
-+ <property name="lower">32</property>
++ <property name="lower">32</property>
+ <property name="value">32</property>
+ <property name="step_increment">16</property>
+ </object>
@@ -2279,7 +2268,7 @@ index c1b4b43d50..9d9f48d2d8 100644
+ <object class="GtkScrolledWindow" id="browse_files_icon_swin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
-+ <property name="shadow_type">in</property>
++ <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">GTK_POLICY_AUTOMATIC</property>
<child>
- <object class="GtkTreeViewColumn" id="list_time_column">