private void setCursor(int i_cursorId) { // save current cursor Control ctrl = getCurrentViewer().getControl(); while (ctrl != null) { if (ctrl.getCursor() != null) { m_pushedCursor = ctrl.getCursor(); break; } ctrl = ctrl.getParent(); } m_pushedCursor = getCurrentViewer().getControl().getDisplay().getSystemCursor(SWT.CURSOR_ARROW); // hide cursor and save position ctrl = getCurrentViewer().getControl(); Display display = ctrl.getDisplay(); Cursor cursor = display.getSystemCursor(i_cursorId); ctrl.setCursor(cursor); }