Buggy code:
if ( ( uiState & ( OS . UISF_HIDEFOCUS ) ) == 0 ) event . detail |= SWT . FOCUSED ; } } } boolean focused = ( ( event . detail ) & ( SWT . FOCUSED ) ) != 0 ; if ( drawHot ) event . detail |= SWT . HOT ; if ( drawSelected ) event . detail |= SWT . SELECTED ; if ( drawBackground ) event . detail |= SWT . BACKGROUND ; 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 = data . foreground ; gc . dispose ( ) ; OS . RestoreDC ( hDC , nSavedDC ) ; if ( ( isDisposed ( ) ) || ( item . isDisposed ( ) ) ) return ; if ( event . doit ) { ignoreDrawForeground = ( ( event . detail ) & ( SWT . FOREGROUND ) ) == 0 ; ignoreDrawBackground = ( ( event . detail ) & ( SWT . BACKGROUND ) ) == 0 ; ignoreDrawSelection = ( ( event . detail ) & ( SWT . SELECTED ) ) == 0 ; ignoreDrawFocus = ( ( event . detail ) & ( SWT . FOCUSED ) ) == 0 ; ignoreDrawHot = ( ( event . detail ) & ( SWT . HOT ) ) == 0 ; } else { ignoreDrawForeground = ignoreDrawBackground = ignoreDrawSelection = ignoreDrawFocus = ignoreDrawHot = true ; } if ( drawSelected ) { if ( ignoreDrawSelection ) { ignoreDrawHot = true ; if ( ( ( nmcd . iSubItem ) == 0 ) || ( ( ( style ) & ( SWT . FULL_SELECTION ) ) != 0 ) ) { selectionForeground = clrSelectionText ; } nmcd . uItemState &= ~ ( OS . CDIS_SELECTED ) ; OS . MoveMemory ( lParam , nmcd , sizeof ) ; } } else { if ( ignoreDrawSelection ) { nmcd . uItemState |= OS . CDIS_SELECTED ; OS . MoveMemory ( lParam , nmcd , sizeof ) ; } } int hwndHeader = OS . SendMessage ( handle , LVM_GETHEADER , 0 , 0 ) ; boolean firstColumn = ( nmcd . iSubItem ) == ( OS . SendMessage ( hwndHeader , HDM_ORDERTOINDEX , 0 , 0 ) ) ; if ( ( ignoreDrawForeground ) && ( ignoreDrawHot ) ) { if ( ( ! ( ignoreDrawBackground ) ) && drawBackground ) { RECT backgroundRect = item . getBounds ( ( ( int ) ( nmcd . dwItemSpec ) ) , nmcd . iSubItem , true , false , true , false , hDC ) ; fillBackground ( hDC , clrTextBk , backgroundRect ) ; } } focusRect = null ; if ( ( ( ! ( ignoreDrawHot ) ) || ( ! ( ignoreDrawSelection ) ) ) || ( ! ( ignoreDrawFocus ) ) ) { boolean fullText = ( ( ( style ) & ( SWT . FULL_SELECTION ) ) != 0 ) || ( ! firstColumn ) ; RECT textRect = item . getBounds ( ( ( int ) ( nmcd . dwItemSpec ) ) , nmcd . iSubItem , true , false , fullText , false , hDC ) ; <START_BUG> if ( focused && ( ( ( style ) & ( SWT . FULL_SELECTION ) ) == 0 ) ) { <END_BUG> if ( measureEvent != null ) { textRect . right = Math . min ( cellRect . right , ( ( measureEvent . x ) + ( measureEvent . width ) ) ) ; } if ( ! ( ignoreDrawFocus ) ) { nmcd . uItemState &= ~ ( OS . CDIS_FOCUS ) ; OS . MoveMemory ( lParam , nmcd , sizeof ) ; focusRect = textRect ; } } if ( explorerTheme ) { if ( ( ! ( ignoreDrawHot ) ) || ( ( ! ( ignoreDrawSelection ) ) && ( clrSelectionBk != ( - 1 ) ) ) ) { boolean hot = drawHot ; RECT pClipRect = new RECT ( ) ; OS . SetRect ( pClipRect , nmcd . left , nmcd . top , nmcd . right , nmcd . bottom ) ; RECT rect = new RECT ( ) ; OS . SetRect ( rect , nmcd . left , nmcd . top , nmcd . right , nmcd . bottom ) ; if ( ( ( style ) & ( SWT . FULL_SELECTION ) ) != 0 ) { int count = ( ( int ) ( OS . SendMessage ( hwndHeader , HDM_GETITEMCOUNT , 0 , 0 ) ) ) ; int index = ( ( int ) ( OS . SendMessage ( hwndHeader , HDM_ORDERTOINDEX , ( count - 1 ) , 0 ) ) ) ; RECT headerRect = new RECT ( ) ; OS . SendMessage ( hwndHeader , HDM_GETITEMRECT , index , headerRect ) ; OS . MapWindowPoints ( hwndHeader , handle , headerRect , 2 ) ; rect . left = 0 ; rect . right = headerRect . right ; pClipRect . left = cellRect . left ; pClipRect . right += Table . EXPLORER_EXTRA ; } else { rect . right += Table . EXPLORER_EXTRA ; pClipRect . right += Table . EXPLORER_EXTRA ;

Fix:
if ( ( ( style ) & ( SWT . FULL_SELECTION ) ) == 0 ) {