I have written a simple scribbling class, It works fine on window mobile and desktop.
It is working on s60 too with lot of unexpected issues. As I am drawing on shell, shell is keep on erasing the traces. It is basically clearing(refreshing) screen in interval of 2 secs.
It refresh the screen when i press the stylus.

I am testing on nokia 5800 phone.

Here is the code. I think It is a problem with eSWT implementation.

============Code Bigin======================
package com.openstream.mmi.browser.developer.test;

import org.eclipse.ercp.swt.mobile.MobileShell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;

public class TestScribbing {

static boolean exitLoop = false;
private static Display display;
RGB mBrushColor_ = null;
MobileShell shell = null;
int lastX = 0, lastY = 0;

public void startScribbing(final Display display) {

this.display = display;
mBrushColor_ = display.getSystemColor(SWT.COLOR_BLACK).getRGB();
display.asyncExec(new Runnable() {
public void run() {
shell = new MobileShell(display, SWT.SHELL_TRIM);
Listener listener = new Listener () {

public void handleEvent (Event event) {
switch (event.type) {
case SWT.MouseMove:
//if ((event.stateMask & SWT.BUTTON1) == 0) break;
GC gc = new GC (shell);
gc.drawLine (lastX, lastY, event.x, event.y);
gc.dispose ();
case SWT.MouseDown:
lastX = event.x;
lastY = event.y;
shell.addListener (SWT.MouseDown, listener);
shell.addListener (SWT.MouseMove, listener);
shell.setBackground(new Color(display, new RGB(255, 255, 255)));

shell.open ();


public static void main(String[] args) {

display = new Display();

TestScribbing scrib = new TestScribbing();

while(!exitLoop) {
if(!display.readAndDispatch()) {
System.out.println("Existed the loop");
if(display != null || !display.isDisposed()){
display = null;

============Code end======================