@@ -5043,13 +5043,16 @@ namespace netxs::os
50435043 else if (modstat.changed )
50445044 {
50455045 k.ctlstat = kbmod;
5046- m.ctlstat = kbmod;
5047- m.hzwheel = faux;
5048- m.wheelfp = 0 ;
5049- m.wheelsi = 0 ;
5050- m.timecod = datetime::now ();
5051- m.changed ++;
5052- mouse (m); // Fire mouse event to update kb modifiers.
5046+ if (m.enabled == input::hids::stat::ok)
5047+ {
5048+ m.ctlstat = kbmod;
5049+ m.hzwheel = faux;
5050+ m.wheelfp = 0 ;
5051+ m.wheelsi = 0 ;
5052+ m.timecod = datetime::now ();
5053+ m.changed ++;
5054+ mouse (m); // Fire mouse event to update kb modifiers.
5055+ }
50535056 }
50545057 if (utf::to_code (r.Event .KeyEvent .uChar .UnicodeChar , point))
50555058 {
@@ -5117,7 +5120,6 @@ namespace netxs::os
51175120 m.timecod = datetime::now ();
51185121 m.enabled = input::hids::stat::halt; // Send a mouse halt event.
51195122 mouse (m);
5120- m.enabled = input::hids::stat::ok;
51215123 }
51225124 break ;
51235125 case nt::console::event::style:
@@ -5172,6 +5174,7 @@ namespace netxs::os
51725174 {
51735175 m.changed ++;
51745176 m.timecod = datetime::now ();
5177+ m.enabled = input::hids::stat::ok;
51755178 mouse (m);
51765179 }
51775180 }
@@ -5181,6 +5184,7 @@ namespace netxs::os
51815184 {
51825185 m.changed ++;
51835186 m.timecod = datetime::now ();
5187+ m.enabled = input::hids::stat::ok;
51845188 mouse (m);
51855189 }
51865190 }
@@ -5821,16 +5825,9 @@ namespace netxs::os
58215825 });
58225826 m.changed ++;
58235827 m.timecod = datetime::now ();
5824- if (std::isnan (m.coordxy .x ))
5825- {
5826- m.enabled = input::hids::stat::halt; // Send a mouse halt event.
5827- mouse (m);
5828- m.enabled = input::hids::stat::ok;
5829- }
5830- else
5831- {
5832- mouse (m);
5833- }
5828+ m.enabled = std::isnan (m.coordxy .x ) ? input::hids::stat::halt // Send a mouse halt event.
5829+ : input::hids::stat::ok;
5830+ mouse (m);
58345831 }
58355832 else if (t == type::mouse) // SGR mouse report: ESC [ < ctrl ; xpos ; ypos M
58365833 {
@@ -5853,7 +5850,7 @@ namespace netxs::os
58535850 auto ctl = ctrl.value ();
58545851
58555852 m.timecod = timecode;
5856- m.enabled = {} ;
5853+ m.enabled = input::hids::stat::ok ;
58575854 m.hzwheel = {};
58585855 m.wheelfp = {};
58595856 m.wheelsi = {};
@@ -5996,13 +5993,16 @@ namespace netxs::os
59965993 if (k.ctlstat != kbmod)
59975994 {
59985995 k.ctlstat = kbmod;
5999- m.ctlstat = kbmod;
6000- m.hzwheel = faux;
6001- m.wheelfp = 0 ;
6002- m.wheelsi = 0 ;
6003- m.timecod = datetime::now ();
6004- m.changed ++;
6005- mouse (m); // Fire mouse event to update kb modifiers.
5996+ if (m.enabled == input::hids::stat::ok)
5997+ {
5998+ m.ctlstat = kbmod;
5999+ m.hzwheel = faux;
6000+ m.wheelfp = 0 ;
6001+ m.wheelsi = 0 ;
6002+ m.timecod = datetime::now ();
6003+ m.changed ++;
6004+ mouse (m); // Fire mouse event to update kb modifiers.
6005+ }
60066006 }
60076007 }
60086008 parser (data);
@@ -6095,6 +6095,7 @@ namespace netxs::os
60956095 m.coordxy = mcoord / scale;
60966096 m.buttons = bttns;
60976097 m.ctlstat = k.ctlstat ;
6098+ m.enabled = input::hids::stat::ok;
60986099 if (wheelfp)
60996100 {
61006101 if (wheelfp.x )
0 commit comments