From 32434dbc2886b76f7a611fbe61963244f10659ca Mon Sep 17 00:00:00 2001 From: Stu Date: Sat, 13 Dec 2025 22:33:56 -0500 Subject: [PATCH] Guard drag handler with recover and nil checks --- cmd/gtkplayer/main.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmd/gtkplayer/main.go b/cmd/gtkplayer/main.go index a06ff24..a4fcfd9 100644 --- a/cmd/gtkplayer/main.go +++ b/cmd/gtkplayer/main.go @@ -275,6 +275,14 @@ func setupDragDest(p *pane, win *gtk.Window) { // DragDestSet requires at least one target; use the URI target. p.area.DragDestSet(gtk.DEST_DEFAULT_ALL, []gtk.TargetEntry{*target}, gdk.ACTION_COPY) p.area.Connect("drag-data-received", func(_ *gtk.DrawingArea, ctx *gdk.DragContext, x, y int, data *gtk.SelectionData, info uint, t uint32) { + defer func() { + if r := recover(); r != nil { + log.Printf("drag handler panic: %v", r) + } + }() + if data == nil { + return + } uris := data.GetURIs() if len(uris) == 0 { return