As others have stated, it can depend on a variety of factors, such as what this control is used for. However, my immediate response is very emphatically that option A is clearly superior. Option B is just too clunky.
With option A, I can set the location of all my widgets until I like the interface. Then, I can simply enable and disable any particular widget I want to see at that moment and it’s right where I left it.
With option B, if I want to re-enable a widget, not only do I have to click a button to enable it, I have to read a list of locations, remember where I wanted it, and click that location. It’s not the end of the world, but is far less streamlined.
With regards to placing the widget to begin with: With A, I have to click once to enable, then click twice more to pick a location. With B, I only have to click twice to pick a location. So the initial selection is ever-so-slightly simpler with option B, but I just can’t see that being worth all time wasted in the future.
As soon as your widget placement gets more complex than 4 preset locations, option A becomes almost mandatory. The only way I could see option B still working with, e.g., 16 locations is if you had tickboxes arranged so they represent the physical spot in the screen with a final option for “disabled”. But even there, option A would be better for the reasons above.
Option B might become more appealing if you can only have one widget per corner, and there are a lot of widgets to pick from. Because now you might change the location every time you change widgets. However, in this case it would almost certainly be better to simply have a dropdown for each corner, instead of a selection for each widget.