Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/SwingChartComposite.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/SwingChartComposite.java	(revision 2048)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/SwingChartComposite.java	(revision 2049)
@@ -117,6 +117,65 @@
 		this.rootPanel.setBackground(Color.WHITE);
 		this.rootPanel.setBorder(new LineBorder(Color.WHITE, 1));
 		
+		 // FIXME: SJ: temporary workaround to Linux focus bugs
+		// part #1: release the focus at mouse exited on the rootPanel, needed for empty charts, eg. Progression
+		// it breaks all the key events in charts (zoom, pan, selection, etc.) but 
+		// stops the conflict between AWT and SWT events that freezes the SWT Spinner, TextFields, etc.
+		// (Progression query, Specificities chart banality, etc.)
+		// see: http://forge.cbp.ens-lyon.fr/redmine/issues/2548
+		if (OSDetector.isFamilyUnix()) {
+			this.rootPanel.addMouseListener(new MouseListener() {
+
+				@Override
+				public void mouseReleased(MouseEvent e) {
+					// TODO Auto-generated method stub
+
+				}
+
+				@Override
+				public void mousePressed(MouseEvent e) {
+					// TODO Auto-generated method stub
+
+				}
+
+				@Override
+				public void mouseExited(MouseEvent e) {
+					// FIXME: SJ: temporary workaround to Linux focus bugs
+					// it breaks all the key events in charts (zoom, pan, selection, etc.) but
+					// stops the conflict between AWT and SWT events that freezes the SWT Spinner,
+					// TextFields, etc.
+					// (Progression query, Specificities chart banality, etc.)
+					// see: http://forge.cbp.ens-lyon.fr/redmine/issues/2548
+					if (frame.isFocusOwner() || rootPanel.isFocusOwner()) {
+						frame.setVisible(false);
+						// Log.finest("SwingChartComposite.initEventsListeners().new MouseListener()
+						// {...}.mouseExited()");
+						frame.setVisible(true);
+
+						Display.getDefault().asyncExec(new Runnable() {
+
+							@Override
+							public void run() {
+								SwingChartComposite.this.chartEditor.getShell().forceActive();
+							}
+						});
+
+					}
+				}
+
+				@Override
+				public void mouseEntered(MouseEvent e) {
+					// TODO Auto-generated method stub
+
+				}
+
+				@Override
+				public void mouseClicked(MouseEvent e) {
+					// TODO Auto-generated method stub
+
+				}
+			});
+		}
 		
 		// SJ: Workaround to fix a bug with some Java version and some OS where the focus of an embedded Swing component does not delegate to SWT, eg. the Part is not activated.
 		// After some tests, doesn't seem to work on Linux and Mac
@@ -589,6 +648,7 @@
 			public void mouseExited(java.awt.event.MouseEvent e) {
 				
 				 // FIXME: SJ: temporary workaround to Linux focus bugs
+				// part #2: release the focus at mouse exited on the AWT/SWing chart component
 				// it breaks all the key events in charts (zoom, pan, selection, etc.) but 
 				// stops the conflict between AWT and SWT events that freezes the SWT Spinner, TextFields, etc.
 				// (Progression query, Specificities chart banality, etc.)
@@ -617,19 +677,24 @@
 						// KeyboardFocusManager.getCurrentKeyboardFocusManager().clearFocusOwner();
 						// KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
 
+						//setVisible(false);
 						frame.setVisible(false);
 						Log.finest("SwingChartComposite.initEventsListeners().new MouseListener() {...}.mouseExited()");
 						frame.setVisible(true);
+						//setVisible(true);
 
 						Display.getDefault().asyncExec(new Runnable() {
 
 							@Override
 							public void run() {
+//								setVisible(false);
+//								setVisible(true);
 								// TODO Auto-generated method stub
 								// shell.setMinimized(true);
 								// shell.setMinimized(false);
 								// shell.setActive();
-								getChartComponent().getChartEditor().getShell().forceActive();
+								//getChartComponent().getChartEditor().getShell().forceActive();
+								SwingChartComposite.this.chartEditor.getShell().forceActive();
 							}
 						});
 
@@ -1004,7 +1069,7 @@
 	 * @param eventType
 	 * @return
 	 */
-	// TODO : this method is incomplete
+	// TODO : SJ: this method is incomplete
 	public static org.eclipse.swt.widgets.Event swingEventToSWT(Composite swtComposite, JComponent swingComponent, AWTEvent e, int eventType)	{
 
 		Event event = new Event();
