If morality had not advanced, no one would have cared to even
think of proposing a law. Oppressors actually improve on their own, because Man inherently wants to be good. And that is because being good leads to more successful and productive lives. It's an evolution, and it can be too slow, but it is what is responsible for change.
White people dominated the country and could have kept slavery and segregation as official policy forever if that is what they wanted. But that is NOT what they wanted. Over time, white people realized that discrimination was wrong and designed laws to codify the change in philosophy. But the change in philosophy and value preceded the laws. As they always do. The laws were designed to accelerate the process, but the process came from free will and free people.
The best way for civil rights to advance is through Reason and freedom and persuasion, not tyranny and compulsion.
Same with gay marriage. If 98% of the American people, who are straight, wanted to hold gays down, it would be the simplest thing in the world. Ask Africa and the Middle East. In Africa, if you are gay, you die, and are sometimes even mutilated for good measure:
Africa
Will there be a change in philosophy for murdering gays in Africa? Not as long as there is no freedom. It is freedom that introduces the possibility of change. And so, the 2% in America can marry because the 98% changed their thinking. The laws were an afterthought, as were any and all civil rights acts.
Freedom is what catalyzes change. So let's have more of it.