diff options
| -rw-r--r-- | src/Fl_Window.cxx | 1 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.cxx | 8 |
3 files changed, 10 insertions, 0 deletions
diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx index c77fb4595..0a2d083ad 100644 --- a/src/Fl_Window.cxx +++ b/src/Fl_Window.cxx @@ -92,6 +92,7 @@ Fl_Window::~Fl_Window() { } free_icons(); delete icon_; + delete pWindowDriver; } diff --git a/src/drivers/X11/Fl_X11_Window_Driver.H b/src/drivers/X11/Fl_X11_Window_Driver.H index 458d1bd1c..c7ea3d382 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.H +++ b/src/drivers/X11/Fl_X11_Window_Driver.H @@ -58,6 +58,7 @@ private: void shape_alpha_(Fl_Image* img, int offset); public: Fl_X11_Window_Driver(Fl_Window*); + ~Fl_X11_Window_Driver(); virtual void take_focus(); virtual void shape(const Fl_Image* img); virtual void draw(); diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx index efaa31851..833891ae4 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx @@ -59,6 +59,14 @@ Fl_X11_Window_Driver::Fl_X11_Window_Driver(Fl_Window *win) } +Fl_X11_Window_Driver::~Fl_X11_Window_Driver() +{ + if (shape_data_) { + delete shape_data_->todelete_; + delete shape_data_; + } +} + void Fl_X11_Window_Driver::take_focus() { Fl_X *i = Fl_X::i(pWindow); |
