diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp index 6471efbbc21ceebf2f102b37f63d0b6471d9832c..4073a5bfc5d71fc9c50863eab162438006dd2648 100644 --- a/src/sbbs3/inkey.cpp +++ b/src/sbbs3/inkey.cpp @@ -567,7 +567,12 @@ void sbbs_t::set_mouse(long flags) if(mode & MOUSE_MODE_ANY) ansi_mouse(ANSI_MOUSE_ANY, true); if(mode & MOUSE_MODE_EXT) ansi_mouse(ANSI_MOUSE_EXT, true); - mouse_mode = flags; + if(mouse_mode != flags) { +#if 0 + lprintf(LOG_DEBUG, "New mouse mode: %X (was: %X)", flags, mouse_mode); +#endif + mouse_mode = flags; + } } } @@ -589,7 +594,7 @@ struct mouse_hotspot* sbbs_t::add_hotspot(struct mouse_hotspot* spot) list_node_t* node = listInsertNodeData(&mouse_hotspots, spot, sizeof(*spot)); if(node == NULL) return NULL; - set_mouse(MOUSE_MODE_NORM | MOUSE_MODE_EXT); + set_mouse(MOUSE_MODE_ON); return (struct mouse_hotspot*)node->data; } diff --git a/src/sbbs3/js_console.cpp b/src/sbbs3/js_console.cpp index 4296177e111719ef36af2867ca9e35ff00904f33..118f636d037f7c54276d7a75c7b13656f122d168 100644 --- a/src/sbbs3/js_console.cpp +++ b/src/sbbs3/js_console.cpp @@ -231,6 +231,8 @@ static JSBool js_console_set(JSContext *cx, JSObject *obj, jsid id, JSBool stric sbbs->console=val; break; case CON_PROP_MOUSE_MODE: + if(*vp == JSVAL_TRUE) + val = MOUSE_MODE_ON; sbbs->set_mouse(val); break; case CON_PROP_LNCNTR: @@ -387,7 +389,8 @@ static jsSyncPropertySpec js_console_properties[] = { #ifdef BUILD_JSDOCS static const char* con_prop_desc[] = { "status bit-field (see <tt>CON_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)" - ,"mouse mode bit-field (see <tt>MOUSE_MODE_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)" + ,"mouse mode bit-field (see <tt>MOUSE_MODE_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions, " + "set to <tt>true</tt> for default enabled mode, <tt>false</tt> to disable)" ,"current 0-based line counter (used for automatic screen pause)" ,"current 0-based row counter" ,"current 0-based column counter (used to auto-increment <i>line_counter</i> when screen wraps)" diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 67a03dffd2265ce63ea428c0e48693a3fe0724d9..cd0508edce1d7004ff46905b871d8a8ef6aa56cc 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -903,6 +903,7 @@ public: #define MOUSE_MODE_BTN (1<<2) // Button-event tracking mode mouse reporting #define MOUSE_MODE_ANY (1<<3) // Any-event tracking mode mouse reporting #define MOUSE_MODE_EXT (1<<4) // SGR-encoded extended coordinate mouse reporting +#define MOUSE_MODE_ON (MOUSE_MODE_NORM | MOUSE_MODE_EXT) // Default mouse "enabled" mode flags long mouse_mode; // Mouse reporting mode flags uint hot_attr; // Auto-Mouse hot-spot attribute (when non-zero)