diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index eb4612ddbb..a4084a0442 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1576,6 +1576,15 @@ gtk_window_capture_motion (GtkWidget *widget, gtk_window_maybe_update_cursor (window, widget, NULL); } +static void +gtk_window_capture_leave (GtkWidget *widget) +{ + GtkWindow *window = GTK_WINDOW (widget); + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); + + g_clear_object (&priv->resize_cursor); +} + static void gtk_window_activate_default_activate (GtkWidget *widget, const char *name, @@ -1680,6 +1689,8 @@ gtk_window_init (GtkWindow *window) GTK_PHASE_CAPTURE); g_signal_connect_swapped (controller, "motion", G_CALLBACK (gtk_window_capture_motion), window); + g_signal_connect_swapped (controller, "leave", + G_CALLBACK (gtk_window_capture_leave), window); gtk_widget_add_controller (widget, controller); controller = gtk_event_controller_key_new ();