[Xfce4-commits] [xfce/thunar] 01/01: Fix of messed up row-height with disabled "automatically expand columns as needed" in detailed view. (Part II) (Bug #14548)

noreply at xfce.org noreply at xfce.org
Sun Jul 29 22:11:29 CEST 2018


This is an automated email from the git hooks/post-receive script.

a   l   e   x       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/thunar.

commit 9e068ccb788673d631d88ad89fd6ec81e9b7d915
Author: Alexander Schwinn <acs82 at gmx.de>
Date:   Mon Jul 23 23:26:16 2018 +0200

    Fix of messed up row-height with disabled "automatically expand columns
    as needed" in detailed view. (Part II)
    (Bug #14548)
---
 thunar/thunar-details-view.c  | 29 +++++++++++++++++++++--------
 thunar/thunar-standard-view.c |  4 +---
 thunar/thunar-standard-view.h |  2 ++
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/thunar/thunar-details-view.c b/thunar/thunar-details-view.c
index 6a47d68..2b402b9 100644
--- a/thunar/thunar-details-view.c
+++ b/thunar/thunar-details-view.c
@@ -901,12 +901,16 @@ static void
 thunar_details_view_zoom_level_changed (ThunarDetailsView *details_view)
 {
   ThunarColumn column;
+  gboolean     fixed_columns_used = FALSE;
 
   _thunar_return_if_fail (THUNAR_IS_DETAILS_VIEW (details_view));
 
-  /* Disable fixed height optimization during resize, since it can mess up the row height */
-  if (details_view->fixed_columns)
-    gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (details_view))), FALSE);
+  if (details_view->fixed_columns == TRUE)
+    fixed_columns_used = TRUE;
+
+  /* Disable fixed column mode during resize, since it can generate graphical glitches */
+  if (fixed_columns_used)
+      thunar_details_view_set_fixed_columns (details_view, FALSE);
 
   /* determine the list of tree view columns */
   for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
@@ -915,8 +919,13 @@ thunar_details_view_zoom_level_changed (ThunarDetailsView *details_view)
       gtk_tree_view_column_queue_resize (details_view->columns[column]);
     }
 
-  if (details_view->fixed_columns)
-    gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (details_view))), TRUE);
+  if (fixed_columns_used)
+    {
+      thunar_details_view_set_fixed_columns (details_view, TRUE);
+
+      /* For unknown reason a reload is required to display the correct row-height (otherwise some rows will keep the old height )*/
+      thunar_standard_view_reload (THUNAR_VIEW (details_view), TRUE);
+    }
 }
 
 
@@ -978,6 +987,10 @@ thunar_details_view_set_fixed_columns (ThunarDetailsView *details_view,
       /* apply the new value */
       details_view->fixed_columns = fixed_columns;
 
+      /* disable in reverse order, otherwise graphical glitches can appear*/
+      if (!fixed_columns)
+        gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (details_view))), FALSE);
+
       /* apply the new setting to all columns */
       for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
         {
@@ -1001,9 +1014,9 @@ thunar_details_view_set_fixed_columns (ThunarDetailsView *details_view,
         }
 
       /* for fixed columns mode, we can enable the fixed height
-       * mode to improve the performance of the GtkTreeVeiw.
-       */
-      gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (details_view))), fixed_columns);
+       * mode to improve the performance of the GtkTreeVeiw. */
+      if (fixed_columns)
+        gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (details_view))), TRUE);
 
       /* notify listeners */
       g_object_notify (G_OBJECT (details_view), "fixed-columns");
diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c
index 07b0e95..45a92aa 100644
--- a/thunar/thunar-standard-view.c
+++ b/thunar/thunar-standard-view.c
@@ -140,8 +140,6 @@ static ThunarZoomLevel      thunar_standard_view_get_zoom_level             (Thu
 static void                 thunar_standard_view_set_zoom_level             (ThunarView               *view,
                                                                              ThunarZoomLevel           zoom_level);
 static void                 thunar_standard_view_reset_zoom_level           (ThunarView               *view);
-static void                 thunar_standard_view_reload                     (ThunarView               *view,
-                                                                             gboolean                  reload_info);
 static gboolean             thunar_standard_view_get_visible_range          (ThunarView               *view,
                                                                              ThunarFile              **start_file,
                                                                              ThunarFile              **end_file);
@@ -1756,7 +1754,7 @@ thunar_standard_view_reset_zoom_level (ThunarView *view)
 
 
 
-static void
+void
 thunar_standard_view_reload (ThunarView *view,
                              gboolean    reload_info)
 {
diff --git a/thunar/thunar-standard-view.h b/thunar/thunar-standard-view.h
index f851368..7d7f4f8 100644
--- a/thunar/thunar-standard-view.h
+++ b/thunar/thunar-standard-view.h
@@ -148,6 +148,8 @@ void  thunar_standard_view_context_menu       (ThunarStandardView *standard_view
 
 void  thunar_standard_view_queue_popup        (ThunarStandardView *standard_view,
                                                GdkEventButton     *event);
+void  thunar_standard_view_reload             (ThunarView         *view,
+                                               gboolean            reload_info);
 
 void  thunar_standard_view_selection_changed  (ThunarStandardView *standard_view);
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list