diff --git a/widget.c b/widget.c index 3c782c4..58e2757 100644 --- a/widget.c +++ b/widget.c @@ -161,6 +161,9 @@ widgetUpdateWidgetStatus (CompWindow *w) break; } + printf ("update widget status for %d, property %d, widget %d (was %d)\n", + w->id, ww->propertyState, isWidget, ww->isWidget); + retval = (!isWidget && ww->isWidget) || (isWidget && !ww->isWidget); ww->isWidget = isWidget; @@ -183,9 +186,14 @@ widgetUpdateWidgetPropertyState (CompWindow *w) 0, 1L, FALSE, AnyPropertyType, &retType, &format, &nitems, &remain, &data); - if (result == Success && nitems && data) + printf("get widget prop for %d: result %d, nitems %d, data %p\n", w->id, + result, nitems, data); + + if (result == Success && nitems && data && format == 32) { - if (*data) + unsigned long int *retData = (unsigned long int *) data; + printf("data is %i %i\n", *data, *retData); + if (*retData) ww->propertyState = PropertyWidget; else ww->propertyState = PropertyNoWidget; @@ -206,6 +214,7 @@ widgetUpdateWidgetMapState (CompWindow *w, if (map && ww->wasUnmapped) { + printf ("mapping %d %x\n", w->id, w->state); XMapWindow (w->screen->display->display, w->id); raiseWindow (w); ww->wasUnmapped = FALSE; @@ -217,7 +226,9 @@ widgetUpdateWidgetMapState (CompWindow *w, widget mode which aren't supposed to be unmapped */ if (w->attrib.map_state == IsViewable) { + printf("%d %d\n", w->managed, w->mapNum); XUnmapWindow (w->screen->display->display, w->id); + printf ("unmapping %d\n", w->id); ww->wasUnmapped = TRUE; } } @@ -331,6 +342,7 @@ widgetToggle (CompDisplay *d, { WIDGET_SCREEN (s); + printf ("toggling widget mode, old state %d\n", ws->state); switch (ws->state) { case StateOff: case StateFadeOut: @@ -349,6 +361,8 @@ widgetToggle (CompDisplay *d, if (!ws->grabIndex) ws->grabIndex = pushScreenGrab (s, ws->cursor, "widget"); + printf ("new state %d, fadetime %d, grabIndex %d\n", + ws->state, ws->fadeTime, ws->grabIndex); damageScreen (s); return TRUE; @@ -377,6 +391,7 @@ widgetHandleEvent (CompDisplay *d, w = findWindowAtDisplay (d, event->xproperty.window); if (w) { + printf("widget property change for %d\n", w->id); if (widgetUpdateWidgetPropertyState (w)) { Bool map; @@ -487,6 +502,8 @@ widgetUpdateStatus (void *closure) if (widgetUpdateWidgetPropertyState (w)) widgetUpdateWidgetMapState (w, (ws->state != StateOff)); + printf("window %d %s init, isWidget %d\n", w->id, w->resName, ww->isWidget); + if (w->attrib.override_redirect) clientLeader = getClientLeader (w); else