diff options
author | dudemanguy | 2020-04-06 17:32:46 -0500 |
---|---|---|
committer | dudemanguy | 2020-04-06 17:32:46 -0500 |
commit | 63699c8f5d450912007d6023a4a4c2c67935ab98 (patch) | |
tree | 8e143e668ef5ca141d01586f5eac362aac23c69b | |
parent | e607083dd5649c796ea3743bea8f72ac12c7cc32 (diff) | |
download | aur-63699c8f5d450912007d6023a4a4c2c67935ab98.tar.gz |
3.24.17+15+gdc79e07228-1
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | 1633.patch | 57 | ||||
-rw-r--r-- | 1634.patch | 43 | ||||
-rw-r--r-- | 1638.patch | 39 | ||||
-rw-r--r-- | PKGBUILD | 27 | ||||
-rw-r--r-- | gtk3-filechooser-icon-view.patch | 135 |
6 files changed, 117 insertions, 200 deletions
@@ -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 + @@ -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"> |