Opened 3 years ago

Last modified 7 weeks ago

#17466 new bug

Icon-O-Matic's Save/Open panel of closed window crashes app (if more than one window is opened)

Reported by: alwayslivid Owned by: stippi
Priority: normal Milestone: R1
Component: Applications/Icon-O-Matic Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by alwayslivid)

Steps to reproduce:

  • Open two Icon-O-Matic windows.
  • Click on the "Open" panel on the first window.
  • Close the first window. The panel will still be alive, because it only gets deleted if the entire application shuts down (in the destructor of IconEditorApp).
  • The panel will still be visible to the user. If it is used, this will crash the entire application, because the window that the panel was originally "connected" to is now a dangling pointer.

This bug was found while experimenting with https://dev.haiku-os.org/ticket/8735 on hrev55697

The easiest solution here is to hide the panel.

Attachments (1)

Icon-O-Matic-5484-debug-09-03-2023-19-31-23.report (26.7 KB ) - added by Zardshard 22 months ago.

Download all attachments as: .zip

Change History (10)

comment:1 by nephele, 3 years ago

Component: - GeneralApplications/Icon-O-Matic
Keywords: icon-o-matic removed
Owner: changed from nobody to stippi
Priority: highnormal

comment:2 by alwayslivid, 3 years ago

Description: modified (diff)

comment:3 by bitigchi, 3 years ago

Why hide the panel and introduce extra non-orthodox behaviour? For instance, StyledEdit handles this case gracefully and even if the parent window is closed, it spawns a new one if a file is opened via the panel.

The underlying bigger issue here is that the file open/save panel is not modal, allowing interaction with the parent window. It should be modal as in other operating systems, not allowing interaction until the panel is dismissed.

comment:4 by nephele, 3 years ago

I can't reproduce this.

Anyhow, I don't see anything wrong with the design, if it crashes lets just fix the crash? the UI seems good as it is now, i don't want open panels to close because i closed a specific window. The OS might be able to remember which window opened which open panel, but the user surely wont.

comment:5 by Zardshard, 22 months ago

I managed to reproduce the problem.

comment:6 by humdinger, 22 months ago

I cannot reproduce with the instructions given in the ticket (beta4, 64bit):

  • Open two IOM files
  • "Open..." of the first window
  • Close first window.
  • Use the opened file dialog to open another IOM file

Works here...

comment:7 by Zardshard, 22 months ago

Icon-O-Matic does not crash for me too when following those steps.

To crash it, I did:

  • Open the Icon-O-Matic application directly from the deskbar
  • Press File->New
  • In the first window, press File->Open
  • Close the first window
  • Select a file in the file picker

comment:8 by humdinger, 22 months ago

That works, i.e crashes. :)

comment:9 by Zardshard, 7 weeks ago

There was some work towards fixing this at https://review.haiku-os.org/c/haiku/+/8385

Note: See TracTickets for help on using tickets.