1. 11 Jan, 2015 8 commits
  2. 10 Jan, 2015 12 commits
  3. 09 Jan, 2015 12 commits
  4. 08 Jan, 2015 3 commits
  5. 07 Jan, 2015 5 commits
    • Benjamin Otte's avatar
      stylecontext: Handle theme changes for cached styles · 29984c52
      Benjamin Otte authored
      We need to clear the cache manually on full revalidates because
      _gtk_css_change_for_child() will clear the full revalidation flags.
      And then gtk_style_context_update_cache() will not do the right thing
      (which is to clear itself).
      29984c52
    • Benjamin Otte's avatar
      bc07a540
    • Benjamin Otte's avatar
      stylecontext: update_animating() properly · 26640825
      Benjamin Otte authored
      Because we can switch from animating to non-animating pretty much
      anywhere, do the check for animations unconditionally instead of trying
      to cram it into the correct if path (and failing).
      26640825
    • Benjamin Otte's avatar
      stack: Remove commented out line · 059cd3e5
      Benjamin Otte authored
      It always shows up in my greps and confuses me.
      059cd3e5
    • Benjamin Otte's avatar
      stylecontext: Add a parent style cache · fe33ee42
      Benjamin Otte authored
      We now cache the results of lookups on the parent GtkCssStyle. This
      allows sharing styles between widgets (recursively). However, this
      only works if the styles can't potentially depend on siblings -
      neither directly via sibling selectors or via position pseudo-classes
      like :first-child.
      Unfortunately, Adwaita currently uses first-child a lot, and in
      particular for labels, which are the most common widgets.
      
      The big benefits of this change are both less CPU - due to not needing
      to compute styles again - and less memory usage - due to sharing of
      the styles between widgets. Here's some nonscientific numbers I
      collected while pondering the usefulness of this patch:
      
                          glade   glade   widget
                          demo    demo    factory
                          runtime styles  styles
      Adwaita before      19.1s   5800    1150
      Adwaita now         18.9s   3800     970
      Adwaita hacked now  14.5s   3100     910
      simple before       11.3s   5800    1150
      simple now          10.8s   1300     590
      
      Adwaita: Adwaita as provided by GTK
      Adwaita hacked: Adwaita with the first/last-child for GtkLabel removed
      simple: A 250 lines simple GTK theme I use for testing
      before: This patch not applied
      now: this patch applied
      
      glade demo runtime: Starting glade opening a large file and closing it
      glade demo styles: GtkCssStaticStyle objects after opening glade with
                         the large file as per inspector
      widget factory styles: GtkCssStaticStyle objects after startup as per
                             inspector
      fe33ee42