Bug 467499 - [GTK3] Issue in layout of editors ("leaking" rulers)

This bug was primarily caused by Canvases being re-painted without
checking for visibility of said Canvas. In SWT, there are methods in
Control called redraw() and update(), which re-paint a Control. These
methods include visibility checks to prevent double painting. Paint
event cases stay the same, as paint events are not triggered by
invisible regions.

Instead of creating a new GC and calling doubleBufferPaint(), we can use
redraw() and update() to re-paint editor rulers. This is already done on
OSX, so the code already exists. Only the if statement needs to be
edited to allow the code path to exist on GTK. 

This will also increase performance, as creating a new GC involves
native machinery which is relatively expensive compared to using
existing Controls.

Tested on GTK3.18, 3.16, 3.14, and 2.24. No SWT tests ran as this is a
platform patch. Windows and OSX behavior is unaffected.

Change-Id: I5e7d21cb68ccc67999abdc83071c8f64376748b4
Signed-off-by: Eric Williams <ericwill@redhat.com>
5 files changed