Skip to content
  • Owen W. Taylor's avatar
    metacity-theme-3.xml: Add a flexible version mechanism · 020aea03
    Owen W. Taylor authored
    The current mechanism of metacity-theme-1.xml and metacity-theme-2.xml
    is not flexible for allowing small-scale additions. With this patch
    we bump the major version version once more to metacity-theme-3.xml
    and add a single feature:
    
    Any element in the DTD can have an attribute:
    
     version="[<|<=|=>|>] MAJOR.MINOR"
    
    And it will be ignored unless the predicate is met. (< and > should
    be to be entity escaped as &lt; and &gt;)
    
    This allows having alternate sections of the theme file for older and
    newer version.
    
    * Required GLib version is bumped to 2.14 so we can parse versions
      with a regular expression.
    
    * We switch internal version numbers to be "1000 * major + minor"
    
    * We keep a stack of the maximum required version for the current portion
      the XML tree so that the "cannot use versions you don't require" stricture
      of the old code can be made local to a subpart of the tree.
    
    * A version on the top metacity_theme element causes the entire file to
      be ignored; this allows having one metacity-theme-3.xml for version 3.2
      and newer (say) and a metacity-1.xml for everything old.
    
    Actual new features will be added starting with 3.1 - 3.0 is just the
    version="" feature.
    
    http://bugzilla.gnome.org/show_bug.cgi?id=592503
    020aea03