Re: GWorkspace and ProjectCenter: Application Icon DND issue

Riccardo Mottola <[email protected]> Fri, 13 Mar 2026 10:33:35 +0100
Newsgroups gmane.comp.lib.gnustep.general
Message-ID <[email protected]>
Hi,

Patrick CARDONA wrote:
> When you drag an Icon from GWorkspace onto the the icon target of the 
> Inspector Panel of ProjectCenter, it crashes. 

that is very annoying. At first I tried to reproduce the crash, but 
couldn't. Today I was able to.
I think there are two issues

1) if you drag the file carefully from left/top to the icon place, 
nothing happens. No crash. But no drag conglusion eitehr, my file was 
refused. Must understand why - might be my test file wasn't good or 
there is an issue with drag-drop code in PC

2) if while dragging you pass over the descriptive label below the 
field... then I get a crash.. or anyway other forbidden area, unsure.

The crash has 100% code in pure gnustep and ProjectCenter.... makes 
debugging harder:

0x00007ffff70b1bc1 in objc_msg_lookup () from 
/usr/lib/gcc/x86_64-pc-linux-gnu/15/libobjc.so.4
(gdb) bt
#0  0x00007ffff70b1bc1 in objc_msg_lookup () from 
/usr/lib/gcc/x86_64-pc-linux-gnu/15/libobjc.so.4
#1  0x00007ffff30dbf3e in -[XGDragView resetDragInfo] (self=<optimized 
out>, _cmd=<optimized out>) at XGDragView.m:206
#2  0x00007ffff30d0532 in -[XGServer(EventOps) processEvent:] 
(self=0x5555555daaf0, _cmd=<optimized out>, event=<optimized out>)
     at XGServerEvent.m:879
#3  0x00007ffff30cbb04 in -[XGServer(EventOps) 
receivedEvent:type:extra:forMode:] (self=0x5555555daaf0, _cmd=<optimized 
out>,
     data=<optimized out>, type=<optimized out>, extra=<optimized out>, 
mode=<optimized out>) at XGServerEvent.m:324
#4  0x00007ffff74f1296 in -[GSRunLoopCtxt pollUntil:within:] 
(self=<optimized out>, _cmd=0x7ffff7705de0 <_OBJC_SELECTOR_TABLE+1184>,
     milliseconds=<optimized out>, contexts=0x55555584c540) at 
GSRunLoopCtxt.m:604
#5  0x00007ffff740fd74 in -[NSRunLoop acceptInputForMode:beforeDate:] 
(self=0x55555584b270,
     _cmd=0x7ffff7705e10 <_OBJC_SELECTOR_TABLE+1232>, 
mode=0x7ffff7706c10 <_OBJC_INSTANCE_2>, limit_date=0x55555588fa60)
     at NSRunLoop.m:1264
#6  0x00007ffff740fa34 in -[NSRunLoop runMode:beforeDate:] 
(self=<optimized out>, _cmd=<optimized out>,
     mode=0x7ffff7706c10 <_OBJC_INSTANCE_2>, date=<optimized out>) at 
NSRunLoop.m:1344
#7  0x00007ffff7bde922 in -[GSDisplayServer(EventOps) 
getEventMatchingMask:beforeDate:inMode:dequeue:] (self=<optimized out>,
     _cmd=<optimized out>, mask=<optimized out>, limit=<optimized out>, 
mode=<optimized out>, flag=<optimized out>)
     at GSDisplayServer.m:1037
#8  0x00007ffff30cc5ea in -[XGServer(X11Ops) 
getEventMatchingMask:beforeDate:inMode:dequeue:] (self=0x5555555daaf0,
     _cmd=<optimized out>, mask=4294967295, limit=0x55555585e320, 
mode=0x7ffff7706c10 <_OBJC_INSTANCE_2>, flag=1 '\001')
     at XGServerEvent.m:2743
#9  0x00007ffff7a16b05 in DPSPeekEvent (ctxt=<optimized out>, 
mask=<optimized out>, limit=<optimized out>, mode=<optimized out>)
     at ../Headers/Additions/GNUstepGUI/GSDisplayServer.h:210
#10 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] 
(self=0x5555557d3690,
     _cmd=0x7ffff7d4d5f0 <_OBJC_SELECTOR_TABLE+2928>, mask=4294967295, 
expiration=0x55555585e320,
     mode=0x7ffff7706c10 <_OBJC_INSTANCE_2>, flag=1 '\001') at 
NSApplication.m:2226
#11 0x00007ffff7a18a1e in -[NSApplication run] (self=0x5555557d3690, 
_cmd=<optimized out>) at NSApplication.m:1597
#12 0x00007ffff79f856d in NSApplicationMain (argc=<optimized out>, 
argv=<optimized out>) at Functions.m:119
#13 0x00007ffff6d9e1f1 in ?? () from /lib64/libc.so.6
#14 0x00007ffff6d9e319 in __libc_start_main () from /lib64/libc.so.6
#15 0x0000555555561225 in _start ()

A list shows:
204    - (void) resetDragInfo
205    {
206      DESTROY(dragPasteboard);
207    }


it woudl seem that dragPasteboard is invalid there and thus crashes...  
could be indeed a gui bug, needs to be investigated.

Riccardo


#1  0x00007ffff30dbf3e in -[XGDragView resetDragInfo] (self=<optimized 
out>, _cmd=<optimized out>) at XGDragView.m:206