fix gconf busy loop bug
This commit is contained in:
parent
133a12b789
commit
59a8898db7
11
compiz.spec
11
compiz.spec
|
@ -7,14 +7,14 @@
|
|||
|
||||
# List of plugins passed to ./configure. The order is important
|
||||
|
||||
%define plugins glib,gconf,dbus,png,svg,video,screenshot,decoration,clone,place,fade,minimize,move,resize,switcher,scale,plane
|
||||
%define plugins core,glib,gconf,dbus,png,svg,video,screenshot,decoration,clone,place,fade,minimize,move,resize,switcher,scale,plane
|
||||
|
||||
Name: compiz
|
||||
URL: http://www.go-compiz.org
|
||||
License: X11/MIT/GPL
|
||||
Group: User Interface/Desktops
|
||||
Version: 0.7.2
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
|
||||
Summary: OpenGL window and compositing manager
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
@ -56,6 +56,7 @@ Patch103: composite-cube-logo.patch
|
|||
Patch105: fedora-logo.patch
|
||||
Patch106: redhat-logo.patch
|
||||
#Patch110: scale-key.patch
|
||||
Patch111: gconf-core-plugin-loopfix.patch
|
||||
|
||||
%description
|
||||
Compiz is one of the first OpenGL-accelerated compositing window
|
||||
|
@ -122,6 +123,7 @@ and other kde integration related stuff.
|
|||
%patch106 -p1 -b .redhat-logo
|
||||
%endif
|
||||
#%patch110 -p1 -b .scale-key
|
||||
%patch111 -p1 -b .gconf-core-loop
|
||||
|
||||
|
||||
%build
|
||||
|
@ -317,6 +319,11 @@ rm -rf $RPM_BUILD_ROOT
|
|||
|
||||
|
||||
%changelog
|
||||
* Thu Mar 27 2008 Adel Gadllah <adel.gadllah@gmail.com> - 0.7.2-3
|
||||
- Fix gconf plugin loop RH #438794, patch based on
|
||||
older one from Guillaume Seguin
|
||||
- Add core to default plugin list
|
||||
|
||||
* Wed Mar 26 2008 Kevin Kofler <Kevin@tigcc.ticalc.org> - 0.7.2-2
|
||||
- Reword kde-desktop-effects messages to mention Compiz by name (#438883)
|
||||
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
diff -upNr compiz-0.7.2.orign/plugins/gconf.c compiz-0.7.2/plugins/gconf.c
|
||||
--- compiz-0.7.2.orign/plugins/gconf.c 2008-03-06 18:52:26.000000000 +0100
|
||||
+++ compiz-0.7.2/plugins/gconf.c 2008-03-27 19:44:11.000000000 +0100
|
||||
@@ -443,6 +443,46 @@ gconfReadOptionValue (CompObject *o
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+
|
||||
+static void
|
||||
+gconfFixupPluginList (CompOptionValue *value)
|
||||
+{
|
||||
+ unsigned int i, j, length;
|
||||
+ CompOptionValue *new;
|
||||
+
|
||||
+ for (i = 0; i < value->list.nValue; i++)
|
||||
+ if (!strcmp (value->list.value[i].s, "core"))
|
||||
+ break;
|
||||
+
|
||||
+ if (i != value->list.nValue)
|
||||
+ return;
|
||||
+
|
||||
+ puts("fix up list");
|
||||
+ length = value->list.nValue + 1;
|
||||
+
|
||||
+ new = calloc (length, sizeof (CompOptionValue));
|
||||
+
|
||||
+ if (!new)
|
||||
+ return;
|
||||
+
|
||||
+ new[0].s = strdup ("core");
|
||||
+
|
||||
+ j = 1;
|
||||
+
|
||||
+ for (i = 0; i < value->list.nValue; i++)
|
||||
+ {
|
||||
+ if (strcmp (value->list.value[i].s, "core"))
|
||||
+ new[j++].s = strdup (value->list.value[i].s);
|
||||
+ free (value->list.value[i].s);
|
||||
+ }
|
||||
+
|
||||
+ free (value->list.value);
|
||||
+
|
||||
+ value->list.value = new;
|
||||
+ value->list.nValue = length;
|
||||
+}
|
||||
+
|
||||
+
|
||||
static void
|
||||
gconfGetOption (CompObject *object,
|
||||
CompOption *o,
|
||||
@@ -462,6 +502,10 @@ gconfGetOption (CompObject *object,
|
||||
|
||||
if (gconfReadOptionValue (object, entry, o, &value))
|
||||
{
|
||||
+ if (strcmp (plugin, "core") == 0) {
|
||||
+ if (!strcmp (o->name, "active_plugins"))
|
||||
+ gconfFixupPluginList (&value);
|
||||
+ }
|
||||
(*core.setOptionForPlugin) (object, plugin, o->name, &value);
|
||||
compFiniOptionValue (&value, o->type);
|
||||
}
|
Loading…
Reference in New Issue