diff options
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r-- | sys/dev/syscons/scmouse.c | 9 | ||||
-rw-r--r-- | sys/dev/syscons/syscons.c | 11 | ||||
-rw-r--r-- | sys/dev/syscons/syscons.h | 2 |
3 files changed, 17 insertions, 5 deletions
diff --git a/sys/dev/syscons/scmouse.c b/sys/dev/syscons/scmouse.c index 30a983e..5830cfb 100644 --- a/sys/dev/syscons/scmouse.c +++ b/sys/dev/syscons/scmouse.c @@ -87,7 +87,6 @@ static void mouse_cut_end(scr_stat *scp); static void mouse_cut_word(scr_stat *scp); static void mouse_cut_line(scr_stat *scp); static void mouse_cut_extend(scr_stat *scp); -static void mouse_paste(scr_stat *scp); #endif /* SC_NO_CUTPASTE */ #ifndef SC_NO_CUTPASTE @@ -589,8 +588,8 @@ mouse_cut_extend(scr_stat *scp) } /* paste cut buffer contents into the current vty */ -static void -mouse_paste(scr_stat *scp) +void +sc_mouse_paste(scr_stat *scp) { if (scp->status & MOUSE_VISIBLE) sc_paste(scp, cut_buffer, strlen(cut_buffer)); @@ -784,7 +783,7 @@ sc_mouse_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, mouse_cut_end(cur_scp); if (cur_scp->mouse_buttons & MOUSE_BUTTON2DOWN || cur_scp->mouse_buttons & MOUSE_BUTTON3DOWN) - mouse_paste(cur_scp); + sc_mouse_paste(cur_scp); } #endif /* SC_NO_CUTPASTE */ break; @@ -855,7 +854,7 @@ sc_mouse_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, case 0: /* up */ break; default: - mouse_paste(cur_scp); + sc_mouse_paste(cur_scp); break; } break; diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 631daa4..7742dc6 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -3066,6 +3066,17 @@ next_code: } break; + case PASTE: +#ifndef SC_NO_CUTPASTE + /* XXX need to set MOUSE_VISIBLE flag 'cause sc_mouse_paste() */ + /* and sc_paste() will not operate without it. */ + i = scp->status; + scp->status |= MOUSE_VISIBLE; + sc_mouse_paste(scp); + scp->status = i; +#endif + break; + /* NON-LOCKING KEYS */ case NOP: case LSH: case RSH: case LCTR: case RCTR: diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h index 0c1d8e4..d667c97 100644 --- a/sys/dev/syscons/syscons.h +++ b/sys/dev/syscons/syscons.h @@ -548,6 +548,7 @@ int sc_inside_cutmark(scr_stat *scp, int pos); void sc_remove_cutmarking(scr_stat *scp); void sc_remove_all_cutmarkings(sc_softc_t *scp); void sc_remove_all_mouse(sc_softc_t *scp); +void sc_mouse_paste(scr_stat *scp); #else #define sc_draw_mouse_image(scp) #define sc_remove_mouse_image(scp) @@ -555,6 +556,7 @@ void sc_remove_all_mouse(sc_softc_t *scp); #define sc_remove_cutmarking(scp) #define sc_remove_all_cutmarkings(scp) #define sc_remove_all_mouse(scp) +#define sc_mouse_paste(scp) #endif /* SC_NO_CUTPASTE */ #ifndef SC_NO_SYSMOUSE void sc_mouse_move(scr_stat *scp, int x, int y); |