Don't pick tiles outside tilemap from ColorPicker

This commit is contained in:
David Capello 2020-06-29 17:54:03 -03:00
parent 9420bfff18
commit 723eaf10fa

View File

@ -134,9 +134,11 @@ void ColorPicker::pickColor(const Site& site,
if (site.tilemapMode() == TilemapMode::Tiles) { if (site.tilemapMode() == TilemapMode::Tiles) {
if (!cels.empty()) { if (!cels.empty()) {
gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos)); const gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos));
m_color = app::Color::fromIndex( if (cels.front()->image()->bounds().contains(tilePos)) {
doc::get_pixel(cels.front()->image(), tilePos.x, tilePos.y)); m_color = app::Color::fromIndex(
doc::get_pixel(cels.front()->image(), tilePos.x, tilePos.y));
}
} }
} }
else if (site.tilemapMode() == TilemapMode::Pixels) { else if (site.tilemapMode() == TilemapMode::Pixels) {
@ -156,9 +158,11 @@ void ColorPicker::pickColor(const Site& site,
return; return;
if (site.tilemapMode() == TilemapMode::Tiles) { if (site.tilemapMode() == TilemapMode::Tiles) {
gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos)); const gfx::Point tilePos = site.grid().canvasToTile(gfx::Point(pos));
m_color = app::Color::fromIndex( if (cel->image()->bounds().contains(tilePos)) {
doc::get_pixel(cel->image(), tilePos.x, tilePos.y)); m_color = app::Color::fromIndex(
doc::get_pixel(cel->image(), tilePos.x, tilePos.y));
}
} }
else if (site.tilemapMode() == TilemapMode::Pixels) { else if (site.tilemapMode() == TilemapMode::Pixels) {
doc::color_t imageColor; doc::color_t imageColor;