---
 gtkboard.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/gtkboard.c b/gtkboard.c
index 588c7d90..e9160c51 100644
--- a/gtkboard.c
+++ b/gtkboard.c
@@ -332,9 +332,6 @@ board_draw_area(cairo_t * cr, gint x, gint y, gint cx, gint 
cy, BoardData * bd)
                     cairo_restore(cr);
                 }
             }
-#if !GTK_CHECK_VERSION(3,0,0)
-            gtk_widget_queue_draw(bd->drawing_area);
-#endif
         }
 #if defined(USE_BOARD3D)
     }
@@ -343,13 +340,14 @@ board_draw_area(cairo_t * cr, gint x, gint y, gint cx, 
gint cy, BoardData * bd)
 
 #if GTK_CHECK_VERSION(3,0,0)
 static gboolean
-board_draw(GtkWidget * drawing_area, cairo_t * cr, BoardData * bd)
+board_draw(GtkWidget *widget, cairo_t *cr, gpointer user_data)
 {
-    if (bd->rd->nSize == 0)
+    BoardData *bd = user_data;
+    if (!bd || !bd->rd || bd->rd->nSize == 0)
         return TRUE;
 
-    board_draw_area(cr, 0, 0, gtk_widget_get_allocated_width(drawing_area),
-                    gtk_widget_get_allocated_height(drawing_area), bd);
+    board_draw_area(cr, 0, 0, gtk_widget_get_allocated_width(widget),
+                    gtk_widget_get_allocated_height(widget), bd);
     return TRUE;
 }
 #else
@@ -2157,6 +2155,7 @@ board_motion_notify(GtkWidget * board, GdkEventMotion * 
event, BoardData * bd)
         if ((ap[bd->drag_colour == -1 ? 0 : 1].pt == PLAYER_HUMAN)      /* not 
for computer turn */
             &&gdk_event_get_time((GdkEvent *) event) - bd->click_time > 
HINT_TIME) {
             bd->DragTargetHelp = legal_dest_points(bd, bd->iTargetHelpPoints);
+            gtk_widget_queue_draw(bd->drawing_area);
         }
     }
 
-- 
2.49.0


Reply via email to