diff -urN cui40/cui.c cui41/cui.c --- cui40/cui.c Fri Jan 31 01:50:00 2014 +++ cui41/cui.c Fri Jan 31 02:10:00 2014 @@ -167,6 +167,7 @@ dx = (cui_gx(o1) + o1->w / 2) - (cui_gx(o2) + o2->w / 2); dy = (cui_gy(o1) + o1->h / 2) - (cui_gy(o2) + o2->h / 2); + dy *= 2; return dx * dx + dy * dy; } diff -urN cui40/focus.c cui41/focus.c --- cui40/focus.c Fri Jan 31 01:30:00 2014 +++ cui41/focus.c Fri Jan 31 02:10:00 2014 @@ -55,16 +55,16 @@ if(focus){ switch(key){ case CUI_KEY_UP: - jg = cui_gy(obj) <= cui_gy(focus); + jg = cui_gy(obj) < cui_gy(focus); break; case CUI_KEY_DOWN: - jg = cui_gy(obj) + obj->h >= cui_gy(focus) + focus->h; + jg = cui_gy(obj) + obj->h > cui_gy(focus) + focus->h; break; case CUI_KEY_LEFT: - jg = cui_gx(obj) <= cui_gx(focus); + jg = cui_gx(obj) < cui_gx(focus); break; case CUI_KEY_RIGHT: - jg = cui_gx(obj) + obj->w >= cui_gx(focus) + focus->w; + jg = cui_gx(obj) + obj->w > cui_gx(focus) + focus->w; break; } if(old) jg = jg && v < *val;