rem: int item;
add: int item = 0;
context: keyPressHandler(XEvent *event, void *data){    IconPanel *panel = (IconPanel*)data;    char buffer[32];    int count;    KeySym ksym;    int iidx;    int didx;    int item;    WMList *list = NULL;    if (event->type == KeyRelease)        return;    buffer[0] = 0;    count = XLookupString(&event->xkey, buffer, sizeof(buffer), &ksym, NULL);    iidx = WMGetListSelectedItemRow(panel->iconList);    didx = WMGetListSelectedItemRow(panel->dirList);    switch (ksym) {    case XK_Up:        if (iidx > 0)            item = iidx-1;        else            item = iidx;        list = panel->iconList;        break;    case XK_Down:        if (iidx < WMGetListNumberOfRows(panel->iconList) - 1)            item = iidx+1;        else            item = iidx;        list = panel->iconList;        break;    case XK_Home:        item = 0;        list = panel->iconList;        break;    case XK_End:        item = WMGetListNumberOfRows(panel->iconList) - 1;        list = panel->iconList;        break;    case XK_Next:        if (didx < WMGetListNumberOfRows(panel->dirList) - 1)            item = didx + 1;        else            item = didx;        list = panel->dirList;        break;    case XK_Prior:        if (didx > 0)            item = didx - 1;        else            item = 0;        list = panel->dirList;        break;    case XK_Return:        WMPerformButtonClick(panel->okButton);        break;    case XK_Escape:        WMPerformButtonClick(panel->cancelButton);        break;    }    if (list) {        WMSelectListItem(list, item);        WMSetListPosition(list, item - 5);        listCallback(list, panel);    }}