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
|
# 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
|
Name: compiz
|
||||||
URL: http://www.go-compiz.org
|
URL: http://www.go-compiz.org
|
||||||
License: X11/MIT/GPL
|
License: X11/MIT/GPL
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
Version: 0.7.2
|
Version: 0.7.2
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
|
|
||||||
Summary: OpenGL window and compositing manager
|
Summary: OpenGL window and compositing manager
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
@ -56,6 +56,7 @@ Patch103: composite-cube-logo.patch
|
|||||||
Patch105: fedora-logo.patch
|
Patch105: fedora-logo.patch
|
||||||
Patch106: redhat-logo.patch
|
Patch106: redhat-logo.patch
|
||||||
#Patch110: scale-key.patch
|
#Patch110: scale-key.patch
|
||||||
|
Patch111: gconf-core-plugin-loopfix.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Compiz is one of the first OpenGL-accelerated compositing window
|
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
|
%patch106 -p1 -b .redhat-logo
|
||||||
%endif
|
%endif
|
||||||
#%patch110 -p1 -b .scale-key
|
#%patch110 -p1 -b .scale-key
|
||||||
|
%patch111 -p1 -b .gconf-core-loop
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -317,6 +319,11 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* 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)
|
- Reword kde-desktop-effects messages to mention Compiz by name (#438883)
|
||||||
|
|
||||||
|
61
gconf-core-plugin-loopfix.patch
Normal file
61
gconf-core-plugin-loopfix.patch
Normal file
@ -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
Block a user