示例#1
0
void
gtk_icon_helper_invalidate_for_change (GtkIconHelper     *self,
                                       GtkCssStyleChange *change)
{
  GtkIconHelperPrivate *priv = self->priv;

  if (change &&
      ((gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SYMBOLIC_ICON) &&
        priv->rendered_surface_is_symbolic) ||
      (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON) &&
       !priv->rendered_surface_is_symbolic)))
    {
      gtk_icon_helper_invalidate (self);
    }
}
示例#2
0
文件: gtklevelbar.c 项目: Therzok/gtk
static void
node_style_changed_cb (GtkCssNode        *node,
                       GtkCssStyleChange *change,
                       GtkWidget         *widget)
{
  if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP))
    gtk_widget_queue_resize (widget);
  else
    gtk_widget_queue_draw (widget);
}
示例#3
0
void
gtk_icon_helper_invalidate_for_change (GtkIconHelper     *self,
                                       GtkCssStyleChange *change)
{
  if (change == NULL ||
      ((gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SYMBOLIC_ICON) &&
        self->texture_is_symbolic) ||
       (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON) &&
        !self->texture_is_symbolic)))
    {
      /* Avoid the queue_resize in gtk_icon_helper_invalidate */
      g_clear_object (&self->paintable);
      self->texture_is_symbolic = FALSE;

      if (change == NULL ||
          (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON_SIZE) &&
          !GTK_IS_CSS_TRANSIENT_NODE (self->node)))
        gtk_widget_queue_resize (self->owner);
    }
}
示例#4
0
static void
gtk_switch_style_updated (GtkWidget *widget)
{
  GtkSwitch *self = GTK_SWITCH (widget);
  GtkStyleContext *context;
  GtkCssStyleChange *change;

  GTK_WIDGET_CLASS (gtk_switch_parent_class)->style_updated (widget);

  context = gtk_widget_get_style_context (widget);
  change = gtk_style_context_get_change (context);

  if (change == NULL || gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_FONT))
    gtk_switch_create_pango_layouts (self);
}