If other drugs can be made illegal, make smoking illegal, job done.
You can't pit ones right to smoke over another's right not to inhale second hand smoke or the other way around. If it is legal to smoke, then one's right not to inhale second hand smoke can't be used to trump another's right to smoke.
Obv those that smoke do not have the right to do so when it infringes upon another's right not to inhale smoke, but then equally because smoking is legal, I shouldn't put myself in a car/home with a person who is smoking and then claim that they have infringed upon my right not to inhale second hand smoke, to make this claim infringes upon their right to smoke.
Neither claim can take precedence over the other, unless of course either is forced. In the case of children, they are not actively able to enforce their rights. Which is why this law makes sense, but it should be applied across the board in all environments where a person who lacks the capacity to enforce their own rights, should have that right upheld by the law.
Of course parents will/and do smoke over their children, will do so out of sight in their own homes but the rights of those children, will not be upheld by this law.
Either make smoking illegal and accept that some people make silly and unhealthy choices, so their actions must be curtailed, or not. You can't legislate for stupidity and its unethical to take revenue from drugs, and then use that money to police the victims of your own greed and policy.