aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui/macwindow.cpp
diff options
context:
space:
mode:
authorBorja Lorente2016-06-02 11:55:42 +0200
committerBorja Lorente2016-07-31 14:05:15 +0200
commitb6722a1477e0ae30c8429dc77f9e1381651f2603 (patch)
tree7dd97b34ee95d1b70bf4640e7a7f081187957792 /graphics/macgui/macwindow.cpp
parent4a16f5fc3987be23dd67d6ed42c9f8f0453eba6d (diff)
downloadscummvm-rg350-b6722a1477e0ae30c8429dc77f9e1381651f2603.tar.gz
scummvm-rg350-b6722a1477e0ae30c8429dc77f9e1381651f2603.tar.bz2
scummvm-rg350-b6722a1477e0ae30c8429dc77f9e1381651f2603.zip
GRAPHICS: Fix segfault in macwindow
Diffstat (limited to 'graphics/macgui/macwindow.cpp')
-rw-r--r--graphics/macgui/macwindow.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index 0ca0a89acb..dfb1c07f86 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -79,6 +79,8 @@ MacWindow::MacWindow(int id, bool scrollable, bool resizable, bool editable, Mac
_type = kWindowWindow;
+ _borders = nullptr;
+
}
MacWindow::~MacWindow() {
@@ -148,11 +150,13 @@ bool MacWindow::draw(ManagedSurface *g, bool forceRedraw) {
_composeSurface.blitFrom(_surface, Common::Rect(0, 0, _surface.w - 2, _surface.h - 2), Common::Point(2, 2));
_composeSurface.transBlitFrom(_borderSurface, kColorGreen);
- TransparentSurface tr(_borders);
- //tr.create(_composeSurface.w, _composeSurface.h, tr.getSupportedPixelFormat());
-
- //_bmp->blit(tr, 0, 0, tr.w, tr.h)
- _composeSurface.transBlitFrom(tr);
+ if (_borders) {
+ TransparentSurface tr(*_borders);
+ //tr.create(_composeSurface.w, _composeSurface.h, tr.getSupportedPixelFormat());
+
+ //_bmp->blit(tr, 0, 0, tr.w, tr.h)
+ _composeSurface.transBlitFrom(tr);
+ }
g->transBlitFrom(_composeSurface, _composeSurface.getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), kColorGreen2);
@@ -286,8 +290,8 @@ void MacWindow::setHighlight(WindowClick highlightedPart) {
}
void MacWindow::setBorders(TransparentSurface *source) {
- _bmp = NinePatchBitmap(source, true);
- _borders = TransparentSurface(*source);
+ _bmp = new NinePatchBitmap(source, true);
+ _borders = new TransparentSurface(*source);
}