Currently both widgets assume their output spans the whole line. They furthermore assume that line is the last, which makes them clunky to use, if at all possible.
Ideally, widgets would be able to render themselves in a client-controlled space and not assume ownership of the output.