]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39273: Expose BUTTON5_* constants in the curses module if available (GH-17996)
authorZackery Spytz <zspytz@gmail.com>
Thu, 14 Jan 2021 09:40:09 +0000 (02:40 -0700)
committerGitHub <noreply@github.com>
Thu, 14 Jan 2021 09:40:09 +0000 (11:40 +0200)
Doc/library/curses.rst
Doc/whatsnew/3.10.rst
Misc/NEWS.d/next/Library/2020-01-13-23-37-58.bpo-39273.m5hzxV.rst [new file with mode: 0644]
Modules/_cursesmodule.c

index 26121acaacb7a04d4d444afa413389576ea67448..f55bb034b559bfbb6dc29e7ed5868df4e49a8449 100644 (file)
@@ -220,11 +220,15 @@ The module :mod:`curses` defines the following functions:
    multiple devices, and *x*, *y*, *z* are the event's coordinates.  (*z* is
    currently unused.)  *bstate* is an integer value whose bits will be set to
    indicate the type of event, and will be the bitwise OR of one or more of the
-   following constants, where *n* is the button number from 1 to 4:
+   following constants, where *n* is the button number from 1 to 5:
    :const:`BUTTONn_PRESSED`, :const:`BUTTONn_RELEASED`, :const:`BUTTONn_CLICKED`,
    :const:`BUTTONn_DOUBLE_CLICKED`, :const:`BUTTONn_TRIPLE_CLICKED`,
    :const:`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :const:`BUTTON_ALT`.
 
+   .. versionchanged:: 3.10
+      The ``BUTTON5_*`` constants are now exposed if they are provided by the
+      underlying curses library.
+
 
 .. function:: getsyx()
 
index 7a51a9dbfb83adea5b7ba55e8774ecef31bda4cc..7edc552d824abbbe084773e97f21e3ce63fd7ed9 100644 (file)
@@ -242,6 +242,10 @@ by :func:`curses.color_content`, :func:`curses.init_color`,
 support is provided by the underlying ncurses library.
 (Contributed by Jeffrey Kintscher and Hans Petter Jansson in :issue:`36982`.)
 
+The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if
+they are provided by the underlying curses library.
+(Contributed by Zackery Spytz in :issue:`39273`.)
+
 distutils
 ---------
 
diff --git a/Misc/NEWS.d/next/Library/2020-01-13-23-37-58.bpo-39273.m5hzxV.rst b/Misc/NEWS.d/next/Library/2020-01-13-23-37-58.bpo-39273.m5hzxV.rst
new file mode 100644 (file)
index 0000000..c942da0
--- /dev/null
@@ -0,0 +1,2 @@
+The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if
+available.
index 7175c722965794aee4c72cb7918e7477335b6209..7ab68c78c3159f092ddd47e4d91eb5b58f7d9484 100644 (file)
@@ -4870,6 +4870,14 @@ PyInit__curses(void)
     SetDictInt("BUTTON4_DOUBLE_CLICKED",   BUTTON4_DOUBLE_CLICKED);
     SetDictInt("BUTTON4_TRIPLE_CLICKED",   BUTTON4_TRIPLE_CLICKED);
 
+#if NCURSES_MOUSE_VERSION > 1
+    SetDictInt("BUTTON5_PRESSED",          BUTTON5_PRESSED);
+    SetDictInt("BUTTON5_RELEASED",         BUTTON5_RELEASED);
+    SetDictInt("BUTTON5_CLICKED",          BUTTON5_CLICKED);
+    SetDictInt("BUTTON5_DOUBLE_CLICKED",   BUTTON5_DOUBLE_CLICKED);
+    SetDictInt("BUTTON5_TRIPLE_CLICKED",   BUTTON5_TRIPLE_CLICKED);
+#endif
+
     SetDictInt("BUTTON_SHIFT",             BUTTON_SHIFT);
     SetDictInt("BUTTON_CTRL",              BUTTON_CTRL);
     SetDictInt("BUTTON_ALT",               BUTTON_ALT);