diff options
author | Lucas Baudin <xapantu@gmail.com> | 2012-03-03 15:44:54 +0100 |
---|---|---|
committer | Lucas Baudin <xapantu@gmail.com> | 2012-03-03 15:44:54 +0100 |
commit | 1cf3e446744ae679bc89b39dcbbcf6b4e9821f3a (patch) | |
tree | e3522d428eeac9f36be24cc5ab15272c1ab79477 /vcl | |
parent | 5122196acc2e8e9d8e71dad3d941b373b09e0b03 (diff) |
gtk3: Avoid crash with some themes (unico based)
We didn't check wether the window was big enough to draw all the widgets. Sometimes, when the window was displaying, it was too small and drawing outside of the window caused a crash, we didn't take into account that the root point for drawing gtk3 widgets wasn't always (0,0).
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx index 95aa313329b2..6bfad00b3170 100644 --- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx @@ -1002,8 +1002,10 @@ void GtkSalGraphics::renderAreaToPix( cairo_t *cr, unsigned char *src = data.get(); src += (int)ay * nStride + (int)ax * 3; + awidth = MIN (region->width, size.getX() - ax); + aheight = MIN (region->height, size.getY() - ay); - for (int y = 0; y < size.getY(); ++y) + for (int y = 0; y < aheight; ++y) { for (int x = 0; x < awidth && y < aheight; ++x) { |