From 723eaf10fafdc73f9c1276fd8812e7842fe85c36 Mon Sep 17 00:00:00 2001 From: David Capello Date: Mon, 29 Jun 2020 17:54:03 -0300 Subject: [PATCH] Don't pick tiles outside tilemap from ColorPicker --- src/app/color_picker.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/app/color_picker.cpp b/src/app/color_picker.cpp index 3ff836e9f..effc9825f 100644 --- a/src/app/color_picker.cpp +++ b/src/app/color_picker.cpp @@ -134,9 +134,11 @@ void ColorPicker::pickColor(const Site& site, if (site.tilemapMode() == TilemapMode::Tiles) { if (!cels.empty()) { - gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos)); - m_color = app::Color::fromIndex( - doc::get_pixel(cels.front()->image(), tilePos.x, tilePos.y)); + const gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos)); + if (cels.front()->image()->bounds().contains(tilePos)) { + m_color = app::Color::fromIndex( + doc::get_pixel(cels.front()->image(), tilePos.x, tilePos.y)); + } } } else if (site.tilemapMode() == TilemapMode::Pixels) { @@ -156,9 +158,11 @@ void ColorPicker::pickColor(const Site& site, return; if (site.tilemapMode() == TilemapMode::Tiles) { - gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos)); - m_color = app::Color::fromIndex( - doc::get_pixel(cel->image(), tilePos.x, tilePos.y)); + const gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos)); + if (cel->image()->bounds().contains(tilePos)) { + m_color = app::Color::fromIndex( + doc::get_pixel(cel->image(), tilePos.x, tilePos.y)); + } } else if (site.tilemapMode() == TilemapMode::Pixels) { doc::color_t imageColor;