forked from AuroraMiddleware/gtk
checkbutton: Don't redundantly update states
States are set properly by GtkButton, there is no need to set them manually.
This commit is contained in:
parent
c1a063e1a4
commit
d36bba293d
@ -529,7 +529,6 @@ gtk_real_check_button_draw_indicator (GtkCheckButton *check_button,
|
|||||||
{
|
{
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
GtkButton *button;
|
GtkButton *button;
|
||||||
GtkStateFlags state = 0;
|
|
||||||
gint x, y;
|
gint x, y;
|
||||||
gint indicator_size;
|
gint indicator_size;
|
||||||
gint indicator_spacing;
|
gint indicator_spacing;
|
||||||
@ -544,7 +543,6 @@ gtk_real_check_button_draw_indicator (GtkCheckButton *check_button,
|
|||||||
gtk_widget_get_allocation (widget, &allocation);
|
gtk_widget_get_allocation (widget, &allocation);
|
||||||
baseline = gtk_widget_get_allocated_baseline (widget);
|
baseline = gtk_widget_get_allocated_baseline (widget);
|
||||||
context = gtk_widget_get_style_context (widget);
|
context = gtk_widget_get_style_context (widget);
|
||||||
state = gtk_widget_get_state_flags (widget);
|
|
||||||
|
|
||||||
_gtk_check_button_get_props (check_button, &indicator_size, &indicator_spacing);
|
_gtk_check_button_get_props (check_button, &indicator_size, &indicator_spacing);
|
||||||
|
|
||||||
@ -557,20 +555,10 @@ gtk_real_check_button_draw_indicator (GtkCheckButton *check_button,
|
|||||||
y = CLAMP (baseline - indicator_size * button->priv->baseline_align,
|
y = CLAMP (baseline - indicator_size * button->priv->baseline_align,
|
||||||
0, allocation.height - indicator_size);
|
0, allocation.height - indicator_size);
|
||||||
|
|
||||||
state &= ~(GTK_STATE_FLAG_ACTIVE |
|
|
||||||
GTK_STATE_FLAG_PRELIGHT);
|
|
||||||
|
|
||||||
if (button->priv->activate_timeout || (button->priv->button_down && button->priv->in_button))
|
|
||||||
state |= GTK_STATE_FLAG_ACTIVE;
|
|
||||||
|
|
||||||
if (button->priv->in_button)
|
|
||||||
state |= GTK_STATE_FLAG_PRELIGHT;
|
|
||||||
|
|
||||||
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
|
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
|
||||||
x = allocation.width - (indicator_size + x);
|
x = allocation.width - (indicator_size + x);
|
||||||
|
|
||||||
gtk_style_context_save (context);
|
gtk_style_context_save (context);
|
||||||
gtk_style_context_set_state (context, state);
|
|
||||||
|
|
||||||
gtk_render_background (context, cr,
|
gtk_render_background (context, cr,
|
||||||
border_width, border_width,
|
border_width, border_width,
|
||||||
|
@ -831,7 +831,6 @@ gtk_radio_button_draw_indicator (GtkCheckButton *check_button,
|
|||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
GtkButton *button;
|
GtkButton *button;
|
||||||
GtkStyleContext *context;
|
GtkStyleContext *context;
|
||||||
GtkStateFlags state = 0;
|
|
||||||
gint x, y;
|
gint x, y;
|
||||||
gint indicator_size, indicator_spacing;
|
gint indicator_size, indicator_spacing;
|
||||||
gint baseline;
|
gint baseline;
|
||||||
@ -840,7 +839,6 @@ gtk_radio_button_draw_indicator (GtkCheckButton *check_button,
|
|||||||
widget = GTK_WIDGET (check_button);
|
widget = GTK_WIDGET (check_button);
|
||||||
button = GTK_BUTTON (check_button);
|
button = GTK_BUTTON (check_button);
|
||||||
context = gtk_widget_get_style_context (widget);
|
context = gtk_widget_get_style_context (widget);
|
||||||
state = gtk_widget_get_state_flags (widget);
|
|
||||||
|
|
||||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
||||||
_gtk_check_button_get_props (check_button, &indicator_size, &indicator_spacing);
|
_gtk_check_button_get_props (check_button, &indicator_size, &indicator_spacing);
|
||||||
@ -855,21 +853,10 @@ gtk_radio_button_draw_indicator (GtkCheckButton *check_button,
|
|||||||
y = CLAMP (baseline - indicator_size * button->priv->baseline_align,
|
y = CLAMP (baseline - indicator_size * button->priv->baseline_align,
|
||||||
0, allocation.height - indicator_size);
|
0, allocation.height - indicator_size);
|
||||||
|
|
||||||
state &= ~(GTK_STATE_FLAG_ACTIVE |
|
|
||||||
GTK_STATE_FLAG_PRELIGHT);
|
|
||||||
|
|
||||||
if (button->priv->activate_timeout ||
|
|
||||||
(button->priv->button_down && button->priv->in_button))
|
|
||||||
state |= GTK_STATE_FLAG_ACTIVE;
|
|
||||||
|
|
||||||
if (button->priv->in_button)
|
|
||||||
state |= GTK_STATE_FLAG_PRELIGHT;
|
|
||||||
|
|
||||||
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
|
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
|
||||||
x = allocation.width - (indicator_size + x);
|
x = allocation.width - (indicator_size + x);
|
||||||
|
|
||||||
gtk_style_context_save (context);
|
gtk_style_context_save (context);
|
||||||
gtk_style_context_set_state (context, state);
|
|
||||||
|
|
||||||
gtk_render_background (context, cr,
|
gtk_render_background (context, cr,
|
||||||
border_width, border_width,
|
border_width, border_width,
|
||||||
|
Loading…
Reference in New Issue
Block a user