1. 23 Feb, 2014 1 commit
    • Benjamin Otte's avatar
      csskeyframes: Split new() into alloc() and new() · 10fa786d
      Benjamin Otte authored
      The new() function is supposed to return an empty fully initialized
      GtkCssKeyframes object, while the alloc() function just allocates and
      initializes static values. So alloc() can be used for copying or
      resolving keyframes.
      
      Fixes a memleak when resolving keyframes.
      10fa786d
  2. 03 Jul, 2013 1 commit
    • Alexander Larsson's avatar
      css: Add a scale argument to css-value compute vfunc · af2c40bd
      Alexander Larsson authored
      We need to be able to compute different GtkCssImage values
      depending on the scale, and we need this at compute time so that
      we don't need to read any images other than the scale in used (to
      e.g. calculate the image size). GtkStyleProviderPrivate is shared
      for all style contexts, so its not right.
      af2c40bd
  3. 16 Oct, 2012 1 commit
  4. 28 Sep, 2012 1 commit
    • Benjamin Otte's avatar
      css: Huge refactoring to avoid computing wrong values · 1454ba15
      Benjamin Otte authored
      Here's the shortest description of the bug I can come up with:
      When computing values, we have 3 kinds of dependencies:
      (1) other properties ("currentColor" or em values)
      (2) inherited properties ("inherit")
      (3) generic things from the theme (@keyframes or @define-color)
      Previously, we passed the GtkStyleContext as an argument, because it
      provided these 3 things using:
      (1) _gtk_style_context_peek_property()
      (2) _gtk_style_context_peek_property(gtk_style_context_get_parent())
      (3) context->priv->cascade
      
      However, this makes it impossible to lookup values other than the ones
      accessible via _gtk_style_context_peek_property(). And this is exactly
      what we are doing in gtk_style_context_update_cache(). So when the cache
      updates encountered case (1), they were looking up the values from the
      wrong style data.
      
      So this large patch essentially does nothing but replace the
      context argument in all compute functions with new arguments for the 3
      cases above:
      (1) values
      (2) parent_values
      (3) provider
      
      We apparently have a lot of computing code.
      1454ba15
  5. 17 Sep, 2012 1 commit