diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 0959bce..626f6a5 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -1284,9 +1284,9 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmMousedRequest(const QJsonVal outobj = sysadm::moused::disableDevice(in_args.toObject()); }else if(action == "get_tap_to_click"){ outobj = sysadm::moused::tapToClick(); - }/*else if(action == "set_tap_to_click"){ - - }*/ + }else if(action == "set_tap_to_click"){ + outobj = sysadm::moused::setTapToClick(in_args.toObject()); + } //check return structure for validity if(!outobj.keys().isEmpty()){ diff --git a/src/server/library/sysadm-moused.cpp b/src/server/library/sysadm-moused.cpp index 4495782..4ab476e 100644 --- a/src/server/library/sysadm-moused.cpp +++ b/src/server/library/sysadm-moused.cpp @@ -209,24 +209,56 @@ QJsonObject moused::tapToClick(){ out.insert("using_synaptics", usesynaptics ? "true" : "false"); return out; } -/* -bool moused::setTapToClick(int ms){ + +QJsonObject moused::setTapToClick(QJsonObject jsin){ + QJsonObject out; + //Check the inputs first + if(!jsin.contains("enable") && !jsin.contains("timeout")){ + return out; + } //Find out which sysctls need to be set (only some systems have the synaptics option) QJsonObject tmp; - tmp.insert("sysctl", QJsonArray() << _MOUSED_TTC_NORMAL << _MOUSED_TTC_SYNAPTICS << _MOUSED_TTC_ENABLED); + tmp.insert("sysctl", QJsonArray() << _MOUSED_TTC_NORMAL << _MOUSED_TTC_SYNAPTICS << _MOUSED_TTC_ENABLED << _MOUSED_TTC_ENABLE_SYNAPTICS); tmp = SysMgmt::getSysctl(tmp); //this will only return valid sysctls - can use it for quick filtering/detection - QStringList sysctls = tmp.keys(); - tmp = QJsonObject(); //clear it for re-use - if(ms<0){ ms = 0; } //numbers less than 0 are not valid - tmp.insert("value",QString::number(ms) ); - for(int i=0; iinteger instead + if(ms>=0){ + tmp = QJsonObject(); //clear it for re-use + tmp.insert("value",QString::number(ms) ); + if(sysctls.contains(_MOUSED_TTC_NORMAL)){ tmp.insert("sysctl",_MOUSED_TTC_NORMAL); SysMgmt::setSysctl(tmp); } + if(sysctls.contains(_MOUSED_TTC_SYNAPTICS)){ tmp.insert("sysctl",_MOUSED_TTC_SYNAPTICS); SysMgmt::setSysctl(tmp); } + out.insert("timeout", QString::number(ms) ); + } } - //Restart the moused daemon - General::RunQuickCommand("service moused restart"); - return ( !sysctls.isEmpty() ); -}*/ + //Enable/Disable as needed + if(jsin.contains("enable") && canenable ){ + bool enable = (jsin.value("enable").toString().toLower()=="true"); + tmp = QJsonObject(); //clear it for re-use + if(usesynaptics){ + if(!sysctls.contains("timeout")){ //if we just set this, don't overwrite it + tmp.insert("value", enable ? "125000" : "0"); //default values for enable/disable + tmp.insert("sysctl", _MOUSED_TTC_SYNAPTICS); + } + }else{ + tmp.insert("value", enable ? "1" : "0"); + tmp.insert("sysctl", _MOUSED_TTC_ENABLED); + } + //Now make the actual change + if(!tmp.isEmpty()){ + SysMgmt::setSysctl(tmp); + out.insert("enabled", enable ? "true" : "false"); + } + } + //Restart the moused daemon if we made any changes + if(!out.isEmpty()){ General::RunQuickCommand("service moused restart"); } + return out; +} QJsonObject moused::synapticsSettings(){ QJsonObject tmp; diff --git a/src/server/library/sysadm-moused.h b/src/server/library/sysadm-moused.h index 21dbe49..d9d70d0 100644 --- a/src/server/library/sysadm-moused.h +++ b/src/server/library/sysadm-moused.h @@ -28,7 +28,7 @@ public: //General system input options static QJsonObject tapToClick(); - //static bool setTapToClick(QJsonObject); + static QJsonObject setTapToClick(QJsonObject); //Synaptics options static QJsonObject synapticsSettings();