Bug 540298 - [regression] NPE in Widget.filters

Trying to address NPE caused by gtk_widget_hide().

Change-Id: Iffcbbd9664e6158fa17614edf051bf86146dbbac
Signed-off-by: Xi Yan <xixiyan@redhat.com>
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 96f95b1..5f2d3d2 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
@@ -3446,7 +3446,8 @@
 	 * makes the widget visible again in setBounds. See Bug 533469, Bug 531120.
 	 */
 	if (GTK.GTK_VERSION > OS.VERSION (3, 18, 0) && (state & ZERO_WIDTH) != 0 && (state & ZERO_HEIGHT) != 0) {
-		if (GTK.gtk_widget_get_visible(widget)) GTK.gtk_widget_hide(widget);
+		if (widget != 0 && GTK.gtk_widget_get_visible(widget)) GTK.gtk_widget_set_opacity(widget, 0);
+		if (display == null || display.isDisposed()) error (SWT.ERROR_DEVICE_DISPOSED);
 	}
 	/*
 	 * Modify the drawing of the widget with cairo_clip.