[Gtk CanvasBackend]  Offset dirtyRect in Canvas OnDraw to allow for CanvasBackend origin

This is for the [Gtk] CanvasBackend only, and allows for the case where a Canvas does not have a Visible window when the Canvas is created. A similar offset is required when the CTM is evaluated (see PR #272) but the problem with the OnDraw dirtyRect has only just come to light when trying to copy from an off-screen display cache, which has a (0,0) origin.