rem: XkbSelectEvents(dpy,XkbUseCoreKbd,XkbIndicatorStateNotifyMask, XkbIndicatorStateNotifyMask);
add: XkbSelectEventDetails(dpy,XkbUseCoreKbd,XkbIndicatorStateNotify, XkbIndicatorStateNotifyMask, XkbIndicatorStateNotifyMask);
context: wScreenInit(int screen_number){    WScreen *scr;    XIconSize icon_size[1];    RContextAttributes rattr;    extern int wVisualID;    long event_mask;    WMColor *color;    XErrorHandler oldHandler;    scr = wmalloc(sizeof(WScreen));    memset(scr, 0, sizeof(WScreen));    /* initialize globals */    scr->screen = screen_number;    scr->root_win = RootWindow(dpy, screen_number);    scr->depth = DefaultDepth(dpy, screen_number);    scr->colormap = DefaultColormap(dpy, screen_number);    scr->scr_width = WidthOfScreen(ScreenOfDisplay(dpy, screen_number));    scr->scr_height = HeightOfScreen(ScreenOfDisplay(dpy, screen_number));    scr->usableArea.x2 = scr->scr_width;    scr->usableArea.y2 = scr->scr_height;    scr->totalUsableArea.x2 = scr->scr_width;    scr->totalUsableArea.y2 = scr->scr_height;#if 0    if (!aquireManagerSelection(scr)) {	free(scr);	return NULL;    }#endif    CantManageScreen = 0;    oldHandler = XSetErrorHandler((XErrorHandler)alreadyRunningError);    event_mask = EVENT_MASK;    if (wPreferences.disable_root_mouse) {	event_mask &= ~(ButtonPressMask|ButtonReleaseMask);    }        XSelectInput(dpy, scr->root_win, event_mask);#ifdef KEEP_XKB_LOCK_STATUS         XkbSelectEvents(dpy,XkbUseCoreKbd,XkbIndicatorStateNotifyMask,                                            XkbIndicatorStateNotifyMask);#endif /* KEEP_XKB_LOCK_STATUS */    XSync(dpy, False);    XSetErrorHandler(oldHandler);        if (CantManageScreen) {	free(scr);	return NULL;    }    XDefineCursor(dpy, scr->root_win, wCursor[WCUR_DEFAULT]);    /* screen descriptor for raster graphic library */    rattr.flags = RC_RenderMode | RC_ColorsPerChannel;    rattr.render_mode = wPreferences.no_dithering 				? RBestMatchRendering				: RDitheredRendering;    rattr.colors_per_channel = wPreferences.cmap_size;    if (rattr.colors_per_channel<2)	rattr.colors_per_channel = 2;    if (wVisualID>=0) {	rattr.flags |= RC_VisualID;	rattr.visualid = wVisualID;    }    scr->rcontext = RCreateContext(dpy, screen_number, &rattr);    if (!scr->rcontext) {	wwarning(_("could not initialize graphics library context: %s"),		 RMessageForError(RErrorCode));	wAbort(False);    } else {	char **formats;	int i = 0;	formats = RSupportedFileFormats();	if (formats) {	    for (i=0; formats[i]!=NULL; i++) {		if (strcmp(formats[i], "TIFF")==0) {		    scr->flags.supports_tiff = 1;		    break;		}	    }	}    }        scr->w_win = scr->rcontext->drawable;    scr->w_visual = scr->rcontext->visual;    scr->w_depth = scr->rcontext->depth;    scr->w_colormap = scr->rcontext->cmap;    scr->black_pixel = scr->rcontext->black;    scr->white_pixel = scr->rcontext->white;        /* create screen descriptor for WINGs */    scr->wmscreen = WMCreateScreenWithRContext(dpy, screen_number,					       scr->rcontext);    if (!scr->wmscreen) {	wfatal(_("could not do initialization of WINGs widget set"));	return NULL;    }    color = WMGrayColor(scr->wmscreen);    scr->light_pixel = WMColorPixel(color);    WMReleaseColor(color);    color = WMDarkGrayColor(scr->wmscreen);    scr->dark_pixel = WMColorPixel(color);    WMReleaseColor(color);    {	XColor xcol;	/* frame boder color */	wGetColor(scr, FRAME_BORDER_COLOR, &xcol);	scr->frame_border_pixel = xcol.pixel;    }    /* create GCs with default values */    allocGCs(scr);    /* read defaults for this screen */    wReadDefaults(scr, WDWindowMaker->dictionary);    createInternalWindows(scr);#ifdef KWM_HINTS    wKWMInitStuff(scr);#endif#ifdef GNOME_STUFF    wGNOMEInitStuff(scr);#endif#ifdef OLWM_HINTS    wOLWMInitStuff(scr);#endif    /* create initial workspace */    wWorkspaceNew(scr);    /* create shared pixmaps */    createPixmaps(scr);    /* set icon sizes we can accept from clients */    icon_size[0].min_width = 8;    icon_size[0].min_height = 8;    icon_size[0].max_width = wPreferences.icon_size-4;    icon_size[0].max_height = wPreferences.icon_size-4;    icon_size[0].width_inc = 1;    icon_size[0].height_inc = 1;    XSetIconSizes(dpy, scr->root_win, icon_size, 1);    /* setup WindowMaker protocols property in the root window*/    PropSetWMakerProtocols(scr->root_win);    /* setup our noticeboard */    XChangeProperty(dpy, scr->info_window, _XA_WINDOWMAKER_NOTICEBOARD,		    XA_WINDOW, 32, PropModeReplace, 		    (unsigned char*)&scr->info_window, 1);    XChangeProperty(dpy, scr->root_win, _XA_WINDOWMAKER_NOTICEBOARD,		    XA_WINDOW, 32, PropModeReplace, 		    (unsigned char*)&scr->info_window, 1);#ifdef BALLOON_TEXT    /* initialize balloon text stuff */    wBalloonInitialize(scr);#endif    wScreenUpdateUsableArea(scr);#ifndef LITE    /* kluge to load menu configurations at startup */    OpenRootMenu(scr, -10000, -10000, False);    wMenuUnmap(scr->root_menu);#endif    return scr;}