Package: libncursesw5-dev
Version: 6.0+20160625-1
Severity: normal

Dear Maintainer,

Please consider building ncurses with --enable-ext-mouse. Without this
option there is no way to handle mouse scroll down events because in
NCURSES_MOUSE_VERSION==1 there is only 32 bits in event and no space to
represent button 5. For real-world example where scrolling is needed and
does not currently work please see e.g. tig:

https://github.com/jonas/tig/issues/321

Starting from ~ ncurses 5.6 there is a way to build with 64 bits-wide
events and BUTTON5_* introduced:

http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blob;f=configure.in;h=37e1f8ec;hb=HEAD#l1100
http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff;h=55ccd2b9

Let me quote:

---- 8< ----
+              --enable-ext-mouse
+                      This  defines NCURSES_MOUSE_VERSION 2, and modifies
+                      the encoding of mouse events to support wheel mice,
+                      which may transmit buttons 4 and 5. This works with
+                      xterm and similar terminal emulators. This requires
+                      ABI  6  because  it  changes  the encoding of mouse
+                      events.
...
+       ---------------------------------------------------------------------
+       BUTTON5_PRESSED          mouse button 5 down
+       BUTTON5_RELEASED         mouse button 5 up
+       BUTTON5_CLICKED          mouse button 5 clicked
+       BUTTON5_DOUBLE_CLICKED   mouse button 5 double clicked
+       BUTTON5_TRIPLE_CLICKED   mouse button 5 triple clicked
+       ---------------------------------------------------------------------
---- 8< ----

The downside is that it is an ABI change which means we'll probably need to
introduce libncursesw6. However the change is needed for real because sometimes
people can only use console without graphics.

If we do an ABI change, it will probably make sense to enable other ncurses
extensions as well.

Thanks beforehand,
Kirill


-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)

Versions of packages libncursesw5-dev depends on:
ii  libc6-dev [libc-dev]  2.23-5
ii  libncursesw5          6.0+20160625-1
ii  libtinfo-dev          6.0+20160625-1
ii  libtinfo5             6.0+20160625-1

libncursesw5-dev recommends no packages.

Versions of packages libncursesw5-dev suggests:
ii  ncurses-doc  6.0+20160625-1

-- no debconf information

Reply via email to