aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/interface-ncurses.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-16 23:46:08 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-17 03:56:42 +0100
commit2542eb02648294256a01ae4ecb6ac81bc8ab5094 (patch)
tree81166dbe78031f7764ca2d6d4925d96283ac29c5 /src/interface-ncurses.h
parente762a43754ba375789fa749ca2e00a3548500d6a (diff)
downloadsciteco-2542eb02648294256a01ae4ecb6ac81bc8ab5094.tar.gz
Make sure QRegister::view is properly initialized and cleaned up
* it must be initialized after the UI (Interface::main), so I added a View::initialize() function * the old initialize() method was renamed to setup() * use a global instance of QRegister::view so it is guaranteed to be destroyed only after any QRegisters that could still need it * Document API adapted to work with ViewCurrent references
Diffstat (limited to 'src/interface-ncurses.h')
-rw-r--r--src/interface-ncurses.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/interface-ncurses.h b/src/interface-ncurses.h
index d245e86..53b6b3e 100644
--- a/src/interface-ncurses.h
+++ b/src/interface-ncurses.h
@@ -35,8 +35,18 @@ typedef class ViewNCurses : public View<ViewNCurses> {
Scintilla *sci;
public:
- ViewNCurses();
- ~ViewNCurses();
+ ViewNCurses() : sci(NULL) {}
+
+ /* implementation of View::initialize() */
+ void initialize_impl(void);
+
+ inline ~ViewNCurses()
+ {
+ if (sci) {
+ delwin(get_window());
+ scintilla_delete(sci);
+ }
+ }
inline void
refresh(void)