<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>> I think the answer may come from seeing what Story Editor does that Edit <br>> Contents mode doesn't.  I wonder if it could be some need to include a <br>> Qt file in the declarations?<br>> <br>> Greg<br></div><div><br></div><div>storyeditor.cpp has the constructor "SEditor::SEditor(QWidget* parent, ScribusDoc *docc, StoryEditor* parentSE) : QTextEdit(parent)", so the story editor window is a QTextEdit object.</div><div><br></div><div><span style="font-size: 12pt;">canvasmode_edit.cpp has the constructor "</span><span style="font-size: 12pt;">CanvasMode_Edit::CanvasMode_Edit(ScribusView* view) : CanvasMode(view)" and </span><span style="font-size: 12pt;">canvasmode.cpp has the constructor </span><span style="font-size: 12pt;">"</span><span style="font-size: 12pt;">CanvasMode::CanvasMode (ScribusView* view) : </span><span style="font-size: 12pt;">QObject()".  The CanvasMode class contains a field "</span>Canvas * const m_canvas", and Canvas is a QWidget.</div><div><span style="font-size: 12pt;"><br></span></div><div><span style="font-size: 12pt;">QTextEdit implements inputMethodEvent(). </span><a href="https://qt-project.org/doc/qt-5/qtextedit.html" target="_blank" style="font-size: 12pt;">https://qt-project.org/doc/qt-5/qtextedit.html</a></div><div><br></div><div>I think that the difference is that the story editor is a high level object that is designed to be a text editor while text frames are generic, low level objects.</div><div><br></div><div>I suspect that either 1) the story editor is based on an object that supports high level mapping of composed characters, while text frames are based on an object that supports only single keystrokes or 2) text frames need to request inputMethodEvents or to have them passed from the Canvas they contain.</div><div><br></div><div>William</div><div><br></div>                                         </div></body>
</html>