version 1.65, 2011/04/18 20:57:16 |
version 1.66, 2011/06/05 10:53:05 |
|
|
} |
} |
} |
} |
|
|
void |
struct window_pane * |
window_set_active_at(struct window *w, u_int x, u_int y) |
window_get_active_at(struct window *w, u_int x, u_int y) |
{ |
{ |
struct window_pane *wp; |
struct window_pane *wp; |
|
|
TAILQ_FOREACH(wp, &w->panes, entry) { |
TAILQ_FOREACH(wp, &w->panes, entry) { |
if (wp == w->active || !window_pane_visible(wp)) |
if (!window_pane_visible(wp)) |
continue; |
continue; |
if (x < wp->xoff || x >= wp->xoff + wp->sx) |
if (x < wp->xoff || x > wp->xoff + wp->sx) |
continue; |
continue; |
if (y < wp->yoff || y >= wp->yoff + wp->sy) |
if (y < wp->yoff || y > wp->yoff + wp->sy) |
continue; |
continue; |
window_set_active_pane(w, wp); |
return (wp); |
break; |
|
} |
} |
|
return (NULL); |
|
} |
|
|
|
void |
|
window_set_active_at(struct window *w, u_int x, u_int y) |
|
{ |
|
struct window_pane *wp; |
|
|
|
wp = window_get_active_at(w, x, y); |
|
if (wp != NULL && wp != w->active) |
|
window_set_active_pane(w, wp); |
|
} |
|
|
|
struct window_pane * |
|
window_find_string(struct window *w, const char *s) |
|
{ |
|
u_int x, y; |
|
|
|
x = w->sx / 2; |
|
y = w->sy / 2; |
|
|
|
if (strcasecmp(s, "top") == 0) |
|
y = 0; |
|
else if (strcasecmp(s, "bottom") == 0) |
|
y = w->sy - 1; |
|
else if (strcasecmp(s, "left") == 0) |
|
x = 0; |
|
else if (strcasecmp(s, "right") == 0) |
|
x = w->sx - 1; |
|
else if (strcasecmp(s, "top-left") == 0) { |
|
x = 0; |
|
y = 0; |
|
} else if (strcasecmp(s, "top-right") == 0) { |
|
x = w->sx - 1; |
|
y = 0; |
|
} else if (strcasecmp(s, "bottom-left") == 0) { |
|
x = 0; |
|
y = w->sy - 1; |
|
} else if (strcasecmp(s, "bottom-right") == 0) { |
|
x = w->sx - 1; |
|
y = w->sy - 1; |
|
} else |
|
return (NULL); |
|
|
|
return (window_get_active_at(w, x, y)); |
} |
} |
|
|
struct window_pane * |
struct window_pane * |