summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Melcher <git@matthiasm.com>2019-01-13 23:32:34 +0100
committerMatthias Melcher <git@matthiasm.com>2019-01-13 23:32:34 +0100
commit3d6b234c274d1376a95d462f13dea69bd117953c (patch)
treebb44c7be31fe4dc7fc2de1840e7610d44f51ba75
parenta1ebe87a885679feed893fc8f14d2425abd36cc8 (diff)
STR 3460: remember cursor position in code editor
When editing code in Fluid, the COde_Type class will now remember the last cursor position and reopen the editor dialog at that position (not for external editor).
-rw-r--r--fluid/Fl_Function_Type.cxx2
-rw-r--r--fluid/Fl_Type.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/fluid/Fl_Function_Type.cxx b/fluid/Fl_Function_Type.cxx
index e1ddf6c3a..558365325 100644
--- a/fluid/Fl_Function_Type.cxx
+++ b/fluid/Fl_Function_Type.cxx
@@ -456,6 +456,7 @@ void Fl_Code_Type::open() {
if (!code_panel) make_code_panel();
const char *text = name();
code_input->buffer()->text( text ? text : "" );
+ code_input->insert_position(cursor_position_);
code_panel->show();
const char* message = 0;
for (;;) { // repeat as long as there are errors
@@ -472,6 +473,7 @@ void Fl_Code_Type::open() {
free(c);
break;
}
+ cursor_position_ = code_input->insert_position();
BREAK2:
code_panel->hide();
}
diff --git a/fluid/Fl_Type.h b/fluid/Fl_Type.h
index a55ea3c44..45b881ee3 100644
--- a/fluid/Fl_Type.h
+++ b/fluid/Fl_Type.h
@@ -193,7 +193,9 @@ public:
class Fl_Code_Type : public Fl_Type {
ExternalCodeEditor editor_;
+ int cursor_position_;
public:
+ Fl_Code_Type() { cursor_position_ = 0; }
Fl_Type *make();
void write();
void write_code1();