diff --git a/src/display/canvas.cc b/src/display/canvas.cc index bc1ea9af..498d493d 100644 --- a/src/display/canvas.cc +++ b/src/display/canvas.cc @@ -6,8 +6,8 @@ namespace display { void Canvas::resize(int x, int y, int w, int h) { - delwin(m_window); - m_window = newwin(h, w, y, x); + wresize(m_window, h, w); + mvwin(m_window, y, x); } void diff --git a/src/display/canvas.h b/src/display/canvas.h index fa745dec..08f82114 100644 --- a/src/display/canvas.h +++ b/src/display/canvas.h @@ -66,6 +66,9 @@ public: A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5, a6); } private: + Canvas(const Canvas&); + void operator = (const Canvas&); + WINDOW* m_window; }; diff --git a/src/display/manager.cc b/src/display/manager.cc index 72ca6ec9..377fa462 100644 --- a/src/display/manager.cc +++ b/src/display/manager.cc @@ -65,6 +65,8 @@ Manager::adjust_layout() { void Manager::do_update() { + wnoutrefresh(stdscr); + std::for_each(begin(), end(), std::mem_fun(&Window::redraw)); std::for_each(begin(), end(), std::mem_fun(&Window::refresh)); diff --git a/src/display/window.cc b/src/display/window.cc index e917e5b2..a34536a5 100644 --- a/src/display/window.cc +++ b/src/display/window.cc @@ -7,6 +7,10 @@ namespace display { +Window::~Window() { + delete m_canvas; +} + void Window::refresh() { m_canvas->refresh(); diff --git a/src/display/window.h b/src/display/window.h index aad3ef9c..f7a240dc 100644 --- a/src/display/window.h +++ b/src/display/window.h @@ -11,7 +11,8 @@ class Window { public: Window(Canvas* c = NULL, bool d = false, int h = 1) : m_canvas(c), m_dynamic(d), m_minHeight(h) {} - virtual ~Window() {} + + virtual ~Window(); bool is_dynamic() { return m_dynamic; } bool is_dirty() { return m_lastDraw == 0; } diff --git a/src/ui/download.h b/src/ui/download.h index 3c203564..b8ec6fa6 100644 --- a/src/ui/download.h +++ b/src/ui/download.h @@ -36,6 +36,9 @@ public: void disable(); private: + Download(const Download&); + void operator = (const Download&); + void receive_next(); void receive_prev(); diff --git a/src/ui/download_list.h b/src/ui/download_list.h index 4df19f4e..c2003405 100644 --- a/src/ui/download_list.h +++ b/src/ui/download_list.h @@ -30,6 +30,9 @@ public: void disable(); private: + DownloadList(const DownloadList&); + void operator = (const DownloadList&); + void receive_next(); void receive_prev();