rem: int level = (int)event->xclient.data.l[0];
add: int level = (int)event->xclient.data.l[1];
context: handleClientMessage(XEvent *event){    WWindow *wwin;    WObjDescriptor *desc;#ifdef DEBUG    L("got client message");#endif    /* handle transition from Normal to Iconic state */    if (event->xclient.message_type == _XA_WM_CHANGE_STATE	&& event->xclient.format == 32 	&& event->xclient.data.l[0] == IconicState) {		wwin = wWindowFor(event->xclient.window);	if (!wwin) return;	if (!wwin->flags.miniaturized)	    wIconifyWindow(wwin);    } else if (event->xclient.message_type == _XA_WM_COLORMAP_NOTIFY	       && event->xclient.format == 32) {	WScreen *scr = wScreenSearchForRootWindow(event->xclient.window);	if (!scr)	    return;	if (event->xclient.data.l[1] == 1) {   /* starting */	    wColormapAllowClientInstallation(scr, True);	} else {		       /* stopping */	    wColormapAllowClientInstallation(scr, False);	}    } else if (event->xclient.message_type == _XA_WINDOWMAKER_COMMAND) {	wDefaultsCheckDomains("bla");    } else if (event->xclient.message_type == _XA_WINDOWMAKER_WM_FUNCTION) {	WApplication *wapp;	int done=0;	wapp = wApplicationOf(event->xclient.window);	if (wapp) {	    switch (event->xclient.data.l[0]) {	     case WMFHideOtherApplications:		wHideOtherApplications(wapp->main_window_desc);		done = 1;		break;	     case WMFHideApplication:		wHideApplication(wapp);		done = 1;		break;	    }	}	if (!done) {	    wwin = wWindowFor(event->xclient.window);	    if (wwin) {		switch (event->xclient.data.l[0]) {		 case WMFHideOtherApplications:		    wHideOtherApplications(wwin);		    break;		 case WMFHideApplication:		    wHideApplication(wApplicationOf(wwin->main_window));		    break;		}	    }	}    } else if (event->xclient.message_type == _XA_GNUSTEP_WM_ATTR) {	wwin = wWindowFor(event->xclient.window);	if (!wwin) return;	switch (event->xclient.data.l[0]) {	 case GSWindowLevelAttr:	   {	     int level = (int)event->xclient.data.l[0];	     if (WINDOW_LEVEL(wwin) != level) {	       ChangeStackingLevel(wwin->frame->core, level);	     }	   }	   break;	}    } else if (event->xclient.message_type == _XA_GNUSTEP_TITLEBAR_STATE) {	wwin = wWindowFor(event->xclient.window);	if (!wwin) return;	switch (event->xclient.data.l[0]) {	 case WMTitleBarNormal:	    wFrameWindowChangeState(wwin->frame, WS_UNFOCUSED);	    break;	 case WMTitleBarMain:	    wFrameWindowChangeState(wwin->frame, WS_PFOCUSED);	    break;	 case WMTitleBarKey:	    wFrameWindowChangeState(wwin->frame, WS_FOCUSED);	    break;	}#ifdef GNOME_STUFF    } else if (wGNOMEProcessClientMessage(&event->xclient)) {	/* do nothing */#endif /* GNOME_STUFF */#ifdef KWM_HINTS    } else if (wKWMProcessClientMessage(&event->xclient)) {	/* do nothing */#endif /* KWM_HINTS */#ifdef XDND    } else if (wXDNDProcessClientMessage(&event->xclient)) {	/* do nothing */#endif /* XDND */#ifdef OFFIX_DND    } else if (event->xclient.message_type==_XA_DND_PROTOCOL) {	WScreen *scr = wScreenForWindow(event->xclient.window);        if (scr && wDockReceiveDNDDrop(scr,event))	    goto redirect_message;#endif /* OFFIX_DND */    } else {#ifdef OFFIX_DND     redirect_message:#endif	/*	 * Non-standard thing, but needed by OffiX DND.	 * For when the icon frame gets a ClientMessage	 * that should have gone to the icon_window.	 */	if (XFindContext(dpy, event->xbutton.window, wWinContext, 			 (XPointer *)&desc)!=XCNOENT) {	    struct WIcon *icon=NULL;	    if (desc->parent_type == WCLASS_MINIWINDOW) {		icon = (WIcon*)desc->parent;	    } else if (desc->parent_type == WCLASS_DOCK_ICON		     || desc->parent_type == WCLASS_APPICON) {		icon = ((WAppIcon*)desc->parent)->icon;	    }	    if (icon && (wwin=icon->owner)) {		if (wwin->client_win!=event->xclient.window) {		    event->xclient.window = wwin->client_win;		    XSendEvent(dpy, wwin->client_win, False, NoEventMask, 			       event);		}	    }	}    }}