On macOS you can right click on the icon in the dock and select "Hide" or "Show", depending on the current state of the application. This works in ThinLinc as long as the tlclient UI is still up, but not once vncviewer is shown. We have code that delegates these events to vncviewer, but it is no longer working. After some tracing I can see that we get procNotFound when calling ShowHideProcess(). I'm guessing that this functionality has simply been removed from macOS at some point. The Carbon API was deprecated in macOS 10.8, and it seems process serial number arguments were removed in macOS 10.9. So any API using those is probably a bit hit-and-miss now. Oddly enough GetProcessForPID() still works and gives us something that looks sane. This code was last touched on bug 4368 and tested on macOS 10.8. It is unlikely it has been tested since.