mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-17 03:00:19 +00:00
Centralized buffer adjustment updates to use xtext_adjustment_apply when switching buffers, reducing repeated adjustment mutations while preserving existing behavior.
This commit is contained in:
@@ -5542,25 +5542,17 @@ gtk_xtext_buffer_show (GtkXText *xtext, xtext_buffer *buf, int render)
|
|||||||
xtext->buffer = buf;
|
xtext->buffer = buf;
|
||||||
dontscroll (buf); /* force scrolling off */
|
dontscroll (buf); /* force scrolling off */
|
||||||
{
|
{
|
||||||
|
gdouble lower = 0;
|
||||||
gdouble value = buf->old_value;
|
gdouble value = buf->old_value;
|
||||||
gdouble upper = buf->num_lines;
|
gdouble upper = buf->num_lines;
|
||||||
gdouble page_size = xtext_adj_get_page_size (xtext->adj);
|
gdouble page_size = xtext_adj_get_page_size (xtext->adj);
|
||||||
|
|
||||||
xtext_adj_set_value (xtext->adj, value);
|
|
||||||
xtext_adj_set_upper (xtext->adj, upper);
|
|
||||||
|
|
||||||
/* if the scrollbar was down, keep it down */
|
/* if the scrollbar was down, keep it down */
|
||||||
if (xtext->buffer->scrollbar_down && value < upper - page_size)
|
if (xtext->buffer->scrollbar_down && value < upper - page_size)
|
||||||
{
|
|
||||||
value = upper - page_size;
|
value = upper - page_size;
|
||||||
xtext_adj_set_value (xtext->adj, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (upper == 0)
|
if (upper == 0)
|
||||||
{
|
|
||||||
upper = 1;
|
upper = 1;
|
||||||
xtext_adj_set_upper (xtext->adj, upper);
|
|
||||||
}
|
|
||||||
/* sanity check */
|
/* sanity check */
|
||||||
else if (value > upper - page_size)
|
else if (value > upper - page_size)
|
||||||
{
|
{
|
||||||
@@ -5568,8 +5560,9 @@ gtk_xtext_buffer_show (GtkXText *xtext, xtext_buffer *buf, int render)
|
|||||||
value = upper - page_size;
|
value = upper - page_size;
|
||||||
if (value < 0)
|
if (value < 0)
|
||||||
value = 0;
|
value = 0;
|
||||||
xtext_adj_set_value (xtext->adj, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xtext_adjustment_apply (xtext->adj, lower, upper, value, page_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (render)
|
if (render)
|
||||||
|
|||||||
Reference in New Issue
Block a user