add: WMAddNotificationObserver(appearanceObserver, icon, WNIconAppearanceSettingsChanged, icon); WMAddNotificationObserver(tileObserver, icon, WNIconTileSettingsChanged, icon);
context: wIconCreate(WWindow *wwin){    WScreen *scr=wwin->screen_ptr;    WIcon *icon;    char *file;    unsigned long vmask = 0;    XSetWindowAttributes attribs;        icon = wmalloc(sizeof(WIcon));    memset(icon, 0, sizeof(WIcon));    icon->core = wCoreCreateTopLevel(scr, wwin->icon_x, wwin->icon_y,				     wPreferences.icon_size, 				     wPreferences.icon_size, 0);        if (wPreferences.use_saveunders) {	vmask |= CWSaveUnder;	attribs.save_under = True;    }    /* a white border for selecting it */    vmask |= CWBorderPixel;    attribs.border_pixel = scr->white_pixel;        XChangeWindowAttributes(dpy, icon->core->window, vmask, &attribs);        /* will be overriden if this is an application icon */    icon->core->descriptor.handle_mousedown = miniwindowMouseDown;    icon->core->descriptor.handle_expose = miniwindowExpose;    icon->core->descriptor.parent_type = WCLASS_MINIWINDOW;    icon->core->descriptor.parent = icon;        icon->core->stacking = wmalloc(sizeof(WStacking));    icon->core->stacking->above = NULL;    icon->core->stacking->under = NULL;    icon->core->stacking->window_level = NORMAL_ICON_LEVEL;    icon->core->stacking->child_of = NULL;    icon->owner = wwin;    if (wwin->wm_hints && (wwin->wm_hints->flags & IconWindowHint)) {	if (wwin->client_win == wwin->main_window) {	    WApplication *wapp;	    /* do not let miniwindow steal app-icon's icon window */	    wapp = wApplicationOf(wwin->client_win);	    if (!wapp || wapp->app_icon==NULL)		icon->icon_win = wwin->wm_hints->icon_window;	} else {	    icon->icon_win = wwin->wm_hints->icon_window;	}    }#ifdef NO_MINIWINDOW_TITLES    icon->show_title = 0;#else    icon->show_title = 1;#endif    icon->image = wDefaultGetImage(scr, wwin->wm_instance, wwin->wm_class);    file = wDefaultGetIconFile(scr, wwin->wm_instance, wwin->wm_class,			       False);    if (file) {        icon->file = wstrdup(file);    }    wGetIconName(dpy, wwin->client_win, &icon->icon_name);    icon->tile_type = TILE_NORMAL;        wIconUpdate(icon);        XFlush(dpy);        return icon;}