*/
s = ctrl_getset(b, "Window/Selection", "mouse",
"Control use of mouse");
- ctrl_radiobuttons(s, "Action of mouse buttons:", NO_SHORTCUT, 1,
+ ctrl_radiobuttons(s, "Action of mouse buttons:", 'm', 1,
HELPCTX(selection_buttons),
dlg_stdradiobutton_handler,
I(offsetof(Config, mouse_is_xterm)),
- "Windows (Right pastes, Middle extends)", 'w', I(0),
- "xterm (Right extends, Middle pastes)", 'x', I(1), NULL);
+ "Windows (Middle extends, Right brings up menu)", I(2),
+ "Compromise (Middle extends, Right pastes)", I(0),
+ "xterm (Right extends, Middle pastes)", I(1), NULL);
/*
* This really ought to go at the _top_ of its box, not the
* bottom, so we'll just do some shuffling now we've set it
if (button == MBT_LEFT)
return MBT_SELECT;
if (button == MBT_MIDDLE)
- return cfg.mouse_is_xterm ? MBT_PASTE : MBT_EXTEND;
+ return cfg.mouse_is_xterm == 1 ? MBT_PASTE : MBT_EXTEND;
if (button == MBT_RIGHT)
- return cfg.mouse_is_xterm ? MBT_EXTEND : MBT_PASTE;
+ return cfg.mouse_is_xterm == 1 ? MBT_EXTEND : MBT_PASTE;
return 0; /* shouldn't happen */
}
case WM_LBUTTONUP:
case WM_MBUTTONUP:
case WM_RBUTTONUP:
- if (message == WM_RBUTTONDOWN && (wParam & MK_CONTROL)) {
+ if (message == WM_RBUTTONDOWN &&
+ ((wParam & MK_CONTROL) || (cfg.mouse_is_xterm == 2))) {
POINT cursorpos;
+ show_mouseptr(1); /* make sure pointer is visible */
GetCursorPos(&cursorpos);
TrackPopupMenu(popup_menus[CTXMENU].menu,
TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON,