Bug 218673 [DataBinding] SWTUtil should use timerExec(0,...) rather than asyncExec
In the event that you have a lot of cross-realm bindings, the current implementation of DisplayRealm generates a lot of flicker due to excess asyncExecs. It should be using SWTUtil.greedyExec instead. (Note: if you make this change, you may want to remove the display filter from WorkQueue. There are certain methods that do not like being called from an event filter, so running arbitrary asyncExecs during a filter may not always be safe.)
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/SWTUtil.java
public void run() {
                        d.disposeExec(new Runnable() {
                            public void run() {
                                synchronized (mapDisplayOntoWorkQueue) {
                                    q.cancelAll();
                                    mapDisplayOntoWorkQueue.remove(d);
                                }
                            }
                        });
                    }
                });
            }
            return result;
        }
    }
    
    /**
     * @param rgb1
     * @param rgb2
     * @param ratio
     * @return the RGB object
     */
    public static RGB mix(RGB rgb1, RGB rgb2, double ratio) {
        return new RGB(interp(rgb1.red, rgb2.red, ratio), 
                interp(rgb1.green, rgb2.green, ratio),
                interp(rgb1.blue, rgb2.blue, ratio));
    }
    
    private static int interp(int i1, int i2, double ratio) {
        int result = (int)(i1 * ratio + i2 * (1.0d - ratio));