Port Workspace::takeActivity() to VirtualDesktop
Workspace::takeActivity() forces the modal dialog and its parent window to be on the same virtual desktop. It uses int-based desktop ids for that purpose.
This change ports the relevant parts of Workspace::takeActivity() to the VirtualDesktop object.