| 82 | | global _lastScriptTime, _lastScriptCount, _lastScriptRef |
| 83 | | scriptTime=time.time() |
| 84 | | scriptRef=weakref.ref(script) |
| 85 | | if (scriptTime-_lastScriptTime)<=0.5 and _lastScriptRef and script==_lastScriptRef(): |
| 86 | | _lastScriptCount+=1 |
| 87 | | else: |
| 88 | | _lastScriptCount=0 |
| 89 | | _lastScriptRef=scriptRef |
| 90 | | _lastScriptTime=scriptTime |
| 91 | | script(keyPress) |
| | 84 | global _lastScriptTime, _lastScriptCount, _lastScriptRef, _isScriptRunning |
| | 85 | lastScriptRef=_lastScriptRef() if _lastScriptRef else None |
| | 86 | #We don't allow the same script to be executed from with in itself, but we still should pass the key through |
| | 87 | if _isScriptRunning and lastScriptRef==script: |
| | 88 | return sendKey(keyPress) |
| | 89 | _isScriptRunning=True |
| | 90 | try: |
| | 91 | scriptTime=time.time() |
| | 92 | scriptRef=weakref.ref(script) |
| | 93 | if (scriptTime-_lastScriptTime)<=0.5 and script==lastScriptRef: |
| | 94 | _lastScriptCount+=1 |
| | 95 | else: |
| | 96 | _lastScriptCount=0 |
| | 97 | _lastScriptRef=scriptRef |
| | 98 | _lastScriptTime=scriptTime |
| | 99 | script(keyPress) |
| | 100 | finally: |
| | 101 | _isScriptRunning=False |