src/Tools/jEdit/src/rich_text_area.scala
changeset 55766 6a16443e520e
parent 55747 bef19c929ba5
child 55790 4670f18baba5
equal deleted inserted replaced
55765:ec7ca5388dea 55766:6a16443e520e
   293   }
   293   }
   294 
   294 
   295 
   295 
   296   /* text */
   296   /* text */
   297 
   297 
       
   298   private def caret_enabled: Boolean =
       
   299     caret_visible && (!text_area.hasFocus || text_area.isCaretVisible)
       
   300 
   298   private def caret_color(rendering: Rendering): Color =
   301   private def caret_color(rendering: Rendering): Color =
   299   {
   302   {
   300     if (text_area.isCaretVisible)
   303     if (text_area.isCaretVisible)
   301       text_area.getPainter.getCaretColor
   304       text_area.getPainter.getCaretColor
   302     else rendering.caret_invisible_color
   305     else rendering.caret_invisible_color
   308     val clip_rect = gfx.getClipBounds
   311     val clip_rect = gfx.getClipBounds
   309     val painter = text_area.getPainter
   312     val painter = text_area.getPainter
   310     val font_context = painter.getFontRenderContext
   313     val font_context = painter.getFontRenderContext
   311 
   314 
   312     val caret_range =
   315     val caret_range =
   313       if (caret_visible) JEdit_Lib.point_range(buffer, text_area.getCaretPosition)
   316       if (caret_enabled) JEdit_Lib.point_range(buffer, text_area.getCaretPosition)
   314       else Text.Range(-1)
   317       else Text.Range(-1)
   315 
   318 
   316     var w = 0.0f
   319     var w = 0.0f
   317     var chunk = head
   320     var chunk = head
   318     while (chunk != null) {
   321     while (chunk != null) {
   524       screen_line: Int, physical_line: Int, start: Int, end: Int, y: Int)
   527       screen_line: Int, physical_line: Int, start: Int, end: Int, y: Int)
   525     {
   528     {
   526       robust_rendering { rendering =>
   529       robust_rendering { rendering =>
   527         if (caret_visible) {
   530         if (caret_visible) {
   528           val caret = text_area.getCaretPosition
   531           val caret = text_area.getCaretPosition
   529           if (start <= caret && caret == end - 1) {
   532           if (caret_enabled && start <= caret && caret == end - 1) {
   530             val painter = text_area.getPainter
   533             val painter = text_area.getPainter
   531             val fm = painter.getFontMetrics
   534             val fm = painter.getFontMetrics
   532             val metric = JEdit_Lib.pretty_metric(painter)
   535             val metric = JEdit_Lib.pretty_metric(painter)
   533 
   536 
   534             val offset = caret - text_area.getLineStartOffset(physical_line)
   537             val offset = caret - text_area.getLineStartOffset(physical_line)