rem: wKWMCheckClientHints(wwin, &tmp_level, &tmp_workspace);
add: if (!check) wKWMCheckClientHints(wwin, &tmp_level, &tmp_workspace);
context: wWindowSetupInitialAttributes(WWindow *wwin, int *level, int *workspace){    WScreen *scr = wwin->screen_ptr;    /* sets global default stuff */    wDefaultFillAttributes(scr, wwin->wm_instance, wwin->wm_class,			   &wwin->client_flags, NULL, True);    /*     * Decoration setting is done in this precedence (lower to higher)     * - use global default in the resource database     * - guess some settings     * - use GNUstep/external window attributes     * - set hints specified for the app in the resource DB     *      */    WSETUFLAG(wwin, broken_close, 0);    if (wwin->protocols.DELETE_WINDOW)	WSETUFLAG(wwin, kill_close, 0);    else	WSETUFLAG(wwin, kill_close, 1);    /* transients can't be iconified or maximized */    if (wwin->transient_for) {	WSETUFLAG(wwin, no_miniaturizable, 1);	WSETUFLAG(wwin, no_miniaturize_button, 1);    }    /* if the window can't be resized, remove the resizebar */    if (wwin->normal_hints->flags & (PMinSize|PMaxSize)	&& (wwin->normal_hints->min_width==wwin->normal_hints->max_width)	&& (wwin->normal_hints->min_height==wwin->normal_hints->max_height)) {	WSETUFLAG(wwin, no_resizable, 1);	WSETUFLAG(wwin, no_resizebar, 1);    }        /* set GNUstep window attributes */    if (wwin->wm_gnustep_attr) {	setupGNUstepHints(wwin, wwin->wm_gnustep_attr);	if (wwin->wm_gnustep_attr->flags & GSWindowLevelAttr) {	    switch (wwin->wm_gnustep_attr->window_level) {	     case WMNormalWindowLevel:		*level = WMNormalLevel;		break;	     case WMFloatingWindowLevel:		*level = WMFloatingLevel;		break;	     case WMDockWindowLevel:		*level = WMDockLevel;		break;	     case WMSubmenuWindowLevel:		*level = WMSubmenuLevel;		break;	     case WMMainMenuWindowLevel:		*level = WMMainMenuLevel;		break;	     default:		*level = WMNormalLevel;		break;	    }	} else {	    /* setup defaults */	    *level = WMNormalLevel;	}    } else {	int tmp_workspace = -1;	int tmp_level = -1;	#ifdef MWM_HINTS	wMWMCheckClientHints(wwin);#endif /* MWM_HINTS */#ifdef KWM_HINTS	wKWMCheckClientHints(wwin, &tmp_level, &tmp_workspace);#endif /* KWM_HINTS */	#ifdef GNOME_STUFF	wGNOMECheckClientHints(wwin, &tmp_level, &tmp_workspace);#endif /* GNOME_STUFF */#ifdef OLWM_HINTS	wOLWMCheckClientHints(wwin);#endif /* OLWM_HINTS */	if (tmp_level < 0) {	    if (WFLAGP(wwin, floating))		*level = WMFloatingLevel;	    else if (WFLAGP(wwin, sunken))		*level = WMSunkenLevel;	    else		*level = WMNormalLevel;	} else {	    *level = tmp_level;	}	if (tmp_workspace >= 0) {	    *workspace = tmp_workspace % scr->workspace_count;	}    }    /*     * Set attributes specified only for that window/class.     * This might do duplicate work with the 1st wDefaultFillAttributes().     */    wDefaultFillAttributes(scr, wwin->wm_instance, wwin->wm_class, 			   &wwin->user_flags, &wwin->defined_user_flags,			   False);    /*     * Sanity checks for attributes that depend on other attributes     */    if (wwin->user_flags.no_appicon && wwin->defined_user_flags.no_appicon)	wwin->user_flags.emulate_appicon = 0;    if (wwin->main_window!=None) {	WApplication *wapp = wApplicationOf(wwin->main_window);	if (wapp && !wapp->flags.emulated)	    wwin->user_flags.emulate_appicon = 0;    }        if (wwin->transient_for!=None 	&& wwin->transient_for!=wwin->screen_ptr->root_win)	wwin->user_flags.emulate_appicon = 0;        if (wwin->user_flags.sunken && wwin->defined_user_flags.sunken 	&& wwin->user_flags.floating && wwin->defined_user_flags.floating)	wwin->user_flags.sunken = 0;    WSETUFLAG(wwin, no_shadeable, WFLAGP(wwin, no_titlebar));}