src/Tools/jEdit/src/rich_text_area.scala
changeset 73881 b1272ec71568
parent 73880 9ce206f6e8c6
child 73883 994c9dacd2f9
equal deleted inserted replaced
73880:9ce206f6e8c6 73881:b1272ec71568
   174     }
   174     }
   175 
   175 
   176     def update_rendering(r: JEdit_Rendering, range: Text.Range): Unit =
   176     def update_rendering(r: JEdit_Rendering, range: Text.Range): Unit =
   177       update(rendering(r)(range))
   177       update(rendering(r)(range))
   178 
   178 
   179     def reset: Unit = update(None)
   179     def reset(): Unit = update(None)
   180   }
   180   }
   181 
   181 
   182   // owned by GUI thread
   182   // owned by GUI thread
   183 
   183 
   184   private val highlight_area =
   184   private val highlight_area =
   193     new Active_Area[XML.Elem](
   193     new Active_Area[XML.Elem](
   194       (rendering: JEdit_Rendering) => rendering.active, Some(Cursor.DEFAULT_CURSOR))
   194       (rendering: JEdit_Rendering) => rendering.active, Some(Cursor.DEFAULT_CURSOR))
   195 
   195 
   196   private val active_areas =
   196   private val active_areas =
   197     List((highlight_area, true), (hyperlink_area, true), (active_area, false))
   197     List((highlight_area, true), (hyperlink_area, true), (active_area, false))
   198   def active_reset(): Unit = active_areas.foreach(_._1.reset)
   198   def active_reset(): Unit = active_areas.foreach(_._1.reset())
   199 
   199 
   200   private def area_active(): Boolean =
   200   private def area_active(): Boolean =
   201     active_areas.exists({ case (area, _) => area.is_active })
   201     active_areas.exists({ case (area, _) => area.is_active })
   202 
   202 
   203   private val focus_listener = new FocusAdapter {
   203   private val focus_listener = new FocusAdapter {
   271                 val rendering = get_rendering()
   271                 val rendering = get_rendering()
   272                 for ((area, require_control) <- active_areas)
   272                 for ((area, require_control) <- active_areas)
   273                 {
   273                 {
   274                   if (control == require_control && !rendering.snapshot.is_outdated)
   274                   if (control == require_control && !rendering.snapshot.is_outdated)
   275                     area.update_rendering(rendering, range)
   275                     area.update_rendering(rendering, range)
   276                   else area.reset
   276                   else area.reset()
   277                 }
   277                 }
   278             }
   278             }
   279           }
   279           }
   280         }
   280         }
   281         else active_reset()
   281         else active_reset()