I have already asked this question on the Mathematica StackExchange (but haven't received a satsfactory asnwer), so
please see there as well.
Is there a situation where EvaluationNotebook[] and ButtonNotebook[] would return different results when called in the same context (other than when ButtonNotebook[] returns $Failed because it was not run from a button)? The documentation states:
If a button in a palette initiates evaluation in another notebook, then ButtonNotebook[] will be the palette, but EvaluationNotebook[] will be the other notebook.
So in other words, the question is: how can a palette button initiate an evaluation in another notebook? Here's a small test example:
CreatePalette[Button["press", Print@{EvaluationNotebook[], ButtonNotebook[]}]]
Notice that both return the palette, even if the focus is in another notebook (SelectedNotebook[] or InputNotebook[] would return that one). Is it possible to run Print@{EvaluationNotebook[], ButtonNotebook[]} in a context where they'd return different results? If not, then what is the purpose of ButtonNotebook[]?