diff --git a/doc/fixes36.3 b/doc/fixes36.3 index b7f2c43bb..751b2a4d0 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.89 $ $NHDT-Date: 1562632673 2019/07/09 00:37:53 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.90 $ $NHDT-Date: 1562723693 2019/07/10 01:54:53 $ This fixes36.3 file is here to capture information about updates in the 3.6.x lineage following the release of 3.6.2 in May 2019. Please note, however, @@ -174,6 +174,10 @@ curses: when map window was clipped, the 'scrollbars' shown to indicate which curses: support users's setting for erase char and kill char when getting a line of input with 'popup_dialog' Off (already supported for popup On) curses: attempting to use ^H to rush left actually executed ^G (#wizgenesis) +curses: disable the attempt to support Ctrl+Left_click as an alternate way + to generate Right_click for systems with one-button mouse or trackpad; + the mouse data passed to nethack didn't match the curses (ncurses on + OSX 10.11) documentation and things didn't work as intended curses+'perm_invent': entries were wrapping without any control; usually not noticeable because next entry overwrote, but visible for final entry when whole inventory fit within the available height; looked ok with diff --git a/win/curses/cursmisc.c b/win/curses/cursmisc.c index 4ac85c0a3..3768e53bd 100644 --- a/win/curses/cursmisc.c +++ b/win/curses/cursmisc.c @@ -877,13 +877,20 @@ curses_convert_keys(int key) return ret; } -/* we treat buttons 2 and 3 as equivalent so that it doesn't matter which - one is for right-click and which for middle-click; the core uses CLICK_2 - for right-click ("not left" click) even though 2 might be middle button; - we also support Ctrl+left-click as another way to get "not left" click - since Mac is traditionally saddled with a one button mouse or trackpad */ -#define MOUSEBUTTONS ((BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED) \ - | BUTTON_CTRL) +/* + * We treat buttons 2 and 3 as equivalent so that it doesn't matter which + * one is for right-click and which for middle-click. The core uses CLICK_2 + * for right-click ("not left"-click) even though 2 might be middle button. + * + * BUTTON_CTRL was enabled at one point but was not working as intended. + * Ctrl+left_click was generating pairs of duplicated events with Ctrl and + * Report_mouse_position bits set (even though Report_mouse_position wasn't + * enabled) but no button click bit set. (It sort of worked because Ctrl+ + * Report_mouse_position wasn't a left click so passed along CLICK_2, but + * the duplication made that too annoying to use. Attempting to immediately + * drain the second one wasn't working as intended either.) + */ +#define MOUSEBUTTONS (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED) /* Process mouse events. Mouse movement is processed until no further mouse movement events are available. Returns 0 for a mouse click