/* Selection options */
int mouse_is_xterm;
int rawcnp;
+ int mouse_override;
short wordness[256];
/* translations */
VT_Mode vtmode;
}
write_setting_i(sesskey, "RawCNP", cfg->rawcnp);
write_setting_i(sesskey, "MouseIsXterm", cfg->mouse_is_xterm);
+ write_setting_i(sesskey, "MouseOverride", cfg->mouse_override);
for (i = 0; i < 256; i += 32) {
char buf[20], buf2[256];
int j;
}
gppi(sesskey, "RawCNP", 0, &cfg->rawcnp);
gppi(sesskey, "MouseIsXterm", 0, &cfg->mouse_is_xterm);
+ gppi(sesskey, "MouseOverride", 1, &cfg->mouse_override);
for (i = 0; i < 256; i += 32) {
static char *defaults[] = {
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
if ((ldata[cols] & LATTR_MODE) != LATTR_NORM)
selpoint.x /= 2;
- if (xterm_mouse) {
+ if (xterm_mouse && !(cfg.mouse_override && shift)) {
int encstate = 0, r, c;
char abuf[16];
static int is_down = 0;
IDC_MBSTATIC,
IDC_MBWINDOWS,
IDC_MBXTERM,
+ IDC_MOUSEOVERRIDE,
IDC_CCSTATIC,
IDC_CCLIST,
IDC_CCSET,
CheckRadioButton(hwnd, IDC_MBWINDOWS, IDC_MBXTERM,
cfg.mouse_is_xterm ? IDC_MBXTERM : IDC_MBWINDOWS);
+ CheckDlgButton(hwnd, IDC_MOUSEOVERRIDE, cfg.mouse_override);
CheckDlgButton(hwnd, IDC_RAWCNP, cfg.rawcnp);
{
static int tabs[4] = { 25, 61, 96, 128 };
}
if (panel == selectionpanelstart) {
- /* The Selection panel. Accelerators used: [acgo] d wx hst */
+ /* The Selection panel. Accelerators used: [acgo] d wxp hst */
struct ctlpos cp;
ctlposinit(&cp, hwnd, 80, 3, 13);
bartitle(&cp, "Options controlling copy and paste",
"&Windows (Right pastes, Middle extends)", IDC_MBWINDOWS,
"&xterm (Right extends, Middle pastes)", IDC_MBXTERM,
NULL);
+ checkbox(&cp,
+ "Shift overrides a&pplication's use of mouse",
+ IDC_MOUSEOVERRIDE);
endbox(&cp);
beginbox(&cp, "Control the select-one-word-at-a-time mode",
IDC_BOX_SELECTION3);
break;
case IDC_RAWCNP:
cfg.rawcnp = IsDlgButtonChecked(hwnd, IDC_RAWCNP);
+ break;
case IDC_MBWINDOWS:
case IDC_MBXTERM:
cfg.mouse_is_xterm = IsDlgButtonChecked(hwnd, IDC_MBXTERM);
break;
+ case IDC_MOUSEOVERRIDE:
+ cfg.mouse_override = IsDlgButtonChecked(hwnd, IDC_MOUSEOVERRIDE);
+ break;
case IDC_CCSET:
{
BOOL ok;
{
int thistime = GetMessageTime();
- if (send_raw_mouse) {
+ if (send_raw_mouse && !(cfg.mouse_override && shift)) {
+ lastbtn = MBT_NOTHING;
term_mouse(b, MA_CLICK, x, y, shift, ctrl);
return;
}