using std::endl;
using std::find_if;
-extern void math_insert_symbol(string const &);
-extern bool math_insert_greek(char);
+extern void math_insert_symbol(BufferView *, string const &);
+extern bool math_insert_greek(BufferView *, char);
extern BufferList bufferlist;
extern LyXServer * lyxserver;
extern int greek_kb_flag;
// so we`ll skip the dispatch.
return 0;
}
+ } else if (action == LFUN_SELFINSERT) {
+ // We must set the argument to the char looked up by
+ // XKeysymToString
+ XKeyEvent xke;
+ xke.type = KeyPress;
+ xke.serial = 0;
+ xke.send_event = False;
+ xke.display = fl_get_display();
+ xke.window = 0;
+ xke.root = 0;
+ xke.subwindow = 0;
+ xke.time = 0;
+ xke.x = 0;
+ xke.y = 0;
+ xke.x_root = 0;
+ xke.y_root = 0;
+ xke.state = state;
+ xke.keycode = XKeysymToKeycode(fl_get_display(), keysym);
+ xke.same_screen = True;
+ char ret[10];
+ KeySym tmpkeysym;
+ int res = XLookupString(&xke, ret, 10, &tmpkeysym, 0);
+ //Assert(keysym == tmpkeysym);
+ lyxerr[Debug::KEY] << "TmpKeysym ["
+ << tmpkeysym << "]" << endl;
+
+ if (res > 0)
+ argument = string(ret, res);
+ lyxerr[Debug::KEY] << "SelfInsert arg["
+ << argument << "]" << endl;
}
+
bool tmp_sc = show_sc;
show_sc = false;
break;
case LFUN_DEPTH:
- changeDepth(owner->view(), 0);
+ changeDepth(owner->view(), text, 0);
break;
case LFUN_DEPTH_MIN:
- changeDepth(owner->view(), -1);
+ changeDepth(owner->view(), text, -1);
break;
case LFUN_DEPTH_PLUS:
- changeDepth(owner->view(), 1);
+ changeDepth(owner->view(), text, 1);
break;
case LFUN_FREE:
owner->view()->text->cursor;
owner->view()->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
// It is possible to make it a lot faster still
- // just comment out the lone below...
+ // just comment out the line below...
owner->view()->showCursor();
} else {
owner->view()->cut();
case LFUN_BACKSPACE:
{
if (!owner->view()->text->selection) {
+#if 0
if (owner->getIntl()->getTrans()->backspace()) {
+#else
+ if (owner->getIntl()->getTrans().backspace()) {
+#endif
owner->view()->text->Backspace(owner->view());
owner->view()->text->sel_cursor =
owner->view()->text->cursor;
owner->view()->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
// It is possible to make it a lot faster still
- // just comment out the lone below...
+ // just comment out the line below...
owner->view()->showCursor();
}
} else {
if (keyseq.length == -1 && keyseq.getiso() != 0)
c = keyseq.getiso();
-
+
+#if 0
owner->getIntl()->getTrans()->
deadkey(c, get_accent(action).accent,
owner->view()->text);
+#else
+ owner->getIntl()->getTrans()
+ .deadkey(c, get_accent(action).accent,
+ owner->view()->text);
+#endif
// Need to reset, in case the minibuffer calls these
// actions
case LFUN_INSERT_MATH:
{
- math_insert_symbol(argument);
+ math_insert_symbol(owner->view(), argument);
}
break;
for (string::size_type i = 0;
i < argument.length(); ++i) {
if (greek_kb_flag) {
- if (!math_insert_greek(argument[i]))
+ if (!math_insert_greek(owner->view(),
+ argument[i]))
+#if 0
owner->getIntl()->getTrans()->TranslateAndInsert(argument[i], owner->view()->text);
+#else
+ owner->getIntl()->getTrans().TranslateAndInsert(argument[i], owner->view()->text);
+#endif
} else
+#if 0
owner->getIntl()->getTrans()->TranslateAndInsert(argument[i], owner->view()->text);
+#else
+ owner->getIntl()->getTrans().TranslateAndInsert(argument[i], owner->view()->text);
+#endif
}
owner->view()->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);