bugfixes
This commit is contained in:
parent
94c6e391d7
commit
a5a9348c1e
|
@ -1 +1,2 @@
|
||||||
compiz-0.7.8.tar.bz2
|
compiz-0.7.8.tar.bz2
|
||||||
|
glx_tfp_test.c
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
diff --git a/plugins/place.c b/plugins/place.c
|
||||||
|
index 596a3a5..fe4c39e 100644
|
||||||
|
--- a/plugins/place.c
|
||||||
|
+++ b/plugins/place.c
|
||||||
|
@@ -1085,21 +1085,35 @@ placeConstrainToWorkarea (CompWindow *w,
|
||||||
|
int *y)
|
||||||
|
{
|
||||||
|
CompWindowExtents extents;
|
||||||
|
+ int width, height;
|
||||||
|
|
||||||
|
extents.left = *x - w->input.left;
|
||||||
|
extents.top = *y - w->input.top;
|
||||||
|
extents.right = *x + w->serverWidth + w->input.right;
|
||||||
|
extents.bottom = *y + w->serverHeight + w->input.bottom;
|
||||||
|
|
||||||
|
+ width = extents.right - extents.left;
|
||||||
|
+ height = extents.bottom - extents.top;
|
||||||
|
+
|
||||||
|
if (extents.left < workArea->x)
|
||||||
|
+ {
|
||||||
|
*x += workArea->x - extents.left;
|
||||||
|
- else if (extents.right > workArea->x + workArea->width)
|
||||||
|
+ }
|
||||||
|
+ else if (width <= workArea->width &&
|
||||||
|
+ extents.right > workArea->x + workArea->width)
|
||||||
|
+ {
|
||||||
|
*x += workArea->x + workArea->width - extents.right;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (extents.top < workArea->y)
|
||||||
|
+ {
|
||||||
|
*y += workArea->y - extents.top;
|
||||||
|
- else if (extents.bottom > workArea->y + workArea->height)
|
||||||
|
+ }
|
||||||
|
+ else if (height <= workArea->height &&
|
||||||
|
+ extents.bottom > workArea->y + workArea->height)
|
||||||
|
+ {
|
||||||
|
*y += workArea->y + workArea->height - extents.bottom;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
diff --git a/src/window.c b/src/window.c
|
||||||
|
index 9d80340..0a217d2 100644
|
||||||
|
--- a/src/window.c
|
||||||
|
+++ b/src/window.c
|
||||||
|
@@ -3142,7 +3142,8 @@ avoidStackingRelativeTo (CompWindow *w)
|
||||||
|
|
||||||
|
/* goes through the stack, top-down until we find a window we should
|
||||||
|
stack above, normal windows can be stacked above fullscreen windows
|
||||||
|
- if aboveFs is TRUE. */
|
||||||
|
+ (and fullscreen windows over others in their layer) if aboveFs
|
||||||
|
+ is TRUE. */
|
||||||
|
static CompWindow *
|
||||||
|
findSiblingBelow (CompWindow *w,
|
||||||
|
Bool aboveFs)
|
||||||
|
@@ -3179,6 +3180,9 @@ findSiblingBelow (CompWindow *w,
|
||||||
|
/* desktop window layer */
|
||||||
|
break;
|
||||||
|
case CompWindowTypeFullscreenMask:
|
||||||
|
+ if (aboveFs)
|
||||||
|
+ return below;
|
||||||
|
+ /* otherwise fall-through */
|
||||||
|
case CompWindowTypeDockMask:
|
||||||
|
/* fullscreen and dock layer */
|
||||||
|
if (below->type & (CompWindowTypeFullscreenMask |
|
||||||
|
@@ -4080,8 +4084,15 @@ raiseWindow (CompWindow *w)
|
||||||
|
{
|
||||||
|
XWindowChanges xwc;
|
||||||
|
int mask;
|
||||||
|
+ Bool aboveFs = FALSE;
|
||||||
|
+
|
||||||
|
+ /* an active fullscreen window should be raised over all other
|
||||||
|
+ windows in its layer */
|
||||||
|
+ if (w->type & CompWindowTypeFullscreenMask)
|
||||||
|
+ if (w->id == w->screen->display->activeWindow)
|
||||||
|
+ aboveFs = TRUE;
|
||||||
|
|
||||||
|
- mask = addWindowStackChanges (w, &xwc, findSiblingBelow (w, FALSE));
|
||||||
|
+ mask = addWindowStackChanges (w, &xwc, findSiblingBelow (w, aboveFs));
|
||||||
|
if (mask)
|
||||||
|
configureXWindow (w, mask, &xwc);
|
||||||
|
}
|
||||||
|
@@ -4194,6 +4205,17 @@ updateWindowAttributes (CompWindow *w,
|
||||||
|
CompWindow *sibling;
|
||||||
|
|
||||||
|
aboveFs = (stackingMode == CompStackingUpdateModeAboveFullscreen);
|
||||||
|
+ if (w->type & CompWindowTypeFullscreenMask)
|
||||||
|
+ {
|
||||||
|
+ /* put active or soon-to-be-active fullscreen windows over
|
||||||
|
+ all others in their layer */
|
||||||
|
+ if (w->id == w->screen->display->activeWindow ||
|
||||||
|
+ stackingMode == CompStackingUpdateModeInitialMap)
|
||||||
|
+ {
|
||||||
|
+ aboveFs = TRUE;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
sibling = findSiblingBelow (w, aboveFs);
|
||||||
|
|
||||||
|
if (sibling &&
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
diff --git a/include/compiz-core.h b/include/compiz-core.h
|
||||||
|
index 5aeb04c..97279ab 100644
|
||||||
|
--- a/include/compiz-core.h
|
||||||
|
+++ b/include/compiz-core.h
|
||||||
|
@@ -220,6 +220,9 @@ extern Bool noDetection;
|
||||||
|
extern Bool useDesktopHints;
|
||||||
|
extern Bool onlyCurrentScreen;
|
||||||
|
|
||||||
|
+extern char **initialPlugins;
|
||||||
|
+extern int nInitialPlugins;
|
||||||
|
+
|
||||||
|
extern int defaultRefreshRate;
|
||||||
|
extern char *defaultTextureFilter;
|
||||||
|
|
||||||
|
diff --git a/src/display.c b/src/display.c
|
||||||
|
index dd4676e..fc3e117 100644
|
||||||
|
--- a/src/display.c
|
||||||
|
+++ b/src/display.c
|
||||||
|
@@ -846,7 +846,7 @@ updatePlugins (CompDisplay *d)
|
||||||
|
{
|
||||||
|
CompOption *o;
|
||||||
|
CompPlugin *p, **pop = 0;
|
||||||
|
- int nPop, i, j;
|
||||||
|
+ int nPop, i, j, k;
|
||||||
|
|
||||||
|
d->dirtyPluginList = FALSE;
|
||||||
|
|
||||||
|
@@ -886,6 +886,30 @@ updatePlugins (CompDisplay *d)
|
||||||
|
free (d->plugin.list.value[d->plugin.list.nValue].s);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ for ( k = 0; k < nInitialPlugins; k++)
|
||||||
|
+ {
|
||||||
|
+ for ( j = 0; j < nPop; j++)
|
||||||
|
+ {
|
||||||
|
+ if (pop[j] && strcmp (pop[j]->vTable->name,
|
||||||
|
+ initialPlugins[k]) == 0)
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if ( j == (nPop - 1))
|
||||||
|
+ {
|
||||||
|
+ p = loadPlugin (initialPlugins[k]);
|
||||||
|
+ if (p)
|
||||||
|
+ {
|
||||||
|
+ if (!pushPlugin (p))
|
||||||
|
+ {
|
||||||
|
+ unloadPlugin (p);
|
||||||
|
+ p = 0;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+
|
||||||
|
for (; i < o->value.list.nValue; i++)
|
||||||
|
{
|
||||||
|
p = 0;
|
||||||
|
diff --git a/src/main.c b/src/main.c
|
||||||
|
index 3784afe..ff982fe 100644
|
||||||
|
--- a/src/main.c
|
||||||
|
+++ b/src/main.c
|
||||||
|
@@ -40,6 +40,9 @@ char *programName;
|
||||||
|
char **programArgv;
|
||||||
|
int programArgc;
|
||||||
|
|
||||||
|
+char **initialPlugins = NULL;
|
||||||
|
+int nInitialPlugins = 0;
|
||||||
|
+
|
||||||
|
char *backgroundImage = NULL;
|
||||||
|
|
||||||
|
REGION emptyRegion;
|
||||||
|
@@ -406,6 +409,11 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
|
ptr += sprintf (ptr, "</default>");
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ initialPlugins = malloc (nPlugin * sizeof (char *));
|
||||||
|
+ memcpy (initialPlugins, plugin, nPlugin * sizeof (char *));
|
||||||
|
+ nInitialPlugins = nPlugin;
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
xmlInitParser ();
|
||||||
|
@@ -455,6 +463,9 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
|
xmlCleanupParser ();
|
||||||
|
|
||||||
|
+ if (initialPlugins != NULL)
|
||||||
|
+ free (initialPlugins);
|
||||||
|
+
|
||||||
|
if (restartSignal)
|
||||||
|
{
|
||||||
|
execvp (programName, programArgv);
|
10
compiz-gtk
10
compiz-gtk
|
@ -1,5 +1,11 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
export LIBGL_ALWAYS_INDIRECT=1
|
export LIBGL_ALWAYS_INDIRECT=1
|
||||||
|
|
||||||
|
/usr/bin/glx_tfp_test
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
gtk-window-decorator &
|
gtk-window-decorator &
|
||||||
exec compiz --ignore-desktop-hints glib gconf $@
|
exec compiz glib gconf $@
|
||||||
|
else
|
||||||
|
exec metacity $@
|
||||||
|
fi
|
||||||
|
|
27
compiz.spec
27
compiz.spec
|
@ -14,7 +14,7 @@ URL: http://www.go-compiz.org
|
||||||
License: GPLv2+ and LGPLv2+ and MIT
|
License: GPLv2+ and LGPLv2+ and MIT
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
Version: 0.7.8
|
Version: 0.7.8
|
||||||
Release: 5%{?dist}
|
Release: 6%{?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)
|
||||||
|
@ -48,6 +48,7 @@ Source1: desktop-effects-%{dialogversion}.tar.bz2
|
||||||
Source2: kde-desktop-effects-%{kde_dialogversion}.tar.bz2
|
Source2: kde-desktop-effects-%{kde_dialogversion}.tar.bz2
|
||||||
Source3: compiz-gtk
|
Source3: compiz-gtk
|
||||||
Source4: compiz-gtk.desktop
|
Source4: compiz-gtk.desktop
|
||||||
|
Source5: glx_tfp_test.c
|
||||||
|
|
||||||
# Make sure that former beryl users still have bling
|
# Make sure that former beryl users still have bling
|
||||||
Obsoletes: beryl-core
|
Obsoletes: beryl-core
|
||||||
|
@ -64,6 +65,13 @@ Patch115: desktop-effects-linguas.patch
|
||||||
# make kde4-window-decorator build against KDE 4.2's libplasma
|
# make kde4-window-decorator build against KDE 4.2's libplasma
|
||||||
Patch120: compiz-0.7.8-kde42.patch
|
Patch120: compiz-0.7.8-kde42.patch
|
||||||
|
|
||||||
|
# backports from git
|
||||||
|
Patch121: compiz-0.7.8-decoration-placement.patch
|
||||||
|
Patch122: compiz-0.7.8-fullscreen-top.patch
|
||||||
|
|
||||||
|
# Make sure configuration plugins never get unloaded
|
||||||
|
Patch123: compiz-0.7.8-pin-initial-plugins.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Compiz is one of the first OpenGL-accelerated compositing window
|
Compiz is one of the first OpenGL-accelerated compositing window
|
||||||
managers for the X Window System. The integration allows it to perform
|
managers for the X Window System. The integration allows it to perform
|
||||||
|
@ -141,6 +149,10 @@ popd
|
||||||
sleep 1
|
sleep 1
|
||||||
touch configure
|
touch configure
|
||||||
|
|
||||||
|
%patch121 -p1 -b .decoration-placement
|
||||||
|
%patch122 -p1 -b .fullscreen-top
|
||||||
|
%patch123 -p1 -b .initial-plugins
|
||||||
|
|
||||||
%build
|
%build
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
@ -167,6 +179,9 @@ export LDFLAGS
|
||||||
|
|
||||||
make %{?_smp_mflags} imagedir=%{_datadir}/pixmaps
|
make %{?_smp_mflags} imagedir=%{_datadir}/pixmaps
|
||||||
|
|
||||||
|
# glx_tfp_test
|
||||||
|
gcc %{SOURCE5} -lX11 -lGLU $RPM_OPT_FLAGS -o glx_tfp_test
|
||||||
|
|
||||||
# desktop-effects
|
# desktop-effects
|
||||||
cd ../desktop-effects-%{dialogversion}
|
cd ../desktop-effects-%{dialogversion}
|
||||||
%configure
|
%configure
|
||||||
|
@ -188,6 +203,7 @@ desktop-file-install --vendor redhat --delete-original \
|
||||||
popd
|
popd
|
||||||
|
|
||||||
install %SOURCE3 $RPM_BUILD_ROOT%{_bindir}
|
install %SOURCE3 $RPM_BUILD_ROOT%{_bindir}
|
||||||
|
install glx_tfp_test $RPM_BUILD_ROOT%{_bindir}
|
||||||
|
|
||||||
desktop-file-install --vendor="" \
|
desktop-file-install --vendor="" \
|
||||||
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
|
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
|
||||||
|
@ -311,6 +327,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
%files gnome -f gnome-files.txt
|
%files gnome -f gnome-files.txt
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
%{_bindir}/compiz-gtk
|
%{_bindir}/compiz-gtk
|
||||||
|
%{_bindir}/glx_tfp_test
|
||||||
%{_bindir}/gtk-window-decorator
|
%{_bindir}/gtk-window-decorator
|
||||||
%{_bindir}/desktop-effects
|
%{_bindir}/desktop-effects
|
||||||
%{_libdir}/window-manager-settings/libcompiz.so
|
%{_libdir}/window-manager-settings/libcompiz.so
|
||||||
|
@ -351,6 +368,14 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 04 2008 Adel Gadllah <adel.gadllah@gmail.com> - 0.7.8-6
|
||||||
|
- Bugfixes from git head:
|
||||||
|
compiz-0.7.8-decoration-placement.patch (RH #218561)
|
||||||
|
compiz-0.7.8-fullscreen-top.patch
|
||||||
|
- Fall back to metacity if GLX_tfp is not present (RH #457816)
|
||||||
|
- Don't allow command line passed (config) plugins to be unloaded
|
||||||
|
- Don't use --ignore-desktop-hints (upstream default now)
|
||||||
|
|
||||||
* Mon Dec 01 2008 Kevin Kofler <Kevin@tigcc.ticalc.org> - 0.7.8-5
|
* Mon Dec 01 2008 Kevin Kofler <Kevin@tigcc.ticalc.org> - 0.7.8-5
|
||||||
- Patch and rebuild for new libplasma, BR plasma-devel
|
- Patch and rebuild for new libplasma, BR plasma-devel
|
||||||
|
|
||||||
|
|
1
sources
1
sources
|
@ -1,3 +1,4 @@
|
||||||
cb8baed2983dec5184f196346f973ad2 compiz-0.7.8.tar.bz2
|
cb8baed2983dec5184f196346f973ad2 compiz-0.7.8.tar.bz2
|
||||||
d56f2f6456fc89b06e1e0d21cab74f55 desktop-effects-0.7.18.tar.bz2
|
d56f2f6456fc89b06e1e0d21cab74f55 desktop-effects-0.7.18.tar.bz2
|
||||||
7a7766f43797239ca0a4a0881d91f646 kde-desktop-effects-0.0.5.tar.bz2
|
7a7766f43797239ca0a4a0881d91f646 kde-desktop-effects-0.0.5.tar.bz2
|
||||||
|
f7e0c4d917659d67a957bf391b525495 glx_tfp_test.c
|
||||||
|
|
Loading…
Reference in New Issue