aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/interface-gtk.cpp
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-gtk.cpp
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-gtk.cpp')
-rw-r--r--src/interface-gtk.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/interface-gtk.cpp b/src/interface-gtk.cpp
index ed5a8c9..3421d6f 100644
--- a/src/interface-gtk.cpp
+++ b/src/interface-gtk.cpp
@@ -53,7 +53,8 @@ static gboolean exit_app(GtkWidget *w, GdkEventAny *e, gpointer p);
#define UNNAMED_FILE "(Unnamed)"
-ViewGtk::ViewGtk()
+void
+ViewGtk::initialize_impl(void)
{
sci = SCINTILLA(scintilla_new());
/*
@@ -70,17 +71,7 @@ ViewGtk::ViewGtk()
g_signal_connect(G_OBJECT(sci), SCINTILLA_NOTIFY,
G_CALLBACK(scintilla_notify), NULL);
- initialize();
-}
-
-ViewGtk::~ViewGtk()
-{
- /*
- * This does NOT destroy the Scintilla object
- * and GTK widget, if it is the current view
- * (and therefore added to the vbox).
- */
- g_object_unref(G_OBJECT(sci));
+ setup();
}
void