1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-01 03:22:48 -05:00

Change the term_mouse interface a little so that it gets passed

both the raw and the cooked mouse button, with the mapping being done in
advance by the front-end.  This is useful because it allows the front-end to
use information other than the raw button (e.g. the modifier state) to decide
which cooked button to generate.
.
Front ends other than the Mac one are untested, but they just call
translate_button() themselves and pass the result to term_mouse().

[originally from svn r2721]
This commit is contained in:
Ben Harris
2003-01-25 16:16:45 +00:00
parent 3f01fc87ec
commit af4be2e83e
5 changed files with 40 additions and 45 deletions

View File

@ -1,4 +1,4 @@
/* $Id: macterm.c,v 1.53 2003/01/25 15:15:40 ben Exp $ */
/* $Id: macterm.c,v 1.54 2003/01/25 16:16:44 ben Exp $ */
/*
* Copyright (c) 1999 Simon Tatham
* Copyright (c) 1999, 2002 Ben Harris
@ -502,8 +502,8 @@ static void text_click(Session *s, EventRecord *event) {
lastact == MA_3CLK ? MA_CLICK : MA_NOTHING);
else
lastact = MA_CLICK;
/* Fake right button with shift key */
term_mouse(s->term, event->modifiers & shiftKey ? MBT_RIGHT : MBT_LEFT,
term_mouse(s->term, MBT_LEFT,
event->modifiers & shiftKey ? MBT_EXTEND : MBT_SELECT,
lastact, col, row, event->modifiers & shiftKey,
event->modifiers & controlKey, event->modifiers & optionKey);
lastsess = s;
@ -513,8 +513,8 @@ static void text_click(Session *s, EventRecord *event) {
GetMouse(&localwhere);
col = PTOCC(localwhere.h);
row = PTOCR(localwhere.v);
term_mouse(s->term,
event->modifiers & shiftKey ? MBT_RIGHT : MBT_LEFT,
term_mouse(s->term, MBT_LEFT,
event->modifiers & shiftKey ? MBT_EXTEND : MBT_SELECT,
MA_DRAG, col, row, event->modifiers & shiftKey,
event->modifiers & controlKey,
event->modifiers & optionKey);
@ -523,25 +523,13 @@ static void text_click(Session *s, EventRecord *event) {
else if (row < 0)
term_scroll(s->term, 0, row);
}
term_mouse(s->term, event->modifiers & shiftKey ? MBT_RIGHT : MBT_LEFT,
term_mouse(s->term, MBT_LEFT,
event->modifiers & shiftKey ? MBT_EXTEND : MBT_SELECT,
MA_RELEASE, col, row, event->modifiers & shiftKey,
event->modifiers & controlKey, event->modifiers & optionKey);
lastwhen = TickCount();
}
Mouse_Button translate_button(void *frontend, Mouse_Button button)
{
switch (button) {
case MBT_LEFT:
return MBT_SELECT;
case MBT_RIGHT:
return MBT_EXTEND;
default:
return 0;
}
}
void write_clip(void *cookie, wchar_t *data, int len, int must_deselect) {
/*