summaryrefslogtreecommitdiff
path: root/x11-wm/compiz-fusion-plugins-extra/files/patch-src-widget-widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/compiz-fusion-plugins-extra/files/patch-src-widget-widget.c')
-rw-r--r--x11-wm/compiz-fusion-plugins-extra/files/patch-src-widget-widget.c288
1 files changed, 0 insertions, 288 deletions
diff --git a/x11-wm/compiz-fusion-plugins-extra/files/patch-src-widget-widget.c b/x11-wm/compiz-fusion-plugins-extra/files/patch-src-widget-widget.c
deleted file mode 100644
index ce64f3ced01f..000000000000
--- a/x11-wm/compiz-fusion-plugins-extra/files/patch-src-widget-widget.c
+++ /dev/null
@@ -1,288 +0,0 @@
---- src/widget/widget.c.orig 2007-08-24 18:24:42.000000000 -0400
-+++ src/widget/widget.c 2007-08-24 18:25:02.000000000 -0400
-@@ -68,7 +68,6 @@
- PreparePaintScreenProc preparePaintScreen;
- DonePaintScreenProc donePaintScreen;
- PaintWindowProc paintWindow;
-- WindowAddNotifyProc windowAddNotify;
-
- WidgetState state;
-
-@@ -82,7 +81,9 @@
- {
- Bool isWidget;
- Bool wasUnmapped;
-+ CompWindow *parentWidget;
- CompTimeoutHandle matchUpdateHandle;
-+ CompTimeoutHandle inferiorUpdateHandle;
- WidgetPropertyState propertyState;
- } WidgetWindow;
-
-@@ -106,6 +107,41 @@
- GET_WIDGET_SCREEN (w->screen, \
- GET_WIDGET_DISPLAY (w->screen->display)))
-
-+static void
-+widgetUpdateTreeStatus (CompWindow *w)
-+{
-+ CompWindow *p;
-+ WidgetWindow *pww;
-+
-+ WIDGET_SCREEN (w->screen);
-+
-+ /* first clear out every reference to our window */
-+ for (p = w->screen->windows; p; p = p->next)
-+ {
-+ pww = GET_WIDGET_WINDOW (p, ws);
-+ if (pww->parentWidget == w)
-+ pww->parentWidget = NULL;
-+ }
-+
-+ for (p = w->screen->windows; p; p = p->next)
-+ {
-+ Window clientLeader;
-+
-+ if (p->attrib.override_redirect)
-+ clientLeader = getClientLeader (p);
-+ else
-+ clientLeader = p->clientLeader;
-+
-+ if ((clientLeader == w->clientLeader) && (w->id != p->id))
-+ {
-+ WIDGET_SCREEN (w->screen);
-+
-+ pww = GET_WIDGET_WINDOW (p, ws);
-+ pww->parentWidget = w;
-+ }
-+ }
-+}
-+
- static Bool
- widgetUpdateWidgetStatus (CompWindow *w)
- {
-@@ -131,7 +167,7 @@
- return retval;
- }
-
--static void
-+static Bool
- widgetUpdateWidgetPropertyState (CompWindow *w)
- {
- CompDisplay *d = w->screen->display;
-@@ -144,7 +180,7 @@
- WIDGET_WINDOW (w);
-
- result = XGetWindowProperty (d->display, w->id, wd->compizWidgetAtom,
-- 0, 1L, FALSE, XA_CARDINAL, &retType,
-+ 0, 1L, FALSE, AnyPropertyType, &retType,
- &format, &nitems, &remain, &data);
-
- if (result == Success && nitems && data)
-@@ -159,7 +195,7 @@
- else
- ww->propertyState = PropertyNotSet;
-
-- widgetUpdateWidgetStatus (w);
-+ return widgetUpdateWidgetStatus (w);
- }
-
- static void
-@@ -271,6 +307,8 @@
- map = !ww->isWidget || (ws->state != StateOff);
- widgetUpdateWidgetMapState (w, map);
-
-+ widgetUpdateTreeStatus (w);
-+
- (*d->matchPropertyChanged) (d, w);
- }
- }
-@@ -295,19 +333,13 @@
-
- switch (ws->state) {
- case StateOff:
-+ case StateFadeOut:
- widgetSetWidgetLayerMapState (s, TRUE);
- ws->fadeTime = 1000.0f * widgetGetFadeTime (s);
- ws->state = StateFadeIn;
- break;
-- case StateFadeIn:
-- ws->fadeTime = (1000.0f * widgetGetFadeTime (s)) - ws->fadeTime;
-- ws->state = StateFadeOut;
-- break;
-- case StateFadeOut:
-- ws->fadeTime = (1000.0f * widgetGetFadeTime (s)) - ws->fadeTime;
-- ws->state = StateFadeIn;
-- break;
- case StateOn:
-+ case StateFadeIn:
- widgetSetWidgetLayerMapState (s, FALSE);
- ws->fadeTime = 1000.0f * widgetGetFadeTime (s);
- ws->state = StateFadeOut;
-@@ -345,8 +377,33 @@
- w = findWindowAtDisplay (d, event->xproperty.window);
- if (w)
- {
-- widgetUpdateWidgetPropertyState (w);
-- (*d->matchPropertyChanged) (d, w);
-+ if (widgetUpdateWidgetPropertyState (w))
-+ {
-+ Bool map;
-+
-+ WIDGET_SCREEN (w->screen);
-+ WIDGET_WINDOW (w);
-+
-+ map = !ww->isWidget || (ws->state != StateOff);
-+ widgetUpdateWidgetMapState (w, map);
-+ widgetUpdateTreeStatus (w);
-+ (*d->matchPropertyChanged) (d, w);
-+ }
-+ }
-+ }
-+ else if (event->xproperty.atom == d->wmClientLeaderAtom)
-+ {
-+ CompWindow *w;
-+
-+ w = findWindowAtDisplay (d, event->xproperty.window);
-+ if (w)
-+ {
-+ WIDGET_WINDOW (w);
-+
-+ if (ww->isWidget)
-+ widgetUpdateTreeStatus (w);
-+ else if (ww->parentWidget)
-+ widgetUpdateTreeStatus (ww->parentWidget);
- }
- }
- break;
-@@ -368,7 +425,7 @@
- {
- WIDGET_WINDOW (w);
-
-- if (!ww->isWidget)
-+ if (!ww->isWidget && !ww->parentWidget)
- {
- CompOption o;
-
-@@ -409,12 +466,54 @@
- WIDGET_WINDOW (w);
-
- if (widgetUpdateWidgetStatus (w))
-+ {
-+ widgetUpdateTreeStatus (w);
- (*w->screen->display->matchPropertyChanged) (w->screen->display, w);
-+ }
-
- ww->matchUpdateHandle = 0;
- return FALSE;
- }
-
-+static Bool
-+widgetUpdateInferiors (void *closure)
-+{
-+ CompWindow *w = (CompWindow *) closure;
-+ Window clientLeader;
-+
-+ WIDGET_WINDOW (w);
-+
-+ if (w->attrib.override_redirect)
-+ clientLeader = getClientLeader (w);
-+ else
-+ clientLeader = w->clientLeader;
-+
-+ if (ww->isWidget)
-+ {
-+ widgetUpdateTreeStatus (w);
-+ }
-+ else if (clientLeader)
-+ {
-+ CompWindow *lw;
-+
-+ lw = findWindowAtScreen (w->screen, clientLeader);
-+ if (lw)
-+ {
-+ WidgetWindow *lww;
-+
-+ WIDGET_SCREEN (w->screen);
-+ lww = GET_WIDGET_WINDOW (lw, ws);
-+
-+ if (lww->isWidget)
-+ ww->parentWidget = lw;
-+ else if (lww->parentWidget)
-+ ww->parentWidget = lww->parentWidget;
-+ }
-+ }
-+
-+ ww->inferiorUpdateHandle = 0;
-+ return FALSE;
-+}
-
- static void
- widgetMatchPropertyChanged (CompDisplay *d,
-@@ -435,20 +534,6 @@
- WRAP (wd, d, matchPropertyChanged, widgetMatchPropertyChanged);
- }
-
--static void
--widgetWindowAddNotify (CompWindow *w)
--{
-- WIDGET_SCREEN (w->screen);
-- WIDGET_WINDOW (w);
--
-- if (ww->isWidget)
-- widgetUpdateWidgetMapState (w, (ws->state != StateOff));
--
-- UNWRAP (ws, w->screen, windowAddNotify);
-- (*w->screen->windowAddNotify) (w);
-- WRAP (ws, w->screen, windowAddNotify, widgetWindowAddNotify);
--}
--
- static Bool
- widgetPaintWindow (CompWindow *w,
- const WindowPaintAttrib *attrib,
-@@ -478,7 +563,7 @@
- fadeProgress = 1.0f - fadeProgress;
- }
-
-- if (!ww->isWidget)
-+ if (!ww->isWidget && !ww->parentWidget)
- {
- float progress;
-
-@@ -572,6 +657,7 @@
- map = !ww->isWidget || (ws->state != StateOff);
- widgetUpdateWidgetMapState (w, map);
-
-+ widgetUpdateTreeStatus (w);
- (*s->display->matchPropertyChanged) (s->display, w);
- }
- }
-@@ -700,12 +786,18 @@
- return FALSE;
-
- ww->isWidget = FALSE;
-+ ww->parentWidget = NULL;
- ww->wasUnmapped = FALSE;
- ww->matchUpdateHandle = 0;
-+ ww->inferiorUpdateHandle = 0;
-
- w->privates[ws->windowPrivateIndex].ptr = ww;
-
-- widgetUpdateWidgetPropertyState (w);
-+ if (widgetUpdateWidgetPropertyState (w))
-+ widgetUpdateWidgetMapState (w, (ws->state != StateOff));
-+
-+ ww->inferiorUpdateHandle = compAddTimeout (0, widgetUpdateInferiors,
-+ (void *) w);
-
- return TRUE;
- }
-@@ -722,6 +814,9 @@
- if (ww->matchUpdateHandle)
- compRemoveTimeout (ww->matchUpdateHandle);
-
-+ if (ww->inferiorUpdateHandle)
-+ compRemoveTimeout (ww->inferiorUpdateHandle);
-+
- free (ww);
- }
-