Fix #680 - make channels follow user-level settings when appropriate

SetXxx() was setting it true. I've revised to make it more clear.