EDIT
Found a way to solve it! If I swap my lazy singleton to an ordinary singleton, things will work out.
@Window* instance()
{
// NOTE: "s_instance" is a static member variable
if(!s_instance)
s_instance = new Window();