backport to M3_version_2_1 PR26121
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
index 7a9f45c..37f024f 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
@@ -33,6 +33,7 @@
 	int fixedHandle, imHandle;
 	Composite parent;
 	Menu menu;
+	Font font;
 	String toolTipText;
 	Object layoutData;
 	Accessible accessible;
@@ -1326,7 +1327,8 @@
  */
 public Font getFont () {
 	checkWidget();
-	return Font.gtk_new (getDisplay (), getFontDescription ());
+	if (font != null) return font;
+	return Font.gtk_new (getDisplay (), defaultFont ());
 }
 	
 int getFontDescription () {
@@ -1754,7 +1756,7 @@
 		data.device = getDisplay ();
 		data.background = background;
 		data.foreground = foreground;
-		data.font = style.font_desc;
+		data.font = font != null ? font.handle : defaultFont ();
 	}	
 	return gdkGC;
 }
@@ -2171,6 +2173,7 @@
  */
 public void setFont (Font font) {
 	checkWidget();
+	this.font = font;
 	int fontDesc;
 	if (font == null) {
 		fontDesc = defaultFont ();