It didn't feel right to have a "DHCPClient" in a "Servers" directory.
Rename this to Services to better reflect the type of programs we'll
be putting in there.
When a window is maximized by clicking the 'maximize' button in the window frame,
the WindowFrame *is* invalidated and repainted properly. However, the internal
state of the WindowServer::Button does not get updated until the next mouse
movement. This means that the 'maximize' button is erroneously highlighted until
the mouse moves again. This is very visible.
Ideally, a patch should compute the actual new m_hovered. However, this requires
knowledge of the new rect, or calling something on the Button after the new rect
has been determined. Until someone can figure out a good way around this,
setting m_hovered to false is a solution that 'usually' works.
Note that this does *not* work when after maximizing/restoring, the maximize
button falls exactly under the mouse again. The button functions properly, but
is erroneously not highlighted.
At least a *missing* highlight is less noticable than a highlight too many.