add: if (aicon->editing) return;
context: iconMouseDown(WObjDescriptor *desc, XEvent *event){    WAppIcon *aicon = desc->parent;    WDock *dock = aicon->dock;    WScreen *scr = aicon->icon->core->screen_ptr;    scr->last_dock = dock;    if (dock->menu->flags.mapped)	wMenuUnmap(dock->menu);    if (IsDoubleClick(scr, event)) {	/* double-click was not in the main clip icon */        if (dock->type != WM_CLIP || aicon->xindex!=0 || aicon->yindex!=0	    || getClipButton(event->xbutton.x, event->xbutton.y)==CLIP_IDLE) {            iconDblClick(desc, event);            return;        }    }        if (dock->type == WM_CLIP && scr->flags.clip_balloon_mapped) {	XUnmapWindow(dpy, scr->clip_balloon);	scr->flags.clip_balloon_mapped = 0;    }    #ifdef DEBUG    puts("handling dock");#endif    if (event->xbutton.button == Button1) {        if (event->xbutton.state & MOD_MASK)            wDockLower(dock);        else            wDockRaise(dock);        if ((event->xbutton.state & ShiftMask) && aicon!=scr->clip_icon &&            dock->type!=WM_DOCK) {            wIconSelect(aicon->icon);            return;        }        if (aicon->yindex==0 && aicon->xindex==0) {            if (getClipButton(event->xbutton.x, event->xbutton.y)!=CLIP_IDLE		&& dock->type==WM_CLIP)                handleClipChangeWorkspace(scr, event);            else                handleDockMove(dock, aicon, event);        } else	    handleIconMove(dock, aicon, event);	    } else if (event->xbutton.button==Button2 && dock->type==WM_CLIP &&               aicon->xindex==0 && aicon->yindex==0) {        openClipWorkspaceMenu(scr, event->xbutton.x_root+2,			      event->xbutton.y_root+2);        if (scr->clip_ws_menu) {            WMenu *menu;	    menu = scr->clip_ws_menu;            desc = &menu->menu->descriptor;            event->xany.send_event = True;            (*desc->handle_mousedown)(desc, event);        }    } else if (event->xbutton.button == Button3) {	openDockMenu(dock, aicon, event);    }}