Buggy code:
boolean selected = ( result != 0 ) && ( ( ( lvItem . state ) & ( OS . LVIS_SELECTED ) ) != 0 ) ; GCData data = new GCData ( ) ; data . device = display ; int clrSelectionBk = - 1 ; if ( OS . IsWindowEnabled ( handle ) ) { if ( selected && ( ( ( nmcd . iSubItem ) == 0 ) || ( ( ( style ) & ( SWT . FULL_SELECTION ) ) != 0 ) ) ) { if ( ( OS . GetFocus ( ) ) == ( handle ) ) { data . foreground = OS . GetSysColor ( COLOR_HIGHLIGHTTEXT ) ; data . background = clrSelectionBk = OS . GetSysColor ( COLOR_HIGHLIGHT ) ; } else { data . foreground = OS . GetTextColor ( hDC ) ; data . background = clrSelectionBk = OS . GetSysColor ( COLOR_3DFACE ) ; } } else { data . foreground = ( clrText != ( - 1 ) ) ? clrText : OS . GetTextColor ( hDC ) ; data . background = ( clrTextBk != ( - 1 ) ) ? clrTextBk : OS . GetBkColor ( hDC ) ; } } else { data . foreground = OS . GetTextColor ( hDC ) ; data . background = clrSelectionBk = OS . GetSysColor ( COLOR_3DFACE ) ; } data . hPen = OS . CreatePen ( PS_SOLID , 0 , data . foreground ) ; data . hBrush = OS . CreateSolidBrush ( data . background ) ; data . hFont = hFont ; int nSavedDC = OS . SaveDC ( hDC ) ; GC gc = GC . win32_new ( hDC , data ) ; RECT cellRect = item . getBounds ( nmcd . dwItemSpec , nmcd . iSubItem , true , true , true , true , hDC ) ; Event event = new Event ( ) ; event . item = item ; event . gc = gc ; event . index = nmcd . iSubItem ; if ( ( ( nmcd . uItemState ) & ( OS . CDIS_FOCUS ) ) != 0 ) { event . detail |= SWT . FOCUSED ; } if ( selected ) event . detail |= SWT . SELECTED ; event . x = cellRect . left ; event . y = cellRect . top ; event . width = ( cellRect . right ) - ( cellRect . left ) ; event . height = ( cellRect . bottom ) - ( cellRect . top ) ; gc . setClipping ( event . x , event . y , event . width , event . height ) ; sendEvent ( EraseItem , event ) ; event . gc = null ; int clrSelectionText = OS . GetTextColor ( hDC ) ; gc . dispose ( ) ; OS . RestoreDC ( hDC , nSavedDC ) ; if ( ( isDisposed ( ) ) || ( item . isDisposed ( ) ) ) return ; if ( selected ) { if ( ( ( event . detail ) & ( SWT . SELECTED ) ) == 0 ) { ignoreDrawSelected = true ; if ( ( ( nmcd . iSubItem ) == 0 ) || ( ( ( style ) & ( SWT . FULL_SELECTION ) ) != 0 ) ) { textColor = clrSelectionText ; } nmcd . uItemState &= ~ ( OS . CDIS_SELECTED ) ; OS . MoveMemory ( lParam , nmcd , sizeof ) ; } } else { if ( ( ( event . detail ) & ( SWT . SELECTED ) ) != 0 ) { nmcd . uItemState |= OS . CDIS_SELECTED ; OS . MoveMemory ( lParam , nmcd , sizeof ) ; } } ignoreDraw = ! ( event . doit ) ; if ( ignoreDraw ) { boolean fullText = ( ( style ) & ( SWT . FULL_SELECTION ) ) != 0 ; <START_BUG> RECT clipRect = item . getBounds ( nmcd . dwItemSpec , nmcd . iSubItem , true , true , fullText , false , hDC ) ; <END_BUG> if ( ( ! ( ignoreDrawSelected ) ) && ( clrSelectionBk != ( - 1 ) ) ) fillBackground ( hDC , clrSelectionBk , clipRect ) ; OS . SaveDC ( hDC ) ; OS . SelectClipRgn ( hDC , 0 ) ; OS . ExcludeClipRect ( hDC , clipRect . left , clipRect . top , clipRect . right , clipRect . bottom ) ; } } Event sendMeasureItemEvent ( TableItem item , int row , int column , int hDC ) { } LRESULT sendMouseDownEvent ( int type , int button , int msg , int wParam , int lParam ) { } void sendPaintItemEvent ( TableItem item , NMLVCUSTOMDRAW nmcd ) { } void setBackgroundImage ( int hBitmap ) { } void setBackgroundPixel ( int newPixel ) { } void setBackgroundTransparent ( boolean transparent ) { } void setBounds ( int x , int y , int width , int height , int flags , boolean defer ) { } public void setColumnOrder ( int [ ] order ) { } void setDeferResize ( boolean defer ) { } void setCheckboxImageList ( int width , int height , boolean fixScroll ) { } void setFocusIndex ( int index ) { } public void setFont ( Font font ) { } void setForegroundPixel ( int pixel ) { } public void setHeaderVisible ( boolean show ) { } public void setItemCount ( int count ) { } void setItemHeight ( boolean fixScroll ) { } void setItemHeight ( int itemHeight ) { } public void setLinesVisible ( boolean show ) { } public void setRedraw ( boolean redraw ) { } boolean setScrollWidth ( TableItem item , boolean force ) { } public void setSelection ( int [ ] indices ) { }

Fix:
RECT clipRect = item . getBounds ( nmcd . dwItemSpec , nmcd . iSubItem , true , false , fullText , false , hDC ) ;