widget: offset draw updates by widget allocation if necessary
widget: offset draw updates by widget allocation if necessary

According to gtk_widget_queue_draw_area() documentation:

"The region here is specified in widget coordinates. Widget coordinates
are a bit odd; for historical reasons, they are defined as
widget->window coordinates for widgets that return TRUE for
gtk_widget_get_has_window(), and are relative to widget->allocation.x ,
widget->allocation.y otherwise."

Since spice-gtk 57df040cc, the SpiceDisplay no longer forces its own
window. During gtk+ 3.19.8, gtk stack also no longer use its own
window (commit 9d0e8401). In order to make drawing update resilient to
such changes, add a function applying offset if necessary.

This solves drawing glitches and perceived slowness with spice-gtk git
and gtk+ >= 3.19.8.

Signed-off-by: Marc-André Lureau <a6f2b960a4aca61381fc650a67901b2ac8e83e6d@gmail.com>
Acked-by: Pavel Grunt <fbda40b445316123f12a5a6bd7556918ea74f4bc@redhat.com>

SPICE/spice-gtk,flexVDI/spice-gtk,SPICE/spice-gtk,flexVDI/spice-gtk,fgouget/spice-gtk,fgouget/spice-gtk,SPICE/spice-gtk,fgouget/spice-gtk,SPICE/spice-gtk