mirror of
https://github.com/xzeldon/htop.git
synced 2024-12-23 22:55:46 +00:00
netbsd: Support curses libraries without ncurses mouse support
This adds a configure check for the ncurses getmouse() function and disables mouse-related code paths when mouse support is not present in the curses library. This is necessary for stable versions of NetBSD's libcurses, the development version has stub mouse functions for compatibility with ncurses. Signed-off-by: Nia Alarie <nia@NetBSD.org>
This commit is contained in:
parent
d45b4f4a43
commit
2ab8fb83ba
4
CRT.c
4
CRT.c
@ -836,7 +836,9 @@ void CRT_init(const Settings* settings, bool allowUnicode) {
|
||||
nonl();
|
||||
intrflush(stdscr, false);
|
||||
keypad(stdscr, true);
|
||||
#ifdef HAVE_GETMOUSE
|
||||
mouseinterval(0);
|
||||
#endif
|
||||
curs_set(0);
|
||||
|
||||
if (has_colors()) {
|
||||
@ -910,10 +912,12 @@ void CRT_init(const Settings* settings, bool allowUnicode) {
|
||||
#endif
|
||||
CRT_treeStrAscii;
|
||||
|
||||
#ifdef HAVE_GETMOUSE
|
||||
#if NCURSES_MOUSE_VERSION > 1
|
||||
mousemask(BUTTON1_RELEASED | BUTTON4_PRESSED | BUTTON5_PRESSED, NULL);
|
||||
#else
|
||||
mousemask(BUTTON1_RELEASED, NULL);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
CRT_degreeSign = initDegreeSign();
|
||||
|
@ -106,6 +106,7 @@ void InfoScreen_run(InfoScreen* this) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_GETMOUSE
|
||||
if (ch == KEY_MOUSE) {
|
||||
MEVENT mevent;
|
||||
int ok = getmouse(&mevent);
|
||||
@ -127,6 +128,7 @@ void InfoScreen_run(InfoScreen* this) {
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (this->inc->active) {
|
||||
IncSet_handleKey(this->inc, ch, panel, IncSet_getListItemValue, this->lines);
|
||||
|
@ -172,6 +172,7 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
|
||||
ch = getch();
|
||||
|
||||
HandlerResult result = IGNORED;
|
||||
#ifdef HAVE_GETMOUSE
|
||||
if (ch == KEY_MOUSE && this->settings->enableMouse) {
|
||||
ch = ERR;
|
||||
MEVENT mevent;
|
||||
@ -212,6 +213,7 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (ch == ERR) {
|
||||
if (sortTimeout > 0)
|
||||
sortTimeout--;
|
||||
|
@ -352,6 +352,7 @@ if test "$my_htop_platform" = "solaris"; then
|
||||
AC_DEFINE([ERR], [(-1)], [Predefine ncurses macro.])
|
||||
fi
|
||||
AC_CHECK_FUNCS( [set_escdelay] )
|
||||
AC_CHECK_FUNCS( [getmouse] )
|
||||
|
||||
|
||||
AC_ARG_ENABLE([hwloc],
|
||||
|
Loading…
Reference in New Issue
Block a user