void RichEdit::LeftDouble(Point p, dword flags) { NextUndo(); int c = GetMousePos(p); if(c >= 0) { if(objectpos == c) { RichObject object = GetObject(); if(!object) return; RichObject o = object; o.DefaultAction(context); if(object.GetSerialId() != o.GetSerialId()) ReplaceObject(o); } else { RichPos rp = cursorp; RichPara::FieldType *ft = RichPara::fieldtype().Get(rp.field, NULL); if(ft) { int fieldpos = cursor; ft->DefaultAction(&rp.fieldparam); RichText::FormatInfo f = text.GetFormatInfo(fieldpos, 1); Remove(fieldpos, 1); RichPara p; p.Cat(rp.field, rp.fieldparam, f); RichText clip; clip.Cat(p); Insert(fieldpos, clip, false); Finish(); } else { int l, h; if(GetWordSelection(c, l, h)) SetSelection(l, h); } } } }