[gtk+] treeview: width_changed is always true, so remove it
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] treeview: width_changed is always true, so remove it
- Date: Sun, 12 Nov 2017 04:48:06 +0000 (UTC)
commit 48de0bf741df5ec3d7b43fe0dc3f37d1582de232
Author: Benjamin Otte <otte redhat com>
Date: Sun Nov 12 04:55:17 2017 +0100
treeview: width_changed is always true, so remove it
Also, sanitize the RTL correction code that made sure resizing the width
of a treeview would keep the contents glued to the right border instead
of the left border.
gtk/gtktreeview.c | 82 +++++++++++------------------------------------------
1 files changed, 17 insertions(+), 65 deletions(-)
---
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 3b83677..fc3da3b 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -482,8 +482,6 @@ struct _GtkTreeViewPrivate
guint modify_selection_pressed : 1;
guint extend_selection_pressed : 1;
- guint init_hadjust_value : 1;
-
guint in_top_row_to_dy : 1;
/* interactive search */
@@ -1702,7 +1700,6 @@ gtk_tree_view_init (GtkTreeView *tree_view)
priv->search_equal_func = gtk_tree_view_search_equal_func;
priv->search_custom_entry_set = FALSE;
priv->typeselect_flush_timeout = 0;
- priv->init_hadjust_value = TRUE;
priv->width = 0;
priv->hover_selection = FALSE;
@@ -2389,8 +2386,7 @@ gtk_tree_view_calculate_width_before_expander (GtkTreeView *tree_view)
/* GtkWidget::size_allocate helper */
static void
-gtk_tree_view_size_allocate_columns (GtkWidget *widget,
- gboolean *width_changed)
+gtk_tree_view_size_allocate_columns (GtkWidget *widget)
{
GtkTreeView *tree_view;
GList *list, *first_column, *last_column;
@@ -2437,13 +2433,11 @@ gtk_tree_view_size_allocate_columns (GtkWidget *widget,
number_of_expand_columns++;
}
- /* Only update the expand value if the width of the widget has changed,
- * or the number of expand columns has changed, or if there are no expand
- * columns, or if we didn't have an size-allocation yet after the
- * last validated node.
+ /* Only update the expand value if the number of expand columns has changed,
+ * or if there are no expand columns, or if we didn't have an size-allocation
+ * yet after the last validated node.
*/
- update_expand = (width_changed && *width_changed == TRUE)
- || number_of_expand_columns != tree_view->priv->last_number_of_expand_columns
+ update_expand = number_of_expand_columns != tree_view->priv->last_number_of_expand_columns
|| number_of_expand_columns == 0
|| tree_view->priv->post_validation_flag == TRUE;
@@ -2526,8 +2520,6 @@ gtk_tree_view_size_allocate_columns (GtkWidget *widget,
if (tree_view->priv->width != width)
{
tree_view->priv->width = width;
- if (width_changed)
- *width_changed = TRUE;
}
}
@@ -2560,63 +2552,23 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
{
GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
GList *tmp_list;
- gboolean width_changed = TRUE;
- gint old_width;
double page_size;
- old_width = gtk_widget_get_allocated_width (widget);
- if (allocation->width != old_width)
- width_changed = TRUE;
-
/* We size-allocate the columns first because the width of the
* tree view (used in updating the adjustments below) might change.
*/
- gtk_tree_view_size_allocate_columns (widget, &width_changed);
+ gtk_tree_view_size_allocate_columns (widget);
gtk_tree_view_size_allocate_drag_column (widget);
- g_object_freeze_notify (G_OBJECT (tree_view->priv->hadjustment));
- gtk_adjustment_set_page_size (tree_view->priv->hadjustment,
- allocation->width);
- gtk_adjustment_set_page_increment (tree_view->priv->hadjustment,
- allocation->width * 0.9);
- gtk_adjustment_set_step_increment (tree_view->priv->hadjustment,
- allocation->width * 0.1);
- gtk_adjustment_set_lower (tree_view->priv->hadjustment, 0);
- gtk_adjustment_set_upper (tree_view->priv->hadjustment,
- MAX (gtk_adjustment_get_page_size (tree_view->priv->hadjustment),
- tree_view->priv->width));
- g_object_thaw_notify (G_OBJECT (tree_view->priv->hadjustment));
-
- if (_gtk_widget_get_direction(widget) == GTK_TEXT_DIR_RTL)
- {
- if (allocation->width < tree_view->priv->width)
- {
- if (tree_view->priv->init_hadjust_value)
- {
- gtk_adjustment_set_value (tree_view->priv->hadjustment,
- MAX (tree_view->priv->width -
- allocation->width, 0));
- tree_view->priv->init_hadjust_value = FALSE;
- }
- else if (allocation->width != old_width)
- {
- gtk_adjustment_set_value (tree_view->priv->hadjustment,
- CLAMP (gtk_adjustment_get_value (tree_view->priv->hadjustment) -
allocation->width + old_width,
- 0,
- tree_view->priv->width - allocation->width));
- }
- }
- else
- {
- gtk_adjustment_set_value (tree_view->priv->hadjustment, 0);
- tree_view->priv->init_hadjust_value = TRUE;
- }
- }
- else
- if (gtk_adjustment_get_value (tree_view->priv->hadjustment) + allocation->width > tree_view->priv->width)
- gtk_adjustment_set_value (tree_view->priv->hadjustment,
- MAX (tree_view->priv->width -
- allocation->width, 0));
+ page_size = gtk_adjustment_get_page_size (tree_view->priv->vadjustment);
+ gtk_adjustment_configure (tree_view->priv->hadjustment,
+ gtk_adjustment_get_value (tree_view->priv->hadjustment) +
+ (_gtk_widget_get_direction(widget) == GTK_TEXT_DIR_RTL ? allocation->width -
page_size : 0),
+ 0,
+ MAX (allocation->width, tree_view->priv->width),
+ allocation->width * 0.1,
+ allocation->width * 0.9,
+ allocation->width);
page_size = allocation->height - gtk_tree_view_get_effective_header_height (tree_view);
gtk_adjustment_configure (tree_view->priv->vadjustment,
@@ -2638,7 +2590,7 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
if (tree_view->priv->tree == NULL)
invalidate_empty_focus (tree_view);
- if (width_changed && tree_view->priv->expander_column)
+ if (tree_view->priv->expander_column)
{
/* Might seem awkward, but is the best heuristic I could come up
* with. Only if the width of the columns before the expander
@@ -11808,7 +11760,7 @@ gtk_tree_view_move_column_after (GtkTreeView *tree_view,
if (gtk_widget_get_realized (GTK_WIDGET (tree_view)))
{
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
- gtk_tree_view_size_allocate_columns (GTK_WIDGET (tree_view), NULL);
+ gtk_tree_view_size_allocate_columns (GTK_WIDGET (tree_view));
}
_gtk_tree_view_accessible_reorder_column (tree_view, column);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]