Panel keyPressCallback and focus
-
@christoph-hart Oh cool for the
return true
thing, it works...As for the focus issue, why is the callback called when clicking outside of the object anyway?
Because the focus is lost as it should when usingthis.loseFocus();
, so why would the callback be called again from a click that didn't occur onto the panel? -
@ustk it will get executed as soon as the panel gains focus and clicking on it is just one of the possibilities (Eg. Tab key cycles trough the siblings)...
This is deeply embedded into JUCE and debugging this is super annoying...
-
@christoph-hart said in Panel keyPressCallback and focus:
This is deeply embedded into JUCE and debugging this is super annoying...
please tell me it's doable
Or we can say goodbye the entire API -
@ustk it's definitely doable (probably a one line fix at the right location), but finding it is the hard thing...
-
@ustk said in Panel keyPressCallback and focus:
I tried several fixes with no luck. It seems that the focus is lost as it should but when clicking anywhere in the interface editor, the first component automatically gets it back.
This works okey
It has 5 Panels just for testing
At init, all Panels will be set to the same KPC, PR & MCBfor (p in Panels) { p.setPaintRoutine(PR); p.setMouseCallback(MCB); p.setKeyPressCallback(KPC); }
then in MCB
if (event.clicked) { for (p in Panels) p.setKeyPressCallback(""); }
and in
if (event.clicked && event.shiftDown) this.setKeyPressCallback(KPC);
HiseSnippet 1507.3ocyX80aaaCDWJIpsxaEaEXe.37CExXIN1IY8OIXXwwwoKHModwoEqurBFIZK1HSpQRkTih.rG19Jrm2CaeE1yCaeg12fsihx1xNxooAsC0.Iv7t62we7tijGcaA2mHkbgks6QChIV1erSmALUXyPLkYs61V1kbNgLHV.VYs0fXrTRBrrsm+QZ81tKXk94e95svQXlOYrHKqmwo9jGS6SUik1dy8nQQ6fCHGQ6my501bWeNqIOhm.bYdmZVwX+Sv8HGf0lMmik8MZEPUbQGEVQjV1KrEOXPmP9YLi8OiJoGGQzCpa0AbjQ7N7n.Mi0RsZFRiBZObMKs.uzdbDXdSD3yb1mFPGIebj3SSUfFiHe7vdtIo27SPu54oWsbzq.JYmiRKXnzcb53KnwpwZz74ib1koHhtXHrmmJFasl6utoSSNXASUsO9DxNBXvHDd2qVsEQv+prQoRPnWpPmhEn1XFIRh9JzPj8HpFQQM48i4LXrzqbpIk0vxv09PvdutILeEky75UozqK41qZWHQCP8LIUY0ynpvFQwg3QR5IHCVDUq5JU.u4pwHIJixwnBoJhVcupAB7YMhn8XjfiHuR4oBoRM+dFNJg3UYQzPAOl6ii1hmvBjd0.4k8AlKHAkm8zf+gDberfxtr4J.qvUUvvq1TU57bAo8at0DQIxofgoQJZWjYTU+Hp+IjfJkbAwtc4BjWLhxxRJfXW2XM22iLnsdCYSbTzwv1Duxoqry0KtK3MzcuKxHPFR6p1FpHylfz0PQtau1MM9yr.VdY2GQXDANBMsotKMqOYKavUSrr4G+xJH8pFpuj7HR0XHlCgWgtjTqTOwzt5uVkJ2g6mHgMfrdj7bNMODhMpA2qMd3PSb.BWDC.IT14Gl5O3brl7.smR03t7xnVcZ1ncq0QaShHJBjUg+f7qVqOVRPqb+0QSl5goqb4MPZKbOVPvmrQlqNr0QO8vCP6054qidYBrzi3RiG6p40HWVe0LWp0mRYuJo9P6jugHHHHkjhiQNC1SB01HEGUVio7hHnn.l0.TWAuepUwvwSBdhBJcS8xvrpYWQLVHI6xlt.tR1TVzZKUQgEeWd42zAjsZzbuNsazDBuGR5yO0DLhvPnwODCIb3jnwQEcj9hg5IETUlbrTAEL87ps3z5hHrdpvkpeApXRjq7fKjI+BX492+V4Bsu9CuWw1+Skmg+eXw1+6yx+2uX6+4Y3+0lAe9iYXe80J19eobAopFwwDV.ByFfXb1RxXhOE1sOQZJfzEmDoVGA6N+b81oLqfpgrhC2KNeZ6F4kMz1.ldd5VT3ao1KH5JXkm4rYAQkHXHkHgrg43mKVIBadSqCaqwcnoz2q8gZGjJeedhjLp3DN3cjlYbR24COdBwYGvUjmv7RmkRmWBMsptcKTm95RAOJhHJTstYGwkAzikz+XhXQyF9QFBc.LYaENytsh7c83at8Nmgb1tLp5IPddV8BYkckOzBhSFq.SUoMfb6gMfnSAVTnMia5X9dJey20m0aF6sLXqOMXuMu5fWYJv+42+V.d0Qfuwqeqo8ZiAWxMC7S2canrW27VVPDBrwDghpyY1aSNE5D1zJmqy1D4IJdbZTNqqJP7aJN+pwgI5lCxO3LZfJbrfmuYHg1KTkWBTtyOaXQOvnOwAZLCMVfDeJbIgdqAAvYOWe7qxC25pPzQI0wP+wu8CYltxLioG8AFSWMGS+U0Gxwz0lYLU8+ASu3Kmf2rwCRhvpIeHm90qYJfigm30S5WHwjT0f7ut8c1q6tpT7NNs08sVLGmq.NBm879fiYuI91Ns51k3qFSvEb146d+7.XKyU581GCs5A4WmCR52AdjlOQ+R.cK.fL64zGYaFWSOVGA5.MwjN3egOYJqqGamor9PkV8w9B9K7Mm4qe08sRk.bhk9CN35rudLZzcTNN0pVypOMf9Bee8xeI3Nzhwrx0.ypWCLqcMv7kWCL26Zf49WCLO3Rwn+sWZjn38MaG.AsakdoqscKFFprRqBs9OJy5GYB
-
@ulrik a better example
HiseSnippet 1529.3ocyXEraabCDcWauIYUaPa.5G.qNDrB0VVx1MNwFs0xxxoFN1Q0xIn4T.8tTZY7JxsjbsiPgAxg168TO2Cs+B8Gn+P8RO2Nj6JoUxqbcLZJh.rg3Lya3iyLjbnZK39DojKrrcOdPLwx9Cc5LfoBaFhoLq81wxtjyojAwBvJqsGDikRRfks87OVq21cAKym+7q1FGgY9jwhrrdNm5SdBsOUMVZ6s1mFEsKNfbLseNqWaq874rl7HdBvk4cpYEi8OE2ibHVa1bNV12pU.UwEcTXEQZYuv17fAcB4myRs+4TI8jHhdPcqNfiREuKOJPyXsTqlgznf1CWyRKvKsGGAlOMB7INGPCnijONR7wFEnwHxGOrmaR5M+Dzqdd5UKG8JfR14nzBoT5dNc7EzX0XMZ97AN6wTDQWLD1ySkTasl6utsSSNXASUsO9TxtBXvHDdOnVsEQv+prYoRPnWpPmgEn1XFIRh9BzPj8HpFQQM48i4LXrzqrwjxZXY3ZeDXuW2DluhxYd8pT56K41qZWHQCP8RSpxpmSUgMhhCwijzSPFrHpV0Up.dysjKsKxSERkUCvJbUE40ppQDVOUH5KQ0pTxEbK3WIQk5fQ9A+cI39XAkQz9ALIPfOuQDsGiDbL3kob5hHyXXk8DtONZadBKP5Uqxhnx9vRTPBzqN2KJ4BgBxrm1yCopqbFgY343nDhWkq8TdQt35AM2dh.K4LvTSvUGnLip5GQ8OkDjEb5xEHuXDkkkGAwttwZpuOYPa8d3l3nnSfcVdkGtFKvan6eeTp.YHsqZGnHNaBLqhhb29saleAr7xtOlvHBbDZZScWZVexV1fqlXYyO4UUP5UMTRJ4QjpwPlFhvBcUrVodhoc0esJUtK2OQB6YY8H44rI4GhSUCtWa7vgSmqkPkpenwevQeM4AZOYz3t7xnVcZ1ncqMP6PhHJBjWg+fLtVqOVRPqr9FnIq2foqb4MQZKbOQPvmtYlqNp0wO6nCQ625EafdUBrzi3xTO1UyqQtr9pYtTq2PYOSYmwIeMQPPPJwfiQNG1FCkbHEGUVio7hHnn.l0.TWAuuwpX3DMAOQAaXLdYXVMsXMFKjj8XSuqoR1TVzZynnvhuqt7a5.x1MZtem1MZBg2iH84mkFLhvPnwODCIb3vqwQEcj9xg5oN.QlbhTAEL87psHpvCWVp9knRZhbkGdoL4mAK2+3WKWn80ezCJ19en7L7+iJ19eaV9e8hs+Gmg+WaF742mg80WqX6+4xEjpZDGSXAHLa.hwYKIiI9TX29Doo.RWbRjZCDr67S0amxrBpFxJNbu77osajW1TaCX5Elsnv2L1KH5JXkW5sFBhJQvPJQBYyzietbkHr40TG1Vi6nzReu1GocfQ9A7DIYTwIbv6HMy3jtKFd7DhyNjqHOk4YlkRWTBMsptcKTm9FVAOJhHJTst+HwUAzikz+DhXwzM7iLDZZXxNQblcmH4aTxO8B+bFxY6wnpmB44Y09jUVWBPWKNYrBLUY5Y4tC6YQmBrnPmI21I86F9Bs9cq2b2rNE+2wdmTr0GANquQust9fWYJv+TxaA3UmdlW+s.7ZSCd+srd1d6.k8598xBhPfMlHTTcNydGxYPyyoc+45rCQdphGahxYMhAh+2hyud77Q2ZP9AmSCTgiE7hsBIzdgp7Rfxc94CK5AF8QNPubnwBj3yfKIzaMH.N645iecd3VWGhNJoNF5a9l2mY5JyLld76YLc0bL8WTuOGSWalwT0+GL8xO1BdlGOHIBql7se5G7lo.NFdhGboeTESRUCx+f3+ydP30kh2yostu0h43bEvQ3rm2EbL6Yz20oU2tDe0XBtfyte66l2LakdkduCvPqdP904vj9cf2n4SzuDP2B.HydN8MMoiqoGqi.cflXLC9a3Slx55w1YJqOToUeruf+R+zy70OT+NFI.mXleiBWmCziQitixwoV0ZV8oAzW56qW9KA2gVLlUtAXV8FfYsa.lO+Ff4A2.LqeCv7vqDi9mqoQhh2Oc6.HncKykt11sXXnxxTEZ8ODo3tTM
-
@ulrik that's a cool hack, however I am not sure it is safe to kill the CB from within itself...
-
@ustk Yeah it feels a bit risky, I wish it could work as it's supposed to
I could need it in a project -
@ulrik I'm waiting for a proper implementation for my current project so I won't risk a bug, the release is soon...
-
@ustk I think I've found the spot where to put that line. On the other hand, it's bad coding week, so nobody knows what I'm breaking with this :)
https://github.com/christophhart/HISE/commit/cbdab1d60823f213db4f87a81ff19edd8b927e79
-
@christoph-hart Yes, but it can only get better now, right? ;)
-
@christoph-hart said in Panel keyPressCallback and focus:
@ustk I think I've found the spot where to put that line. On the other hand, it's bad coding week, so nobody knows what I'm breaking with this :)
https://github.com/christophhart/HISE/commit/cbdab1d60823f213db4f87a81ff19edd8b927e79
perhaps more testing before commits?
-
@christoph-hart trying to build...
-
@christoph-hart So that seems to work. But can't we lose focus when clicking anywhere outside of the panel?
If not, then it's not much of a big deal since hitting "enter" works -
@christoph-hart this was what I needed, thank you
-
@ulrik Then let's hope it doesn't break Lindon's computer :)
-
-
@ulrik said in Panel keyPressCallback and focus:
@christoph-hart this was what I needed, thank you
I think I was a little bit to entusiastic before
It works great as long as the panels not are childs of another panel.
As usually organise my components in containers (panels) and to get this focus thing to work, I have to have all panels at the same level.
Is there a way to get pass this limitation?
HiseSnippet 2036.3oc0Y0uaaajDmz1LWn50qs.2eb2+sU3PAErrrjSaZfUSpjkkKLbrifkSPCJtqXM4Jo0ljKK4J6Hb0.2iVdQNf6Q3dCta1OH4JYYGWm1hVAaCsyNe7a1Y1Y2Y8fTlOIKikZY6dxrDhk8ezY3rX9jdSvzXq820xthy4jYIo.WV6LKAmkQBrrsW8aDya6tlk7y+8q2AGhi8IkjrrdEi5SdNMhxKoNnyAzvv8vAjSnQFb+4c12mE2iExlBXYUmlVIX+ywiIGgErshik8C5GP4rzgbLmjYYu1NrfYCmvtLVw+qnYzSCIhAsrFBJRQdOVXf.wBpV8lPCCFj6yYVfVFTtBrpZE3O6bHMfVPubk3ikSfJkvb8vdk4g2pyAuVlvqoA7VBjrMfzZJH8INC8SoI7xYD34Cb1OlSRGggkcSnn30Zk+8G3ziAbDyaDgOmrWJLnPBuG2rYcD7mZsqTAV5y3nKvonA3XRXF5onbIGS3cCC6whRXwv3LupRVpJDSK2fiA98FMM1mSYwdiqU4eVwcbiQPfFD0SETyZbIkOoaXxDbAkwojY0QMarUMPatUbgeniPd7IzrFAXNtAm7FdiPR7X9DzyPMqUwEzLn5LBWoiBUg+go3HbJMlHTEvRPJ9xtgzwwjfS.srfRqijiAm64Leb3NrowAYdMqUGU0G7xTRfvAcuphKrZPtYyd4DJ+VsHXgWgCmR7pc2M4hqBSvY6w7mlUqvLGKDlDbLwmiiGGR7VlpaApdq5nVfVuxHZcXuclKbQt.rtLjIrpbTC+Pp+4j.zO9iHEAvni0q9WiKArbKQaDaZFYWHuGrxBKAskgXCMnUqTuJUDxxHRmUwsqHm7Bgz4ZaAartop9VXHZCCH+ZkRjBlkCCo5LlveBrFRBTF7JiHfVOrov91dBeUuBrLfNuIx8aupAjQ3ogJxUqoCvt5.xla59MjXRJNDc.Y1.QM1d3vvSgJetabSezgwCFzatvH6zypgDQwTxXDnIvnsUNhXpFTUJTOouVqhY.KO8BTmfy7gpfUY5eFr+0ehTYvAB8XAjhHmONif15K21cyMQ8G1q6f9ai1kDR3DHlA+B6FPe1mgJVxDx3N+FRv3Uq1tbhEyCbOMkfOucg0Z8Ho0Nt+Iu73iPGz+0aKUuzdijdCNN.AADU1ysnX0ZEXeHdsWHCyg5jQC4PojwKTznlA9JB0JwMmZY9zhnWuXsS2dGLbP2dv50wjH1EJ7Ghg3KjUlh8gh0R4udYQzm9TjnHvHnjmZKnJVrDPrP8zromlobul0QKsV6Fsz9yUK.d.xcSRHvJKNdFJlEuQVBwmB4uyAWcR+1Zn68ohjFMmPhdskhy0UoeEJpsfmhcjv2t1lUQtNeZZLhmNknKxMhkh7RPzX8IYxBaIhv0.3XbNT3jCKXdCNVn.I8CE0Rx214AUGKlYw8jdvdthIEmOlxBKliEqLnltnnakJz3PvZn7MonEXxyO+X05pzTIZEBpJMvQiDIjn3oQmRRQifDSjJzsjxCWyXKIeVIrzJghSJPwjKSvov8FZmSonzQACJgxSlUjk3ZYS.0YjP9onQXnzQo.B1ZUxGbgx5nDVFXobR7nDfIkRgrkPJT9rQ0ZsKNPLJo7t.sz0hA8HxviR9tl+cQJpPkZBsjDJAjJKY9yzWT7qC+hSCzSosqLOiB70rMhh9JoqnQGPX80k43BmdTCndsOF7klUyO.DrpLOuKGN+G8TXkoYUzWiTfQLY4VzV0kDTZtFZacEE3GyHiTgJyH.RtcTqqfr.KErmiREKR+3LkebF3GvjvWT3WVOQ35kxpQ8Y4nV5lp5Nl3oTfRO4r0AeYQTnqyb1FaH+hrdiJ5XV24pBOVkrJ7XwWfKyVhsZnMKoN5Z2daoBqkLOLqKmXro3p1F6cOhwIuH1KeSJZwoFMZoyo2rGRRW5zh9fRuMA8Ta+WnDABZNX9NNbt4NNLaHxWcwdCFYw6GS4u.pqeSsIYo6F.5N4AZTArxk8l7g48lHprYQgNPdni76egkDvlcDZcmE9wuOB+j6kv+AkvuOFt06ivOZIB+x82ENfTzTnNB.QkDRJmJB316Rt.5vV0hnqytjry4rDHQnnaMvotIip5MDNSjjZ8lBa9u9tNyJAveqykz.9jBBu8xNSHzwSL5mm1AZ.JJuuc2G71291lB51qY.hJuyLECDfMQvyV.AVu9ZH30cfifYWlePLrt7QNPamnRBY3Kfc6hixIfb1qDgeio3vdc.kFv0bow5mfa7XC2.V698pa7DC23+j7aV2vcd2343S0twexjRKyXhk0LyAuyj6mc6nQbsUK6+hy9GMb+c6iFz8n9OG06EGcR28Op+wVDn5LVV.1dUSf+v6Dv25l1U1Ioyc.3Jr8WcdwKO4mD3beWUGKQUGlApPo+Jjabm.ZQoXCQ+G+VFoOx.oPr7Wajd8Wa7icNjELMDym+wOEu3qdB39Iy8hihWULNixmY9hv+r8hn2UH9INCDOQwxw3JKAivwT+RfQ86H+gN8GMh3yKA3ZN68s+x7nwVpFaGeHFtQKDecNZZzP3HYeh3EeDsbBzrWQbcD03lhwhUfgP27xA+O3idxVhw15IakOoUD1Ok889p6yHdo5GJo.XJV9H8tNGJFiJtEjiSyFMshnAzu22W39a.Wtb4xr08PlGcOj4yuGx7E2CYd78Plu7dHyStUYD++J5NkyhTaG.BC5KuPosc+XQ4eYVn0+G7q0a7E
-
@ulrik Ok this works
reg allowFocus = true;
All containers need to have "allowCallbacks" enabled, at least with "Clicks only"
and have this mousecallback:Container.setMouseCallback(function(event) { if (event.clicked) allowFocus = false; if (event.mouseUp) allowFocus = true; });
then use allowFocus as a condition inside the KeyPressCallback
HiseSnippet 2174.3oc0Y0uaabbD+njO2bL0sI.8OZ+uMDEAjPTzjxI1FR0NjhhJPPVRDhxFwHnMc0cKIWoi2d8tkRlnQ.8QyOJ8QnuAsyr6d2sjhRVQ4CjRHHv8iYleym6NK6mH7YoohDmRdmLKl4T525NXVjbb2wTdjyd63Tpr64rYwIvtb1dVLMMkE3TpzpeMtdIuG3n97e9psogzHeVwTNNuQv8YuhOgKKlse684gg6RCXmvmXs6un8d9hnthPwT.Kq51zIl5eNcD6PJtsUbcJ8vdAboHYfjJYoNkdv1hfYCFKtLRu+2vS4mFxvAsbF.LRO8thv.Dw3rNcGyCC5moyoN.W5WXAVUaA9CtGvC34yWXI9D0BjBJrsGkVYd3s5bvqkM7ZZAuk.oRVP5AZH8otC7S3wxhUP77wt6EIYICofY2FJ585rxe+QtcEvNhjMlPOmsaBLHmhpOsYy5D3e01pbYvzmJIWPSHHAf9xRHufjQ7HlrqXRrHBFTsR9Np.TVPXeZDKLcdp5DFlSXZ0JpsfTUNgMhPCCEWtqveJRjLYJCl+wO1Cng3mIhTRDiEPjBxX5ELREEMcg+eJDbjVgvhnfMMnNgJIgLJ.kK4xwjJcC4v5DQT3rJHSoQAZNHGySISDSSY9FtTNWeZjxjGfKkIfpCmF4K4hnprK.MnV4+YYO9PhdTCeTFrfZk87lSUFRCSAcwyydyJQ953qsYsdeUMktarl8OFVnP1iTxcTigPdCXbppyQRafZZmv3wz7YFkvlUmzrwF0.94ki.TmaDPkzFR16jMBYQi.azKIMAz.bFXcJ5fQdjyJ5+XJcBMALKHqfsDjPurSHeTDK3DfKKvz5JCK5xek.LraKlFEjVsYs5jJ9f5mvBP2t2Uk8fXD1MK1KGyk2pDAI7FZ3TV0Z2cQtnUXLMUY9qkKliQhYAGy7kznQgrpKi0s.VuQcRqZF+kwacP2smyccKgJju+6I5I.gNxX8WZ.kWAZUQN6.kQvnk4MA5fLKNXXqhuZVDJRYJkUuaOLS8Bj5LtsfLVylUeCLjrtEjeqlIJBSyfghcVK3OFrgr.s.uxxCX3iXJjxpRPMVfkAz4EQldWsR.aHcZnd5J0LNXOiCARz+ZFjHSCI6yl0GOxJKU1a8a5iwMte+ty4FEmdVMB5EwRU.m.gBBCj.Xo.KWVsHEjqPnoDJV0BNA.HFUWjAM35.stJKB4y+bqZd0Ja6jyBIAHfzkMT6fKRYRgbd+wJVCmI2UDvx819T.Wa7rMAHR5Mnam981jrCKjI0nESRQ.jalQZ7lOIFDdkJaUrvhwNdmlvnmuUtzZ8DkzNt2Iu93CI626sapXuRdCUZCV1Ebh5HtagwZ6KHevGuanfJgiplLPBkeFsPglZV3KO7PSt8RKSmVD8Fi01c5t+f9c5B1qiYSDWnweHdVBDImP8gyKUze8RojO6EDrvwPnLoNsU6KVBHVnFb5zSS0pWy5jkVed8VF84pE.O.4NwwLvxRilQhDQqmFy74PL+bv0jnroA5U+LLnwrSH4n1Rw4Z5vubFsEtm7rX3aWKAGyOjSShrOHanHgTMlviL2IPULLFcW8gyYkPwVIXvp1+XjAwW+TWnhZ9JKlGWExSyWDO4NQDlulHRKPy7Xg5xk4QgfzHYI1jE1TU+rKnTWGlpPKRntbhjLDCHIQSmbJbongPfIQ65VRIkqIrkDOqIVIkP7zE3FNWFSSfqtsU1L4kax2flnrfY8zJbsrEfpNJHWbUDCA31ZUrO3N80IwhTPRYSImDCaRyTHZIjCkbaTQ6nUw+ShKt+PKS8afOXD9j3us4eECQQVZlnkZhB.oiRl+d.KR90ge9IHlkLxUEmwg80bKBm7WTphAcvDqslJFGU5gMfRy9TPWZVI6PSPpp37NR3NCjW.VllUHeEQCFbwhTzV0USn4bMxllJJve1dFEC0hAARlbz1UfVXK4aOCk5snziyz5wYfd.KBeQieU8DT0Kn0f5yxPsRM00crwSAAEZxYqA5xhnvTm4r0WW8EU8Fs2wttyU4ZrNXE0X7KP+DEXqF4wEyN7Z23aoDanLyMaJmXkTb0VV4tGJjrihplkjRVbogCW5Zlj8PVxRWFaEM41HrpN8egRDDn+r4a5y8la5ytmTecKRVaTDsWDWdDTW+l5T0wzWEzf3CMnB1pT0d3ixZODqr4vgl.+HW02+RGEfKZy9YsctyD+zEI1.h6DwO+dQ7uQS7OFA25GCwOYID+581ANfD6K23A.uRLKQxQGdocXWv8Y5tz8b2gkdtTDCAB488B79lD5G6l26oy6xk4+5aaOq..+41WxCjiym38W1dLiOZr0SpvaCMMMI6oS7d36e+6ahyOeyxH.LsEeDzVLD5ZAwxev3HK7Qsw2KW.eNu8Z36ssWDI+dWrK+hIRgVy2KBOnmAzUZkIz2YSNTI.PoEbsMbN+.TimZoFfk8+WUimaoF+63e0pFdyqFuhdpQM9c1yzx1m33LydvGLz+k2NZvK05T5O5t2gC1amdj9cNr2qHcO5vS5r2g8N1gA0topxykV04lSXuAfuwMky1Nt8c.3Zr8mbO50m7CBbdenZmEnpsvBUjjeAhMtS.MuPsEo+seMizmXgTvW9KMRu9yA+ItGHBlFRky+5z3SxaV.t8xbOIL9ruQob4L6mr+mrmr9tBwO0sO9.FKGiqrDLBm59yAFMOz+ib6MbHyWV.vG3t627yyq56na6czAT39tf+08voSF.GX6yvWGBaHElqzJ3kUziahiQKv.nWe0f+K7wrXKbbIyhsxVzYB0OQ7c95a6f+TBejZF.SQpeEEO2Cvwj76H451rQSmI7.9246ip+5vUOWNMabOn4I2CZ9h6AMe48flmdOn4Y2CZd9sRC9CJ0YpTLQmN.Szum55lkJ0S+aanp+++.zwKmxM
-
@ulrik I spook too soon, as I often do, sorry about that!
this is a better version, and simpler, no need to include panels in panels in panels, you only need to set a flag true or false.
HiseSnippet 2071.3oc0YstaabbEdWIstdYRZS.xOZ+2DhhfkPRTjxI1Fh0NjhhJPPVxDhxFwHnIXztyRNRK2Y6tCkLQi.5ileT5iPeCZOykc2gWjrrxEjRHIv4LmyY9NWmKpeJymjkwRsrcOcZBwx9icFLMlOp6HLM15f8rrq3bAYZRJvk0tSSvYYj.Ka6U+Vw71tqYI+7e9lcwQ3XeRIIKqWyn9jWPGS4kT629PZTz93.xozwFb+UsOvmE2kEwl.XYUmFVIX+KvCIGiErshik8C5EP4rzAbLmjYYu1trfoCFwtJVw+qoYzyhHhAMsF.JRQdeVTf.wBpVcGQiB5mayYVfV5W5AVU4A9bminAzB5kdhOUNApTBS+g8JyBuUmAdMMgWCC3sDHYa.o0TP5ybF3mRS3kyHvyG4bPLmjFhA2tITT7ZsR1G6zkAbDyqOFeAY+TXPgDdOtQiMPvep0pREv0mwQWhSQ8wwjnLzyP4RNjv6DE0kMNgECiy7pJYopPrTxPDNJhc09L+IBgBwQYDXhJaskVm8OAH6ENI1mSYwdCqU4eVwcX8PHI.TqmJfmU+JJeTmnjQ3BJCSIS2.0n910fUxshK7CMD4wGQypGf435bxa40iHwC4iPOG0nVEWPyfpyHbkNJTE9eLAOFmRiIBUArDjhupSDcXLI3TPKyozMPxwfg+BlONZW1j3fLuF01.U0G7.oj.gw6dcEWvSQt4k8pQT9sthvJ7ZbzDhWs69RNuWXDNS57qUrLmHDlDbBwmiiGFQ7VlpaBpd6MPMAsdsHRpiVG0c2YBWjKgUWFxDqpbTc+Hp+Ej.zO8SHEAXQGp89Kvk.VtkncLaRFYOnl.Vk4bAsjgXCMnUqTuthTyKELlK3bpacSo9NXHZSCz8Fo1U3HKeEkpyXB+Qf6hDnPx0FNasdXSfx2tByRaryptbywqZ.IDOIRQtZMcbaQ+2W9kZDlMhFxEVgVuyTQwSmPTZvUGo1ZK2ukDSRwQnCIS6KZL2ED4Lnco6l2zGc78v9cmI9xN67ZHQ3UTICZBfcqbytDFEAWA+0opDttR20bw27rQXQDrlOT5jEQWUAiJjlA079ijpD1foKKPoL4bt93LBZ6mri6Vag5Mnam981AsGIhvIP3G9EpgDNvHVFQtBRgbmsNF.Q0psLlofaUL1cNWst40bZxvjLY3rTB9hVkXs4ijX8jdm9pSNFcXu2riDbRzFJkGGGffrEUZ7shJUf.VPHcZ+HFlCctGOfCMvFNWqpZlvsHUTIesVuOmxufVuNTsamtGNnemtPz5DxX1kJ6OBCodP4UJ1G17QogE6ki9hmgDctBg9zp9F4ICKwFlaafrImko7OM1.szsH1rYt+35ELA.3cRRHP7AGOEEyh2LKg3SgBrYAstvdmbKv6KDIuZdgZwZKGsqqJFJzUKcwfDIWarQxxxGprXyIQ0JeRZrt2frqPHKE4kfnw5Mvk8rSDoD8gSuvg8D3fa0q+IBEHoejn2YdiCOnwewLy2UwC5ZH1mHu2CGEJRJQwSFeFIEEBImHk2eI8epPiifUFk2xYY4zJgkPNRrGEJlbUBNENMSqbJE8lJXPITd5rhrDWKaBnmkDxkYwZADr0rjO3XtafRXYvJkShONAXRoTHVGQgN70qVqnMILe4oPZpaUB5QjjNN46a72E4XBUpIzTRnDPkM3KOMw7huH7K1bROkdckoATfuFsPTzeSZJZzADVecYFpvnCqCaH3iAaoQ07sdgUUlj1gCm7.8LvyznJ5aPJvHlrrJq4FRBJMWCsitmB7iYjQpP0xH.R95n7qfr.KErmiREKR63bkcbNXGvjvWT3W1SPX5kxpQ844n1XiDS7TJPokb95fsLOJzsJNeyMakWmlWhZz335BKVkrJrXwWfiXWhsZnsJoFtv4FWpvZIyCy5pcihhqaUTNwhOlwIuL1SV9.Eon4mJLboyINeeJKJhjtzoE2NK81DzSU9ugZ+rBFgqrL68fbt46AYdMMe00MLXjEePLk+Rnu7Mc4MK8cTf6L8.Mp.V4xaL8I42XRzNzhB2K5gNxu+0VR.WdySu1V2Yge77B29CP3mNuvO4tH7ePI7OmEt4OGgezRP8qNXOX2MwUU0Q.HpjPR4TQ.2dOxkv89UWb00YOR1EbVBjHTbGRvntoE8ij2XE1xhjZ81h07e88smVBf+Z6qnA7QEDd2UsGQnCGY7JCz1vUuFm+ZBtO3cu6cMDzsWy.DUduYJFH.ahfmOGBrdyBH3MskmtJeOTvu7mbfK7hJIjguDp1E6zR.4rWYL9slhC05.JMfqoqw5CvLdrgY.9t+e0LdpgY7uS9cqY3NqY7B7YZy3OZRooYLwxZp4f2ax8yuczHNyok8e14fiGbvd8P86bbuWf59xiOsyAG26DKBzcFKa.aupIve3cB3aeSUksSZeG.tBa+EmW9pS+f.m66q6XIpZyLPEJ82fbi6DPKZEaH5O76Yj9HCjBwxeqQ5huA5m5bDKXRDlO6SxJdGZ8Dv4Sl4cPEu0YbFkO07cp+E6cZuqP7yb5KdnikiwUVBFgso90.i5W29Sb5EFR74k.bMm8+tecdJaK08NGdDFNQKDecNdx3AvVx9DwqGItmJPydEwI4TiaHFK7.CfaiKG7egO5IaJFaqmrY9jViw9orezWcdFw6m+PIE.Swx+0AtNGIFiJNEjiSi5MrFSCn+nuuv72DNb4xkY66gLO5dHyWcOj4quGx736gLO4dHySuUYD+WT5LgyFqJG.B86IOPoscuXQ6eYVn0+Ck2dO.C