View Issue Details

IDProjectCategoryView StatusLast Update
0001181OpenMPTUser Interfacepublic2019-01-27 22:17
Reporterhicoleriv1 Assigned ToSaga Musix  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformWine 3.0.3 64-BitOSUbuntuOS Version16.04
Product VersionOpenMPT 1.28.01.00 / libopenmpt 0.4.0 (upgrade first) 
Target VersionOpenMPT 1.28.02.00 / libopenmpt 0.4.1 (upgrade first)Fixed in VersionOpenMPT 1.28.02.00 / libopenmpt 0.4.1 (upgrade first) 
Summary0001181: New file picker not remembering last acessed directory nor storing directory access history after restart
Description

The new file picker that comes up on OpenMPT 1.28 does not remember the last directory a module was loaded from after it is restarted. Every time a file dialog is brought up the current position is reset to root (/).

Additionally, when a module is loaded and subsequently another module is loaded from a different directory, the file picker does not remember the directories traversed to access that particular module after the file dialog is brought up again (that is, the left and right buttons on the top left do nothing when the dialog is brought up again.

The file dialog also lacks a textbox displaying the current directory and the bottom text box does not compensate for it.
It also lacks an "up one level" or "parent directory" button, I believe.

Steps To Reproduce

Click File -> Open on the menu bar, or File -> Save As, or any other option that opens the file select dialog.

Additional Information

OpenMPT has crashed once with the following error:

Unhandled exception 0xC0000096 at address 0xf713f612 occurred.
Could not create the following directory for saving debug information and modified files to: C:\<...>\OpenMPT Crash Files\<Current date and time>
OpenMPT 1.28.0.01.00 32 bit UNICODE (https://source.openmpt.org/svn/openmpt/branches/OpenMPT-1.28@11100 (clean))
Session error count: 1

OpenMPT did not exit after this dialog occured, but hanged up instead.

The following log is produced when OpenMPT is started, a file selection dialog is opened and then made to quit:

00b0:fixme:shell:InitNetworkAddressControl stub
00b6:fixme:ver:GetCurrentPackageId (0x109fe8c (nil)): stub
00b0:fixme:htmlhelp:HtmlHelpW HH case HH_INITIALIZE not handled.
00b0:fixme:gdiplus:resample_bitmap_pixel Unimplemented interpolation 7
00b0:err:shell:SHGetFileInfoW pidl is null!
0019:fixme:service:QueryServiceConfig2W Level 6 not implemented
00b0:fixme:commdlg:IServiceProvider_fnQueryService Interface {e07010ec-bc17-44c0-97b0-46c7c95b9edc} requested from unknown service {e07010ec-bc17-44c0-97b0-46c7c95b9edc}
00b0:fixme:shell:ViewModeToListStyle ViewMode 0 not implemented
00b0:fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x1e0b78 (2, 1026, a003, 0, 0x33e3d8)
00b0:fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x1e0b78 (2, 1026, a004, 0, 0x33e3d8)
00b0:fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x1e0b78 (2, 1025, a003, 1, 0x33e3d8)
00b0:fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x1e0b78 (2, 1025, a004, 1, 0x33e3d8)
00b0:fixme:nstc:NSTC2_fnSetControlStyle2 mask & style (0x00000004) contains unsupported style(s): 0x00000004
0019:fixme:service:QueryServiceConfig2W Level 6 not implemented
004b:err:ole:CoReleaseMarshalData IMarshal::ReleaseMarshalData failed with error 0x8001011d
0056:err:ole:CoReleaseMarshalData IMarshal::ReleaseMarshalData failed with error 0x8001011d
005f:err:ole:CoReleaseMarshalData IMarshal::ReleaseMarshalData failed with error 0x8001011d
00b0:fixme:htmlhelp:HtmlHelpW HH case HH_UNINITIALIZE not handled.
TagsNo tags attached.
Attached Files
1.png (8,779 bytes)   
1.png (8,779 bytes)   
wine3.5.png (59,283 bytes)   
wine3.5.png (59,283 bytes)   
Has the bug occurred in previous versions?No
Tested code revision (in case you know it)

Activities

Saga Musix

Saga Musix

2018-12-26 10:51

administrator   ~0003775

The new file dialog uses IFileDialog rather than the legacy GetOpenFileName/GetSaveFileName API, if available. It seems a bit surprising that Wine would implement those two with completely different, incomplete dialogs. I won't be able to verify this on a Wine setup myself in the next few days, so it would make sense if you could report this to the Wine developers as well (including the information I provided here). We might have to fall back to not enabling Vista-styled file dialogs for Wine.

Saga Musix

Saga Musix

2018-12-26 10:57

administrator   ~0003776

I have disabled IFileDialog-based filenames for Wine for now. Revision 11120 or later should be available in a few hours from https://builds.openmpt.org/builds/ for you to test.

hicoleriv1

hicoleriv1

2018-12-27 08:45

reporter   ~0003777

Revision 11120's file dialog works as expected and does remember the last directory accessed across restarts (the old file dialog doesn't have the forward/back buttons so I can't say whether the new file dialog not remembering the directory traversal history when it is opened again normal behaviour or not). Also, setting wine's windows version to windows XP or lower in the Applications tab works as a workaround, as you have suggested.

I think I have seen this same file dialog on some other applications before on earlier wine versions, and I don't have those applications at the moment so I cannot really confirm that the vista-style file dialog works like this all the the time. I would like confirmation from a second machine (like yours) first before reporting this to wine.

Also, what do you mean by "different, Incomplete dialogs" ?

Saga Musix

Saga Musix

2018-12-27 10:54

administrator   ~0003778

Also, what do you mean by "different, Incomplete dialogs" ?

Well, you said that some controls that you expect to be present are missing, and its behaviour (such as using the default path as indicated by OpenMPT) is also not fully implemented. This makes me think that IFileDialog is a completely separate but unfinished implementation in Wine. Revision 11120 no longer uses IFileDialog on Wine but "classic" GetOpenFileName/GetSaveFileName, even if Wine reports to be Vista or newer (which is the Windows version that introduced IFileDialog).

hicoleriv1

hicoleriv1

2018-12-27 15:58

reporter   ~0003779

I see. But I am still hesitant to file a bug report for this because I think that the vista style file dialog's implementation has remained in this manner for quite some time, and nobody filing a bug report/feature request during this time could mean that this has not been an issue. Famitracker seems to use IFileDialog as well and has the same interface as the previously posted screenshot and has the same problems.

I have attached a screen shot from an actual Windows vista dialog for comparison. The wine implementation appearance-wise is mostly missing the top path bar and the "parent directory button", though this button was added in windows 8.

vista.jpg (38,707 bytes)   
vista.jpg (38,707 bytes)   
Saga Musix

Saga Musix

2019-01-04 21:49

administrator   ~0003801

Using Wine 3.5 on Linux Mint, this is what I see. Looks perfectly usable...

Issue History

Date Modified Username Field Change
2018-12-26 06:42 hicoleriv1 New Issue
2018-12-26 06:42 hicoleriv1 File Added: 1.png
2018-12-26 06:47 hicoleriv1 Description Updated
2018-12-26 10:51 Saga Musix Note Added: 0003775
2018-12-26 10:57 Saga Musix Note Added: 0003776
2018-12-27 08:45 hicoleriv1 Note Added: 0003777
2018-12-27 10:54 Saga Musix Note Added: 0003778
2018-12-27 15:58 hicoleriv1 File Added: vista.jpg
2018-12-27 15:58 hicoleriv1 Note Added: 0003779
2019-01-04 21:49 Saga Musix File Added: wine3.5.png
2019-01-04 21:49 Saga Musix Note Added: 0003801
2019-01-04 22:11 Saga Musix Assigned To => Saga Musix
2019-01-04 22:11 Saga Musix Status new => assigned
2019-01-06 13:11 Saga Musix Status assigned => resolved
2019-01-06 13:11 Saga Musix Resolution open => fixed
2019-01-06 13:11 Saga Musix Fixed in Version => OpenMPT 1.28.02.00 / libopenmpt 0.4.1 (upgrade first)
2019-01-06 13:11 Saga Musix Target Version => OpenMPT 1.28.02.00 / libopenmpt 0.4.1 (upgrade first)