app: fix render cache artifacts when resizing the canvas
Since introducing gimp_display_shell_canvas_tick() we were setting shell->disp_width and shell->disp_height in the tick callback, which was too late and caused redundant rendering and scrolling, but was never noticed. Now we clear the render cache and its valid region in gimp_display_shell_canvas_size_allocate() directly and set shell->disp_width and shell->disp_height immediately, so other places that listen to the canvas' size-allocate get the right values. The old size of the canvas gets to the tick callback using a small struct as user data.
Showing with 41 additions and 19 deletions