From 7860e2d5cd736d31cbf2faf938da0a9c5017d45c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Apr 2017 20:10:09 -0400 Subject: [PATCH] =?UTF-8?q?flowbox:=20don=E2=80=99t=20try=20to=20focus=20o?= =?UTF-8?q?r=20draw=20NULL=20widgets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rubberbanding over an empty area results in warnings, due to the code trying to focus and queue a null pointer for drawing. https://bugzilla.gnome.org/show_bug.cgi?id=780734 --- gtk/gtkflowbox.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gtk/gtkflowbox.c b/gtk/gtkflowbox.c index d443047c96..2ad1d487ff 100644 --- a/gtk/gtkflowbox.c +++ b/gtk/gtkflowbox.c @@ -2808,7 +2808,8 @@ gtk_flow_box_drag_gesture_update (GtkGestureDrag *gesture, g_object_unref (priv->rubberband_node); /* Grab focus here, so Escape-to-stop-rubberband works */ - gtk_flow_box_update_cursor (box, priv->rubberband_first); + if (priv->rubberband_first) + gtk_flow_box_update_cursor (box, priv->rubberband_first); gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); } @@ -2818,7 +2819,11 @@ gtk_flow_box_drag_gesture_update (GtkGestureDrag *gesture, start_y + offset_y); if (priv->rubberband_first == NULL) - priv->rubberband_first = child; + { + priv->rubberband_first = child; + if (priv->rubberband_first) + gtk_flow_box_update_cursor (box, priv->rubberband_first); + } if (child != NULL) priv->rubberband_last = child;