Bug 462009- [Gtk3] Button background Color fix

In Gtk3, the background of a button does not get set correctly when button.setBackground() is called, theaming doesn't work properly. 

This patch fixes the 'setting' part of it. Please see screen shots of the related bug.

There is still an outstanding issue with *retrieving* the correct background color, but that will be addressed in a subsequent patch.

Change-Id: I4970da1e7ad3c19916116dc0095d5088917bbf0c
Signed-off-by: Leo Ufimtsev <lufimtse@redhat.com>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
index e200b6e..d5437aa 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
@@ -279,7 +279,7 @@
 	            arrowHandle = OS.gtk_arrow_new (arrowType, OS.GTK_SHADOW_OUT);
 			}
 			if (arrowHandle == 0) error (SWT.ERROR_NO_HANDLES);
-			
+
 			handle = OS.gtk_button_new ();
 			if (handle == 0) error (SWT.ERROR_NO_HANDLES);
 			break;
@@ -796,6 +796,11 @@
 }
 
 @Override
+void setBackgroundColor (long /*int*/ context, long /*int*/ handle, GdkRGBA rgba) { //Gtk3.
+	setBackgroundColorGradient (OS.gtk_widget_get_style_context (handle), handle, rgba);
+}
+
+@Override
 void setBackgroundColor (GdkColor color) {
 	super.setBackgroundColor (color);
 	setBackgroundColor(fixedHandle, color);
@@ -976,7 +981,7 @@
 					case SWT.LEFT: OS.gtk_arrow_set (arrowHandle, arrowDir, OS.GTK_SHADOW_OUT); break;
 					case SWT.RIGHT: OS.gtk_arrow_set (arrowHandle, arrowDir, OS.GTK_SHADOW_OUT); break;
 				}
-				
+
 			}
 		}
 	}