[gnome-tetravex] Fix drawing code, part 2.
- From: Arnaud B. <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tetravex] Fix drawing code, part 2.
- Date: Wed, 18 Sep 2019 02:41:07 +0000 (UTC)
commit 4cec1edbba1d0919244294a43a9a707a561e87ad
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date: Wed Sep 18 04:40:47 2019 +0200
Fix drawing code, part 2.
Redraw the last selected tile,
fixing the drawing bug of when
inverting two contiguous tiles
multiple times. Not sure it is
a good idea to search a better
way of doing that, so pushing.
src/puzzle-view.vala | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/src/puzzle-view.vala b/src/puzzle-view.vala
index d11a8fd..fe8c417 100644
--- a/src/puzzle-view.vala
+++ b/src/puzzle-view.vala
@@ -80,6 +80,7 @@ private class PuzzleView : Gtk.DrawingArea
/* Tile being controlled by the mouse */
private TileImage? selected_tile = null;
+ private TileImage? last_selected_tile = null;
internal signal void tile_selected (bool selected);
/* Timeout to detect if a click is a selection or a drag */
@@ -355,6 +356,19 @@ private class PuzzleView : Gtk.DrawingArea
context.restore ();
}
+ /* Redraw last selected tile, fixing problem when interverting multiple times two contiguous tiles */
+ if ((selected_tile == null)
+ && (last_selected_tile != null))
+ {
+ context.save ();
+ context.translate ((int) (((!) last_selected_tile).x + 0.5), (int) (((!) last_selected_tile).y +
0.5));
+ if (puzzle.paused)
+ theme.draw_paused_tile (context, size);
+ else
+ theme.draw_tile (context, size, ((!) last_selected_tile).tile);
+ context.restore ();
+ }
+
/* Draw pause overlay */
if (puzzle.paused)
{
@@ -398,6 +412,7 @@ private class PuzzleView : Gtk.DrawingArea
if (x >= image.x && x <= image.x + size && y >= image.y && y <= image.y + size)
{
selected_tile = image;
+ last_selected_tile = image;
tile_selected (true);
selected_x_offset = x - image.x;
selected_y_offset = y - image.y;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]