[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

compizconfig-python: Changes to 'upstream-unstable'



 VERSION              |    2 
 src/compizconfig.pyx |  242 +++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 235 insertions(+), 9 deletions(-)

New commits:
commit c91f714b6deaf7aaad6e81670375bb3569b8991e
Author: Guillaume Seguin <guillaume@segu.in>
Date:   Mon Mar 9 15:43:52 2009 +0100

    * Bump version to 0.8.2

diff --git a/VERSION b/VERSION
index 1357b31..2dcc312 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-VERSION=0.7.9
+VERSION=0.8.2

commit 3b5b677de13fad4f83d2a9f194c9b7ce521021ec
Author: Danny Baumann <dannybaumann@web.de>
Date:   Wed Dec 3 08:33:53 2008 +0100

    SortSingleStringSetting fills the string restriction info as a side
    effect, so don't skip it if sorting is not desired, but just leave the
    list unsorted instead.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index 4129639..f8ab652 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -809,7 +809,7 @@ cdef class Plugin:
         if t == TypeList:
             t = i.forList.listType
             i = <CCSSettingInfo *> i.forList.listInfo
-        if t != TypeString or i.forString.sortStartsAt < 0:
+        if t != TypeString:
             return
 
         (itemsByName, listOfAddedItems) = \
@@ -822,7 +822,10 @@ cdef class Plugin:
         setting.baseStrRestrictions = \
             listOfAddedItems + setting.baseStrRestrictions
 
-        if i.forString.sortStartsAt == 0:
+        if i.forString.sortStartsAt < 0:
+            # don't sort
+            sortedItems = itemsByName.items ()
+        elif i.forString.sortStartsAt == 0:
             # Sort all items by value
             sortedItems = sorted (itemsByName.items (),
                                   key=StringSettingKeyFunc)

commit c714417cac0cbecbc62720055e063f73f332e329
Author: Erkin Bahceci <erkinbah@gmail.com>
Date:   Thu Sep 18 02:26:08 2008 -0500

    Reorder option types for consistency with compiz.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index ce4f9b6..4129639 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -31,12 +31,13 @@ cdef enum CCSSettingType:
     TypeFloat
     TypeString
     TypeColor
-    TypeMatch
-    TypeList
+    TypeAction
     TypeKey
     TypeButton
     TypeEdge
     TypeBell
+    TypeMatch
+    TypeList
     TypeNum
 
 cdef enum CCSPluginConflictType:
@@ -56,12 +57,13 @@ SettingTypeString = [
     "Float",
     "String",
     "Color",
-    "Match",
-    "List",
+    "Action",
     "Key",
     "Button",
     "Edge",
     "Bell",
+    "Match",
+    "List",
     "Invalid"
 ]
 

commit 4a807f7180055dc7690bf2ae753c1769f8524df0
Author: Guillaume Seguin <guillaume@segu.in>
Date:   Tue Sep 23 13:34:21 2008 +0200

    * Bump version to 0.7.9

diff --git a/VERSION b/VERSION
index 38e4baa..1357b31 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-VERSION=0.7.8
+VERSION=0.7.9

commit 0b8815f348e4edd3517d0514511fbebdbf987b69
Author: Guillaume Seguin <guillaume@segu.in>
Date:   Tue Sep 23 13:34:21 2008 +0200

    * Bump version to 0.7.8

diff --git a/VERSION b/VERSION
index fce301a..38e4baa 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-VERSION=0.7.7
+VERSION=0.7.8

commit bc83ae7a2fe7a291aac3dc58fbc770211d1e9a34
Author: Erkin Bahceci <erkinbah@gmail.com>
Date:   Mon Sep 8 22:40:09 2008 -0500

    Provide metadata order for groups and subgroups.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index 2533a76..ce4f9b6 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -736,18 +736,23 @@ cdef class Plugin:
         cdef CCSSettingType t
         cdef CCSSettingInfo * i
 
+        groupIndex = 0
         glist = ccsGetPluginGroups (self.ccsPlugin)
         while glist != NULL:
             gr = <CCSGroup *> glist.data
-            self.groups[gr.name] = {}
+            self.groups[gr.name] = (groupIndex, {})
+            subGroupIndex = 0
             sglist = gr.subGroups
             while sglist != NULL:
                 sgr = <CCSSubGroup *> sglist.data
                 scr = []
                 for n in range (0, self.context.NScreens):
                     scr.append ({})
-                self.groups[gr.name][sgr.name] = SSGroup ({}, scr)
+                self.groups[gr.name][1][sgr.name] = (subGroupIndex,
+                                                     SSGroup ({}, scr))
+                subGroupIndex = subGroupIndex + 1
                 sglist = sglist.next
+            groupIndex = groupIndex + 1
             glist = glist.next
         setlist = ccsGetPluginSettings (self.ccsPlugin)
 
@@ -756,7 +761,7 @@ cdef class Plugin:
         while setlist != NULL:
             sett = <CCSSetting *> setlist.data
 
-            subgroup = self.groups[sett.group][sett.subGroup]
+            subgroup = self.groups[sett.group][1][sett.subGroup][1]
 
             if sett.isScreen:
                 setting = Setting (self, sett.name, True, sett.screenNum)

commit 144a3c4fce9474c53dc1459d5f2ee6d349754110
Author: Erkin Bahceci <erkinbah@gmail.com>
Date:   Sun Aug 31 18:08:32 2008 -0500

    Handle lack of animation plugin.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index 34aa686..2533a76 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -859,7 +859,8 @@ cdef class Plugin:
             ext = <CCSStrExtension *> extList.data
 
             # If not extending others and extension base is not self, skip
-            if not (extendOthersToo or ext.basePlugin == self.Name):
+            if (not (extendOthersToo or ext.basePlugin == self.Name)) or \
+            ext.basePlugin not in self.context.Plugins:
                 extList = extList.next
                 continue
 

commit 886a0a112f8d390b9359ce92146bd9e5ea4f1c9f
Author: Erkin Bahceci <erkinbah@gmail.com>
Date:   Sun Aug 31 17:26:49 2008 -0500

    Fix initializing of disabled plugins.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index 51c102b..34aa686 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -1162,7 +1162,8 @@ cdef class Context:
         # Apply restricted string extensions
         for name, pluginItem in self.plugins.items ():
             plugin = pluginItem
-            plugin.ApplyStringExtensions (False, plugin.Enabled)
+            if plugin.Enabled:
+                plugin.ApplyStringExtensions (False, True)
 
         # Sort restricted string settings
         for name, pluginItem in self.plugins.items ():

commit 0706e97d82fb163c4e7bf740ce55418d9f150d72
Author: Erkin Bahceci <erkinbah@gmail.com>
Date:   Sun Aug 31 12:31:22 2008 -0500

    Apply self extensions also when base plugin is disabled.
    
    Because of this, the restricted string options of a disabled base plugin
    that "extends" itself (e.g. animation plugin) were displayed as regular
    string options in ccsm. This fixes that.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index 85919f1..51c102b 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -783,8 +783,7 @@ cdef class Plugin:
 
         self.loaded = True
 
-        if self.Enabled:
-            self.ApplyStringExtensions ()
+        self.ApplyStringExtensions (True, self.Enabled)
         self.SortStringSettings ()
 
     def SortStringSettings (self):
@@ -843,7 +842,7 @@ cdef class Plugin:
         else:
             setting.info = (itemsByName, itemsByValue, sortedItems)
 
-    def ApplyStringExtensions (self, sortBaseSetting = True):
+    def ApplyStringExtensions (self, sortBaseSetting, extendOthersToo):
         cdef CCSStrExtensionList * extList
         cdef CCSStrExtension * ext
         cdef char * baseSettingName
@@ -859,6 +858,11 @@ cdef class Plugin:
         while extList:
             ext = <CCSStrExtension *> extList.data
 
+            # If not extending others and extension base is not self, skip
+            if not (extendOthersToo or ext.basePlugin == self.Name):
+                extList = extList.next
+                continue
+
             basePlugin = self.context.Plugins[ext.basePlugin]
 
             baseSettingList = ext.baseSettings
@@ -1155,13 +1159,12 @@ cdef class Context:
             if plugin.hasExtendedString:
                 plugin.Update ()
 
-        # Apply enum extensions
+        # Apply restricted string extensions
         for name, pluginItem in self.plugins.items ():
             plugin = pluginItem
-            if plugin.Enabled:
-                plugin.ApplyStringExtensions (False)
+            plugin.ApplyStringExtensions (False, plugin.Enabled)
 
-        # Sort enum settings
+        # Sort restricted string settings
         for name, pluginItem in self.plugins.items ():
             plugin = pluginItem
             if plugin.Enabled and plugin.hasExtendedString:

commit 6a6bfb783626da0362dfa934b8da94aa35e58836
Author: Erkin Bahceci <erkinbah@gmail.com>
Date:   Wed Aug 27 00:12:27 2008 -0500

    Add support for restricted string options and extensions.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index d306a88..85919f1 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -20,6 +20,9 @@ Authors:
 Copyright (C) 2007 Quinn Storm
 '''
 
+import operator
+StringSettingKeyFunc = operator.itemgetter (1)
+
 ctypedef unsigned int Bool
 
 cdef enum CCSSettingType:
@@ -85,6 +88,8 @@ ctypedef CCSList CCSPluginConflictList
 ctypedef CCSList CCSSettingValueList
 ctypedef CCSList CCSBackendInfoList
 ctypedef CCSList CCSIntDescList
+ctypedef CCSList CCSStrRestrictionList
+ctypedef CCSList CCSStrExtensionList
 
 cdef struct CCSBackendInfo:
     char *    name
@@ -129,6 +134,10 @@ cdef struct CCSIntDesc:
     int    value
     char * name
 
+cdef struct CCSStrRestriction:
+    char * value
+    char * name
+
 cdef struct CCSSettingIntInfo:
     int              min
     int              max
@@ -139,6 +148,11 @@ cdef struct CCSSettingFloatInfo:
     float max
     float precision
 
+cdef struct CCSSettingStringInfo:
+    CCSStrRestrictionList * restriction
+    int                     sortStartsAt
+    Bool                    extensible
+
 cdef struct CCSSettingListInfo:
     CCSSettingType listType
     void *         listInfo # actually CCSSettingInfo *, works around pyrex
@@ -149,6 +163,7 @@ cdef struct CCSSettingActionInfo:
 cdef union CCSSettingInfo:
     CCSSettingIntInfo    forInt
     CCSSettingFloatInfo  forFloat
+    CCSSettingStringInfo forString
     CCSSettingListInfo   forList
     CCSSettingActionInfo forAction
 
@@ -207,6 +222,12 @@ cdef struct CCSSetting:
     CCSPlugin * parent
     void *      priv
 
+cdef struct CCSStrExtension:
+    char *                  basePlugin
+    CCSSettingList *        baseSettings
+    CCSStrRestrictionList * restriction
+    Bool                    isScreen
+
 cdef struct CCSPlugin:
     char * name
     char * shortDesc
@@ -332,6 +353,8 @@ cdef extern CCSPluginConflictList * ccsCanDisablePlugin (CCSContext * c,
 cdef extern Bool ccsPluginSetActive (CCSPlugin * p, Bool v)
 cdef extern Bool ccsPluginIsActive (CCSContext * c, char * n)
 
+cdef extern CCSStrExtensionList * ccsGetPluginStrExtensions (CCSPlugin * plugin)
+
 cdef class Context
 cdef class Plugin
 cdef class Setting
@@ -422,6 +445,18 @@ cdef object IntDescListToDict (CCSIntDescList * intDescList):
         intDescList = intDescList.next
     return dict
 
+cdef object StrRestrictionListToDict (CCSStrRestrictionList * restrictionList,
+                                      object initialDict):
+    cdef CCSStrRestriction * restriction
+    dict = initialDict
+    listOfAddedItems = []
+    while restrictionList:
+        restriction = <CCSStrRestriction *> restrictionList.data
+        dict[restriction.name] = restriction.value
+        listOfAddedItems.append ((restriction.name, restriction.value))
+        restrictionList = restrictionList.next
+    return (dict, listOfAddedItems)
+
 cdef CCSSettingValue * EncodeValue (object       data,
                                     CCSSetting * setting,
                                     Bool         isListChild):
@@ -543,6 +578,8 @@ cdef class Setting:
     cdef CCSSetting * ccsSetting
     cdef object info
     cdef Plugin plugin
+    cdef object extendedStrRestrictions
+    cdef object baseStrRestrictions
 
     def __new__ (self, Plugin plugin, name, isScreen, screenNum = 0):
         cdef CCSSettingType t
@@ -551,6 +588,9 @@ cdef class Setting:
         self.ccsSetting = ccsFindSetting (plugin.ccsPlugin,
                                           name, isScreen, screenNum)
         self.plugin = plugin
+
+        self.extendedStrRestrictions = None
+        self.baseStrRestrictions = None
         info = ()
         t = self.ccsSetting.type
         i = &self.ccsSetting.info
@@ -563,6 +603,11 @@ cdef class Setting:
         elif t == TypeFloat:
             info = (i.forFloat.min, i.forFloat.max,
                     i.forFloat.precision)
+        elif t == TypeString:
+            # info is filled later in Plugin.SortSingleStringSetting
+            info = ({}, {}, [])
+            self.baseStrRestrictions = []
+            self.extendedStrRestrictions = {}
         elif t in (TypeKey, TypeButton, TypeEdge, TypeBell):
             info = (bool (i.forAction.internal),)
         if self.ccsSetting.type == TypeList:
@@ -666,6 +711,7 @@ cdef class Plugin:
     cdef object groups
     cdef object loaded
     cdef object ranking
+    cdef object hasExtendedString
     
     def __new__ (self, Context context, name):
         self.ccsPlugin = ccsFindPlugin (context.ccsContext, name)
@@ -675,6 +721,8 @@ cdef class Plugin:
         self.groups = {}
         self.loaded = False
         self.ranking = {}
+        self.hasExtendedString = False
+
         for n in range (0, context.NScreens):
             self.screens.append ({})
 
@@ -685,6 +733,8 @@ cdef class Plugin:
         cdef CCSSetting * sett
         cdef CCSGroup * gr
         cdef CCSSubGroup * sgr
+        cdef CCSSettingType t
+        cdef CCSSettingInfo * i
 
         glist = ccsGetPluginGroups (self.ccsPlugin)
         while glist != NULL:
@@ -700,7 +750,8 @@ cdef class Plugin:
                 sglist = sglist.next
             glist = glist.next
         setlist = ccsGetPluginSettings (self.ccsPlugin)
-        
+
+        self.hasExtendedString = False
         rank = 0
         while setlist != NULL:
             sett = <CCSSetting *> setlist.data
@@ -716,6 +767,14 @@ cdef class Plugin:
                 self.display[sett.name] = setting
                 subgroup.Display[sett.name] = setting
 
+            t = sett.type
+            i = &sett.info
+            if t == TypeList:
+                t = i.forList.listType
+                i = <CCSSettingInfo *> i.forList.listInfo
+            if t == TypeString and i.forString.extensible:
+                self.hasExtendedString = True
+
             if not self.ranking.has_key (sett.name):
                 self.ranking[sett.name] = rank
                 rank = rank + 1
@@ -724,6 +783,137 @@ cdef class Plugin:
 
         self.loaded = True
 
+        if self.Enabled:
+            self.ApplyStringExtensions ()
+        self.SortStringSettings ()
+
+    def SortStringSettings (self):
+        for i in xrange (self.context.nScreens):
+            for name, setting in self.Screens[i].items ():
+                self.SortSingleStringSetting (setting)
+        for name, setting in self.Display.items ():
+            self.SortSingleStringSetting (setting)
+
+    def SortSingleStringSetting (self, Setting setting):
+        cdef CCSSettingType t
+        cdef CCSSettingInfo * i
+
+        t = setting.ccsSetting.type
+        i = &setting.ccsSetting.info
+        if t == TypeList:
+            t = i.forList.listType
+            i = <CCSSettingInfo *> i.forList.listInfo
+        if t != TypeString or i.forString.sortStartsAt < 0:
+            return
+
+        (itemsByName, listOfAddedItems) = \
+            StrRestrictionListToDict (i.forString.restriction,
+                                      setting.extendedStrRestrictions)
+
+        # Let base string restrictions be the ones given in the option metadata
+        # in the base plugin plus the ones found in the extensions in the same
+        # plugin.
+        setting.baseStrRestrictions = \
+            listOfAddedItems + setting.baseStrRestrictions
+
+        if i.forString.sortStartsAt == 0:
+            # Sort all items by value
+            sortedItems = sorted (itemsByName.items (),
+                                  key=StringSettingKeyFunc)
+        else:
+            # Sort first sortStartsAt many items by value and
+            # the remaining ones by name
+            itemsNotSorted = \
+                setting.baseStrRestrictions[:i.forString.sortStartsAt]
+            itemsNotSortedSet = set (itemsNotSorted)
+            allItemsSet = set (itemsByName.items ())
+            itemsSortedByName = sorted (list (allItemsSet - itemsNotSortedSet),
+                                        key=operator.itemgetter (0))
+            sortedItems = itemsNotSorted + itemsSortedByName
+
+        itemsByValue = {}
+        for (index, (name, value)) in enumerate (sortedItems):
+            itemsByValue[value] = (name, index)
+
+        # Insert itemsByName and sortedItems into setting.info
+        if setting.ccsSetting.type == TypeList:
+            setting.info = (setting.info[0], (itemsByName,
+                                              itemsByValue,
+                                              sortedItems))
+        else:
+            setting.info = (itemsByName, itemsByValue, sortedItems)
+
+    def ApplyStringExtensions (self, sortBaseSetting = True):
+        cdef CCSStrExtensionList * extList
+        cdef CCSStrExtension * ext
+        cdef char * baseSettingName
+        cdef CCSStringList * baseSettingList
+        cdef CCSSettingType t
+        cdef CCSSettingInfo * i
+        cdef CCSStrRestrictionList * restrictionList
+        cdef CCSStrRestriction * restriction
+        cdef Plugin basePlugin
+        cdef Setting setting
+
+        extList = ccsGetPluginStrExtensions (self.ccsPlugin)
+        while extList:
+            ext = <CCSStrExtension *> extList.data
+
+            basePlugin = self.context.Plugins[ext.basePlugin]
+
+            baseSettingList = ext.baseSettings
+            while baseSettingList:
+                baseSettingName = <char *> baseSettingList.data
+
+                if ext.isScreen:
+                    settings = []
+                    for x in xrange (self.context.nScreens):
+                        settings.append (basePlugin.Screens[x][baseSettingName])
+                else:
+                    settings = [basePlugin.Display[baseSettingName]]
+
+                for settingItem in settings:
+                    setting = settingItem
+                    t = setting.ccsSetting.type
+                    i = &setting.ccsSetting.info
+                    if t == TypeList:
+                        t = i.forList.listType
+                        i = <CCSSettingInfo *> i.forList.listInfo
+                    if not (t == TypeString and i.forString.extensible):
+                        return
+
+                    restrictionList = ext.restriction
+
+                    # Add each item in restriction list to the setting
+                    while restrictionList != NULL:
+                        restriction = <CCSStrRestriction *> restrictionList.data
+                        setting.extendedStrRestrictions[restriction.name] = \
+                            restriction.value
+                        if ext.basePlugin == self.Name:
+                            setting.baseStrRestrictions.append ((restriction.name,
+                                                                 restriction.value))
+                        restrictionList = restrictionList.next
+
+                    if sortBaseSetting:
+                        basePlugin.SortSingleStringSetting (setting)
+
+                baseSettingList = baseSettingList.next
+
+            extList = extList.next
+
+    def GetExtensionBasePlugins (self):
+        cdef CCSStrExtensionList * extList
+        cdef CCSStrExtension * ext
+
+        basePlugins = set ([])
+        extList = ccsGetPluginStrExtensions (self.ccsPlugin)
+        while extList:
+            ext = <CCSStrExtension *> extList.data
+            basePlugins.add (self.context.Plugins[ext.basePlugin])
+            extList = extList.next
+
+        return list (basePlugins)
+
     property Context:
         def __get__ (self):
             return self.context
@@ -956,6 +1146,27 @@ cdef class Context:
         
         self.UpdateProfiles ()
 
+    def UpdateExtensiblePlugins (self):
+        cdef Plugin plugin
+
+        # Reset all extensible plugins
+        for name, pluginItem in self.plugins.items ():
+            plugin = pluginItem
+            if plugin.hasExtendedString:
+                plugin.Update ()
+
+        # Apply enum extensions
+        for name, pluginItem in self.plugins.items ():
+            plugin = pluginItem
+            if plugin.Enabled:
+                plugin.ApplyStringExtensions (False)
+
+        # Sort enum settings
+        for name, pluginItem in self.plugins.items ():
+            plugin = pluginItem
+            if plugin.Enabled and plugin.hasExtendedString:
+                plugin.SortStringSettings ()
+
     def __dealloc__ (self):
         ccsContextDestroy (self.ccsContext)
 

commit 7d3c5281061345a46756d4b1e565d125c680cdd5
Author: Patrick Niklaus <marex@opencompositing.org>
Date:   Wed Jun 11 22:00:04 2008 +0200

    Revert "Changed from __new__ to __cinit__, since __new__ will be deprecated in future pyrex versions."
    
    This reverts commit 9eb76ea82655844152486c896ff5cfa14394925c. It breaks compatibility with pyrex versions older than 0.9.6

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index a3d0a36..d306a88 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -544,7 +544,7 @@ cdef class Setting:
     cdef object info
     cdef Plugin plugin
 
-    def __cinit__ (self, Plugin plugin, name, isScreen, screenNum = 0):
+    def __new__ (self, Plugin plugin, name, isScreen, screenNum = 0):
         cdef CCSSettingType t
         cdef CCSSettingInfo * i
 
@@ -642,7 +642,7 @@ cdef class SSGroup:
     cdef object display
     cdef object screens
 
-    def __cinit__ (self, disp, screen):
+    def __new__ (self, disp, screen):
         self.display = disp
         self.screens = screen
 
@@ -667,7 +667,7 @@ cdef class Plugin:
     cdef object loaded
     cdef object ranking
     
-    def __cinit__ (self, Context context, name):
+    def __new__ (self, Context context, name):
         self.ccsPlugin = ccsFindPlugin (context.ccsContext, name)
         self.context = context
         self.screens = []
@@ -851,7 +851,7 @@ cdef class Profile:
     cdef Context context
     cdef char * name
 
-    def __cinit__ (self, Context context, name):
+    def __new__ (self, Context context, name):
         self.context = context
         self.name = strdup (name)
 
@@ -873,7 +873,7 @@ cdef class Backend:
     cdef Bool profileSupport
     cdef Bool integrationSupport
 
-    def __cinit__ (self, Context context, info):
+    def __new__ (self, Context context, info):
         self.context = context
         self.name = strdup (info[0])
         self.shortDesc = strdup (info[1])
@@ -917,7 +917,7 @@ cdef class Context:
     cdef int nScreens
     cdef Bool integration
 
-    def __cinit__ (self, screens = [0], plugins = [], basic_metadata = False):
+    def __new__ (self, screens = [0], plugins = [], basic_metadata = False):
         cdef CCSPlugin * pl
         cdef CCSList * pll
         if basic_metadata:

commit 9eb76ea82655844152486c896ff5cfa14394925c
Author: Patrick Niklaus <marex@opencompositing.org>
Date:   Sun Jun 8 22:31:20 2008 +0200

    Changed from __new__ to __cinit__, since __new__ will be deprecated in future pyrex versions.

diff --git a/src/compizconfig.pyx b/src/compizconfig.pyx
index d306a88..a3d0a36 100644
--- a/src/compizconfig.pyx
+++ b/src/compizconfig.pyx
@@ -544,7 +544,7 @@ cdef class Setting:
     cdef object info
     cdef Plugin plugin
 
-    def __new__ (self, Plugin plugin, name, isScreen, screenNum = 0):
+    def __cinit__ (self, Plugin plugin, name, isScreen, screenNum = 0):
         cdef CCSSettingType t
         cdef CCSSettingInfo * i
 
@@ -642,7 +642,7 @@ cdef class SSGroup:
     cdef object display
     cdef object screens
 
-    def __new__ (self, disp, screen):
+    def __cinit__ (self, disp, screen):
         self.display = disp
         self.screens = screen
 
@@ -667,7 +667,7 @@ cdef class Plugin:
     cdef object loaded
     cdef object ranking
     
-    def __new__ (self, Context context, name):
+    def __cinit__ (self, Context context, name):
         self.ccsPlugin = ccsFindPlugin (context.ccsContext, name)
         self.context = context
         self.screens = []
@@ -851,7 +851,7 @@ cdef class Profile:
     cdef Context context
     cdef char * name
 
-    def __new__ (self, Context context, name):
+    def __cinit__ (self, Context context, name):
         self.context = context
         self.name = strdup (name)
 
@@ -873,7 +873,7 @@ cdef class Backend:
     cdef Bool profileSupport
     cdef Bool integrationSupport
 
-    def __new__ (self, Context context, info):
+    def __cinit__ (self, Context context, info):
         self.context = context
         self.name = strdup (info[0])
         self.shortDesc = strdup (info[1])
@@ -917,7 +917,7 @@ cdef class Context:
     cdef int nScreens
     cdef Bool integration
 
-    def __new__ (self, screens = [0], plugins = [], basic_metadata = False):
+    def __cinit__ (self, screens = [0], plugins = [], basic_metadata = False):
         cdef CCSPlugin * pl
         cdef CCSList * pll
         if basic_metadata:

commit 3c1a122b32a7efdecae2bdbdc279e957e1aefe63
Author: Guillaume Seguin <guillaume@segu.in>
Date:   Sat May 31 14:09:03 2008 +0200

    * Bump version to 0.7.7

diff --git a/VERSION b/VERSION
index 6410fd5..fce301a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-VERSION=0.7.6
+VERSION=0.7.7


Reply to: