diff --git a/usr_sbin/editpolicy.c b/usr_sbin/editpolicy.c index 45dd0ef..09e3b10 100644 --- a/usr_sbin/editpolicy.c +++ b/usr_sbin/editpolicy.c @@ -2270,6 +2270,21 @@ static void ccs_show_list(void) } /** + * ccs_click1 - Callback for clicking the left mouse button + * + * Returns nothing. + */ +static void ccs_click1(MEVENT mevent) +{ + struct ccs_screen *ptr = &ccs_screen[ccs_current_screen]; + /* header is 3 tall */ + if (mevent.y < 3) + return; + ptr->y = mevent.y - 3; + ccs_show_current(); +} + +/** * ccs_resize_window - Callback for resize event. * * Returns nothing. @@ -3222,6 +3237,8 @@ static enum ccs_screen_type ccs_generic_list_loop(void) ptr->current = saved_cursor[ccs_current_screen].current; ptr->y = saved_cursor[ccs_current_screen].y; } + MEVENT mevent; + mousemask(ALL_MOUSE_EVENTS, NULL); start: if (ccs_current_screen == CCS_SCREEN_DOMAIN_LIST) { if (!ccs_domain_sort_type) { @@ -3281,6 +3298,13 @@ start2: if (c == ERR) continue; /* Ignore invalid key. */ switch (c) { + case KEY_MOUSE: + if (getmouse(&mevent) == OK) { + if (mevent.bstate & BUTTON1_CLICKED) { + ccs_click1(mevent); + } + } + break; case KEY_RESIZE: ccs_resize_window(); ccs_show_list();