diff options
author | 2015-02-18 15:27:43 -0500 | |
---|---|---|
committer | 2015-02-18 15:27:43 -0500 | |
commit | 821714fe5ab35785d35f6354c9c192e60ac84693 (patch) | |
tree | bbba5e73b0fb74ae452d9266d6bbbeaede382dbf | |
parent | e269446baaaa881d4d280ebf8c782a29950a5e35 (diff) | |
download | textadept-821714fe5ab35785d35f6354c9c192e60ac84693.tar.gz textadept-821714fe5ab35785d35f6354c9c192e60ac84693.zip |
Save and restore view-specific properties in view switch events; core/ui.lua
-rw-r--r-- | core/ui.lua | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/core/ui.lua b/core/ui.lua index dec028bd..de8bb10b 100644 --- a/core/ui.lua +++ b/core/ui.lua @@ -343,13 +343,6 @@ events_connect(events.BUFFER_BEFORE_SWITCH, function() -- Save view state. buffer._anchor, buffer._current_pos = buffer.anchor, buffer.current_pos buffer._top_line = buffer:doc_line_from_visible(buffer.first_visible_line) - buffer._view_eol, buffer._view_ws = buffer.view_eol, buffer.view_ws - buffer._wrap_mode = buffer.wrap_mode - buffer._margin_type_n, buffer._margin_width_n = {}, {} - for i = 0, 4 do - buffer._margin_type_n[i] = buffer.margin_type_n[i] - buffer._margin_width_n[i] = buffer.margin_width_n[i] - end -- Save fold state. buffer._folds = {} local folds, i = buffer._folds, buffer:contracted_fold_next(0) @@ -368,12 +361,6 @@ events_connect(events.BUFFER_AFTER_SWITCH, function() buffer:set_sel(buffer._anchor, buffer._current_pos) buffer:line_scroll(0, buffer:visible_from_doc_line(buffer._top_line) - buffer.first_visible_line) - buffer.view_eol, buffer.view_ws = buffer._view_eol, buffer._view_ws - buffer.wrap_mode = buffer._wrap_mode - for i = 0, 4 do - buffer.margin_type_n[i] = buffer._margin_type_n[i] - buffer.margin_width_n[i] = buffer._margin_width_n[i] - end end) -- Updates titlebar and statusbar. @@ -385,6 +372,33 @@ end events_connect(events.BUFFER_AFTER_SWITCH, update_bars) events_connect(events.VIEW_AFTER_SWITCH, update_bars) +-- Save view state. +local function save_view_state() + local buffer = buffer + buffer._view_eol, buffer._view_ws = buffer.view_eol, buffer.view_ws + buffer._wrap_mode = buffer.wrap_mode + buffer._margin_type_n, buffer._margin_width_n = {}, {} + for i = 0, 4 do + buffer._margin_type_n[i] = buffer.margin_type_n[i] + buffer._margin_width_n[i] = buffer.margin_width_n[i] + end +end +events_connect(events.BUFFER_BEFORE_SWITCH, save_view_state) +events_connect(events.VIEW_BEFORE_SWITCH, save_view_state) + +-- Restore view state. +local function restore_view_state() + local buffer = buffer + buffer.view_eol, buffer.view_ws = buffer._view_eol, buffer._view_ws + buffer.wrap_mode = buffer._wrap_mode + for i = 0, 4 do + buffer.margin_type_n[i] = buffer._margin_type_n[i] + buffer.margin_width_n[i] = buffer._margin_width_n[i] + end +end +events_connect(events.BUFFER_AFTER_SWITCH, restore_view_state) +events_connect(events.VIEW_AFTER_SWITCH, restore_view_state) + events_connect(events.RESET_AFTER, function() ui.statusbar_text = 'Lua reset' end) |