terrymacdonald / DisplayMagician

DisplayMagician is an open source tool for automatically configuring your displays and sound for a game or application from a single Windows Shortcut.
https://displaymagician.littlebitbig.com
GNU General Public License v3.0
444 stars 18 forks source link

Superdisplay Profile Not Loading After System Reboot #103

Open cerahmed opened 2 years ago

cerahmed commented 2 years ago

Describe the bug This would be a continuation for issue#96 regarding Superdisplay profile not loading correctly, however this time with new symptoms.

So I'm currently using version 2.3.1.28 found in this comment. Everything was working perfectly and I was able to switch to every Superdisplay profile without issues.

However, seemingly after restarting my pc and reconnecting my Superdisplay tablet, switching to the Superdisplay (both Extended and Duplicated) profiles seems to disable all USB monitors.

To Reproduce I haven't yet confirmed if it happens after every reboot, but I'll do so if the issue can't be figured out from the log file.

Screenshots Configs-Changed

DisplayMagician-Support-20220506-1444.zip

cerahmed commented 2 years ago

Hey Terry,

NvidiaInfo V1.7.9 works 99% of the time - as I elaborated in this comment. Sometimes I have to apply the extended profile twice for it to load properly.

As for CCDInfo, I've done what you've requested:

1) Created extended profile in Windows Settings -> waited +30 seconds -> saved extended.cfg. 2) Created duplicated profile in Windows Settings -> waited +30 seconds -> saved duplicated.cfg. 3) Tried loading extended.cfg -> terminal gives me that it has been applied correctly, but I can't see any changes! 4) Tried loading duplicated.cfg -> terminal says profile is already applied and no changes took place.

I haven't restarted the PC during the above testing.

All logs and cfg's are attached.

CCDInfo.zip

terrymacdonald commented 2 years ago

ok @cerahmed, I found some possible problems with the config that DisplayMagician generates which may be causing your issue.

1. The extended.cfg lists 3 different adapters in there:

"DisplayAdapters": {
    "75441": "\\\\?\\PCI#VEN_10DE&DEV_2484&SUBSYS_261719DA&REV_A1#4&2de8dd5b&0&0008#{5b45201d-f2f2-4f3b-85bb-30ff1f953599}",
    "7077733": "\\\\?\\SWD#{1BAAD4AC-CD9D-4207-B4FF-C4F160604B13}#0000#{5b45201d-f2f2-4f3b-85bb-30ff1f953599}",
    "118797": "\\\\?\\SuperDisplay#Display#1&3343b12b&6&1234#{5b45201d-f2f2-4f3b-85bb-30ff1f953599}"
  },

This is good.

The duplicated.cfg only has 2 adapters listed (75441 and 7077733). Yet it still has the old adapter ID 118797 still in the duplicated.cfg. That isn't going to work. I think that is the cause of this error in CCDInfo-reload-duplicated.log:

2022-06-11 15:02:51.2562|ERROR|DisplayMagicianShared.SharedLogger|WinLibrary/PatchAdapterIDs: Exception while going through the display config HDR info to update the adapter id

2. I've found the following in the CCDInfo-reload-extended.log:

2022-06-11 15:02:13.6467|ERROR|DisplayMagicianShared.SharedLogger|WinLibrary/PatchAdapterIDs: Saved adapter 118797 (AdapterName is \\?\SuperDisplay#Display#1&3343b12b&6&1234#{5b45201d-f2f2-4f3b-85bb-30ff1f953599}) doesn't have a current match! The adapters have changed since the configuration was last saved.

This is a weird, one, as the GetCurrentAdapterIDs function doesn't see the adapter 118797 at all! And I think I know why. At the moment I only get the list of adapters from the config. The only display connected to adapter 118797 is the cloned display, and that is getting 'patched' as part of the cloned config scanning. This then means that any GetCurrentAdapterIDs scanning that is while your cloned display is active is effectively "missing" the adapter of the cloned display (118797).

This is a REALLY subtle bug. It will only affect users in the following scenario:

In that one case, the GetCurrentAdapterIDs will miss the adapter and the config will not work.

Right. Well knowing the problem is only half the battle. I now have to figure out a way to get around those 2 issues I've listed. I'd have a think about it over the next few days and then we'll go from there.

Thanks Terry

terrymacdonald commented 2 years ago

Deeper inspection proves that 2. may not be quite the error I thought it was. I actually don't use the previous config as part of GetCurrentAdapterIDs, but instead actually specifically call windows QueryDisplayConfig requesting all adapters that windows has connected, even if they are not currently in use. This would successfully pick up the SuperDisplay adapter if it was connected. I've been through the code in detail and it is working as it should.

My only thought then is that at the time you ran that command that the Superdisplay was possibly in its 'paused' state. I've noticed that Superdisplay automatically unplugs the monitor from Windows when it loses connection, or if the Superdisplay app is switched from the foreground. The monitor disappears from the Windows Display Settings layout at the same time as the displays switch and re-position the other displays that are left.

It could be that the load extended.cfg command happened just as the Superdisplay went to sleep, and that means that the superdisplay adapter 118797 disappeared from windows. DisplayMagician would have queried windows, and would have seen a missing display adapter. This would have been considered an error by WinLibrary, and the load extended.cfg wouldn't work.

If this is the case, then there isn't anything I can do to change DisplayMagician. DisplayMagician needs to work this way to stop people using invalid configurations. I'll try doing a bit more experimentation with Superdisplay to see if I can figure out the reasons that it disconnects. I may need to add a polling command into CCDInfo to see if I can track the moments that Superdisplay disconnects itself from Windows, and see if there is a pattern I can see in when it happens.

Anyway - sorry for the bad news :/

Thanks Terry

cerahmed commented 2 years ago

It could be that the load extended.cfg command happened just as the Superdisplay went to sleep, and that means that the superdisplay adapter 118797 disappeared from windows. DisplayMagician would have queried windows, and would have seen a missing display adapter. This would have been considered an error by WinLibrary, and the load extended.cfg wouldn't work.

Hey Terry, I can assure you that this is not the case, as I'm 100% SuperDisplay is indeed active during the loading process. Forgot to mention that I'm using SuperDisplay beta release (which you can enroll in via Google Play Store) - this beta version includes the option to always keep the app running even in background (even though I never dismissed the app during loading the profile).

I don't think the beta version acts differently than the stable version in its core; but this is a point I was supposed to mention at the beginningπŸ‘Œ

cerahmed commented 2 years ago

One fact to give us hope is that -as I mentioned earlier- NvidiaInfo V1.7.9 still works ok (despite having to load extended.cfg twice for it to load).

My gut feeling is that the order at which DisplayMagician "patches" the monitors' ID's is supposed to be moved to a more logical place - perhaps right before loading the profile, instead of at the startup of DisplayMagician.

I haven't examined the source code to come up with this conclusion, but I have noticed that closing DisplayMagician and relaunching it fixes the issue as I mentioned in my previous testing .. so I though it might be the reason why.

cerahmed commented 2 years ago

P.S. as I seem to be one of only a few people (if any) using SuperDisplay together with DisplayMagician, I feel like you've given this issue so much time and effort. Please feel free to set it aside and come back to it whenever you're completely free to work on it. No pressure and I have no expectation to a soon resolution but I'm glad to do any testing whenever you have a new release πŸ‘πŸ‘Œ

terrymacdonald commented 2 years ago

My gut feeling is that the order at which DisplayMagician "patches" the monitors' ID's is supposed to be moved to a more logical place - perhaps right before loading the profile, instead of at the startup of DisplayMagician.

@cerahmed patching IDs happens when the profiles are loaded from the disk, as they are then theoretically in a 'patched' state in memory, This was deliberately chosen as it is needed for the equality testing to work. Most people don't have a changing set of video adapters :).

That said, it is likely that it will be more common to have software based video adapters, or that there are external adapters that can be plugged in partway through DisplayMagician running. This never used to be a problem because a new DisplayMagician instance would be created each time that a shortcut was run. This would mean that DisplayMagician would generally always have the most current display adapters in it's memory. Now that I have moved to a single instance model to fix other issues and speed up general usage, this appears to be one of the more subtle side effects of that.

One point to note, is that when you click on a profile it use it in DisplayMagician, it currently compares the existing config currently running with the one that has been selected. If they are different, then DisplayMagician attempts to load it. I will have to sit down when I am not so tired and work through the process properly to see whether I could insert an additional check/update process that would reupdate the relevant parts, but I will need to sit down on model out where there could be changes needed.

I really don't want to break what's there though, so we have to be pretty surgical with any changes we make. This is a core part of DisplayMagician and something that has taken over a year to get to a generally working state.

Thanks Terry

terrymacdonald commented 2 years ago

@cerahmed some hopefully good news! I have another CCDINfo to try, and this implements the new adapter logic that will store all adapters in the system along with the profile. This should stop that other error from being the cause of it not working, but it equally may cause another issue :). Let's see.

Can you please download CCDInfo v1.8.1 from here https://github.com/terrymacdonald/CCDInfo/releases/tag/v1.8.1

Then please delete your old duplicated.cfg and extended.cfg

Then please create them again, waiting 30 seconds after making the screen changes before you save the CFG files.

Then please do the same series of CCDInfo tests we have been doing last time again. This may cause some more errors, but it should get us further down the line at least!

If this works, then we'll try again without waiting 30 seconds (to test if that makes a difference).

Thanks Terry

cerahmed commented 2 years ago

Hey Terry!

I have downloaded CCDInfo V1.8.1 and did the required testing all without restarting for now. Still it seems like nothing is changing, but hopefully the logs are richer this time!

1) I created the extended profile in Windows settings -> waited for 30 seconds -> saved extended.cfg and renamed log to save-extended.

2) I then created the duplicated profile in Windows -> waited for 30 seconds -> saved duplicated.cfg and renamed log to save-duplicated.

3) Tried loading extended.cfg -> nothing seem to have changed but terminal returns success -> renamed log to load-extended.

4) Tried loading duplicated.cfg -> again nothing seem to have changed and the terminal returns it's already installed -> renamed log to load-duplicated.

Attached are the results.

CCDInfo 1.8.1.zip

terrymacdonald commented 2 years ago

@cerahmed I think I'll have to park it for a bit. I need to squash some other people's bugs and then get this release out. It's WAY more reliable that 2.3.1.60, so I'd better release it sooner rather than later.

I'll circle back to this when I have some more time avilable.

terrymacdonald commented 2 years ago

@cerahmed I've just confirmed a bug with the Windows DPI scaling that may be the cause of your issue. From my testing it seems some hardware (most likely laptops) return data outside the expected range. I've now made DisplayMagician tell windows what DPI awareness it has, so that we get the guaranteed right DPI settings, and I've made WinLibrary handle expected values (as in my testing these values still result in the correct Windows DPI Scale being applied).

I've also adjusted the process for adding a '.old' to the end of the older json config files so that it does it to all of them reliably. This should help avoid DisplayMagician wanting to patch the wrong things.

I've also added a Windows display path processing improvement that should help on devices with a lot of display paths that have accumulated over time. Display Paths are the bits in windows that link a display source (a particular desktop) with a display target (a particular monitor). Windows keeps track of every monitor it's ever seen, and that eventually leaves a lot of stale entries in the list. We now try to skip over the ones that can't be used.

I've wrapped this all up into a new test version of DisplayMagician v2.4..0.64 that should fix the issue you're experiencing. To test this, please perform the following:

Once you have finished setting up your Display Profiles, please try to swap between them using the Apply button the Display Profiles window. This is critical as I want to test that everything works using the simplest way to do so.

Please then create a Support ZIP File by going click the Settings button on the Main page, and then clicking on the Create Support ZIP File button. Please upload the ZIP file using you make to this issue using your Web Browser, so that I can see if this fixed the problem for you.

Hope it works!

Thanks Terry

cerahmed commented 2 years ago

Hey Terry,

Thanks for the update!

I went ahead and removed the old version, restarted my laptop (I'm on laptop now, I'll try with my PC when I'm home), installed the test version, restarted the pc again and did the following tests:

1) DisplayMagician shows the warning message on the first launch. 2) It loads the app correctly the first time. 3) Created the extended profile in Windows Settings -> saved Extended profile. 4) Created the duplicated profile in Windows Settings -> saved Duplicated profile. 5) Switched to the Extended using the apply button in DisplayMagician -> it worked! 6) Switched back to the Duplicated profile using the apply button -> it failed. 7) Saved a support log.

First Trial - Duplicated Fails.zip

8) Now that Duplicate has failed and SuperDisplay is in disabled state by DisplayMagician, and while Display Magician is open, I went to Windows Display Settings and tried to enable the SuperDisplay monitor in duplicate mode -> DisplayMagician crashed with the following error:

image

9) Now that DisplayMagician has crashed and closed, and the SuperDisplay is in duplicate mode, tried launching DisplayMagician -> it crashes immediatly.

10) Went to Windows Display Settings and put SuperDisplay in extended mode -> launched DisplayMagician -> it launches normally.

11) Saved a second support log right after I launched DisplayMagician in hope that it shows why it crashed.

Reopened DisplayMagician after changing windows monitors to extended.zip

terrymacdonald commented 2 years ago

Perfect testing @ceramed. That should hopefully give me an idea on what's isn't working.

I'll restart testing again on your issue once I've released 2.4.0 shortly. That fixes a ton of errors that affect others, and then we'll see if we can fix yours.

Thanks for all you hard work testing!

Thanks Terry

On Wed, 29 Jun 2022, 20:55 cerahmed, @.***> wrote:

Hey Terry,

Thanks for the update!

I went ahead and removed the old version, restarted my laptop (I'm on laptop now, I'll try with my PC when I'm home), installed the test version, restarted the pc again and did the following tests:

  1. DisplayMagician shows the warning message on the first launch.
  2. It loads the app correctly the first time.
  3. Created the extended profile in Windows Settings -> saved Extended profile.
  4. Created the duplicated profile in Windows Settings -> saved Duplicated profile.
  5. Switched to the Extended using the apply button in DisplayMagician -> it worked!
  6. Switched back to the Duplicated profile using the apply button -> it failed.
  7. Saved a support log.

First Trial - Duplicated Fails.zip https://github.com/terrymacdonald/DisplayMagician/files/9008894/First.Trial.-.Duplicated.Fails.zip

  1. Now that Duplicate has failed and SuperDisplay is in disabled state by DisplayMagician, and while Display Magician is open, I went to Windows Display Settings and tried to enable the SuperDisplay monitor in duplicate mode -> DisplayMagician crashed with the following error:

[image: image] https://user-images.githubusercontent.com/21166481/176395138-e6c50b46-fa30-49e8-9061-4aa0ef60de4f.png

1.

Now that DisplayMagician has crashed and closed, and the SuperDisplay is in duplicate mode, tried launching DisplayMagician -> it crashes immediatly. 2.

Went to Windows Display Settings and put SuperDisplay in extended mode -> launched DisplayMagician -> it launches normally. 3.

Saved a second support log right after I launched DisplayMagician in hope that it shows why it crashed.

Reopened DisplayMagician after changing windows monitors to extended.zip https://github.com/terrymacdonald/DisplayMagician/files/9008944/Reopened.DisplayMagician.after.changing.windows.monitors.to.extended.zip

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/103#issuecomment-1169712747, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LGMKBUVFX7IP2YGNZTVRQFRXANCNFSM5VH5FHAA . You are receiving this because you modified the open/close state.Message ID: @.***>

terrymacdonald commented 2 years ago

@cerahmed I've just released DisplayMagician v2.4.1.4 out, and it may help with your Superdisplay issue (it also may not). GIve it a go and tell me how it goes. 🀞

cerahmed commented 2 years ago

Hey Terry,

Thanks for the update and apologies for the late response, got busy for a while. I couldn't locate v2.4.1.4 in the releases page, could you please share a link?

terrymacdonald commented 2 years ago

Actually I released 2.1.4.14, which replaces the prior version. It fixed the error that happened when returning from surround to a non surround on computers with a non NVIDIA video card and an NVIDIA card. It appears to be the most reliable DisplayMagician in a while.

Give that a go then see if there is still the Superdisplay problem.

Thanks Terry

On Fri, 5 Aug 2022, 01:40 cerahmed, @.***> wrote:

Hey Terry,

Thanks for the update and apologies for the late response, got busy for a while. I couldn't locate v2.4.1.4 in the releases page, could you please share a link?

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/103#issuecomment-1205273416, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LADNXEKHGRV2TO7A2DVXPB4BANCNFSM5VH5FHAA . You are receiving this because you modified the open/close state.Message ID: @.***>

terrymacdonald commented 1 year ago

@cerahmed I released a new version of DisplayMagician (v2.5.0) that may fix your SuperDisplay issue. Can you please check to see if it does?

Thanks Terry

cerahmed commented 1 year ago

Hi Terry,

Thanks so much for the update! I'll check it out tonight (local time) when I get back home. I'll keep you posted!

cerahmed commented 1 year ago

Hey Terry,

I had some time to play around with the newer version, got to say that it seems to work much better than the previous ones! Kudos to you.

The Duplicated profile (Superdisplay tablet mirrors the main 27" display) seems to work fine across restarts. However, Extended profile (Superdisplay as extended monitor) only work before rebooting the PC.

That's a little weird. However I saved a log .zip for each step before and after restarting, hoping it'll lead you to figure out what's going on. I'll continue to experiment with various scenarios (perhaps keeping only one USB monitor connected at a time, currently I have two - Superdisplay (android tablet) and Spacedesk display (android phone).

One thing also to note which is not a big deal: The viewport of Display Magician (the section that shows the visual configuration of the monitors) does not show the USB monitors. It's only a visual thing but just wanted to bring it up to your attention.

Attached is the log numbered by order of actions and the file names are self explanatory.

Troubleshooting Files.zip

terrymacdonald commented 1 year ago

Hi cerahmed,

Cool! Those logs should hopefully help a bit. We'll probably have to move back to testing with CCDInfo again so that we can zero in on the errors.

I have a question though. Does Superdisplay extended profile work after a restart of you set the extended profile with Superdisplay (and don't use DisplayMagician at all?) I think we need to confirm it's not a Superdisplay issue as the first step. If Superdisplay works in extended mode after a restart on it's own without DisplayMagician being used, and then didn't work when the extended mode is used within DisplayMagician then it's something I can help with. If Superdisplay doesn't work in extended mode on its own then it's a Superdisplay issue.

Can you please do some testing to make sure that Superdisplay does successfully apply it's extended configuration itself after a restart? I'll see if I can do some testing myself too as that may help me find where some bugs lie.

I completely agree that it's best to concentrate or testing on one item at a time, so leaving the Spacedesk screen out of this testing for now would be a good idea.

Thanks Terry

On Sat, 7 Jan 2023, 00:18 cerahmed, @.***> wrote:

Hey Terry,

I had some time to play around with the newer version, got to say that it seems to work much better than the previous ones! Kudos to you.

The Duplicated profile (Superdisplay tablet mirrors the main 27" display) seems to work fine across restarts. However, Extended profile (Superdisplay as extended monitor) only work before rebooting the PC.

That's a little weird. However I saved a log .zip for each step before and after restarting, hoping it'll lead you to figure out what's going on. I'll continue to experiment with various scenarios (perhaps keeping only one USB monitor connected at a time, currently I have two - Superdisplay (android tablet) and Spacedesk display (android phone).

One thing also to note which is not a big deal: The viewport of Display Magician (the section that shows the visual configuration of the monitors) does not show the USB monitors. It's only a visual thing but just wanted to bring it up to your attention.

Attached is the log numbered by order of actions and the file names are self explanatory.

Troubleshooting Files.zip https://github.com/terrymacdonald/DisplayMagician/files/10359698/Troubleshooting.Files.zip

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/103#issuecomment-1373487946, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LGW3SKSG2WIC5UAS3TWQ75QTANCNFSM5VH5FHAA . You are receiving this because you modified the open/close state.Message ID: @.***>

cerahmed commented 1 year ago

Hi Terry,

You brought up a good point that might be a core to the problem! Let me explain my experience with Superdisplay without Display Magician:

1) Everytime I want to connect my android tablet to my PC using Superdisplay (be it after manually disconnecting, restarting the PC, etc.), I have to launch the Android App then select my PC from the list.

2) When Superdisplay is connected to my PC, it always connects as an Extended Display, and its position is reset! For example, if before disconnecting Superdisplay I set it to be BELOW my main monitor, connecting next time will reset its location to be on the RIGHT of my main monitor! It does not remember the last position I have set it prior to disconnecting.

I have emailed Superdisplay support several times regarding this issue, and now that you brought it up I believe it has something to do with Display Magician not working properly with it.

Superdisplay might be assigning a new monitor ID for every session after connecting, losing whatever settings were set before reconnecting.

However what made me doubt this speculation is the fact that the Duplicated profile works just fine, which -I believe- also relies on Superdisplay ID to apply the profile correctly.

terrymacdonald commented 1 year ago

Hi Cerahmed,

Based on your description, I think that monitoring position reset will be affecting the extended screen layout, and the reason it isn't working.

I agree it is likely that Superdisplay is creating a new monitor each time within windows, and that is then being put in a default position, and that this process is affecting the way that DisplayMagician can recognise the display layout.

Duplicated screens are different from extended screens in the way they are configured, and DisplayMagician does some special extended mode configuration deciphering in order to figure out the 'leftover' display monitor that it will then use as the extended monitor. That is also the reason that only one duplicated display will work after a reboot when using DisplayMagician.

Unfortunately I'm not sure I can apply that same discovery logic to DisplayMagician in order to work around the limitations caused by the way that Superdisplay works.

I think I understand the underlying problems a bit better now, so I will still try and see if I can find time to do some testing of Superdisplay, and will see if there is a way to work around that restriction. I'll do some CCDInfo testing and see what I can find.

I don't think it will be a quick fix, and I also think it will be a fix that only will work specifically on Superdisplay so the development time I spend doing that won't really be applicable to any other situation. But I'll know more after some detailed testing.

Thanks Terry

On Sun, 8 Jan 2023, 02:47 cerahmed, @.***> wrote:

Hi Terry,

You brought up a good point that might be a core to the problem! Let me explain my experience with Superdisplay without Display Magician:

1.

Everytime I want to connect my android tablet to my PC using Superdisplay (be it after manually disconnecting, restarting the PC, etc.), I have to launch the Android App then press my PC name on the list. 2.

When Superdisplay is connected to my PC, it always connects as an Extended Display, and its position is reset! For example, if before disconnecting Superdisplay I set it to be BELOW my main monitor, connecting next time will reset its location to be on the RIGHT of my main monitor! It does not remember the last position I have set it prior to disconnecting.

I have emailed Superdisplay support several times regarding this issue, and now that you brought it up I believe it has something to do with Display Magician not working properly with it.

Superdisplay might be assigning a new monitor ID for every session after connecting, losing whatever settings were set before reconnecting.

However what made me doubt this speculation is the fact that the Duplicated profile works just fine, which -I believe- also relies on Superdisplay ID to apply the profile correctly.

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/103#issuecomment-1374487272, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LBO4TYRKSMNJMTMAEDWRFXVXANCNFSM5VH5FHAA . You are receiving this because you modified the open/close state.Message ID: @.***>

terrymacdonald commented 9 months ago

@cerahmed, I've been working with others on a new version of DisplayMagician which may be able to help you with the issue you're experiencing. Could you please try this latest version? DisplayMagicianSetup-v2.6.0.508.zip

This version uses all the Video Libraries at once now (NVIDIA, AMD and Windows), and that means that it is able to correctly pick up and configure all the displays at once. It should be more reliable than earlier versions, and it may do things like set the correct primary display more reliably. I'm not really sure how this will impact software based screens like Superdisplay, but with testing we should be able to find out.

I'm hoping this will work, but at the very least it should allow DisplayMagician to boot up enough for you to create a Support ZIP File. Let's see whether I've fixed it 🀞.

terrymacdonald commented 1 month ago

Hi!

This may be fixed by the brand new version of DisplayMagician I just released. I would suggest that you try to the new DisplayMagician v2.7.0-alpha.1 test build available here: https://github.com/terrymacdonald/DisplayMagician/releases/tag/v2.7.0-alpha.1

It should fix your problem, but it may also cause other problems instead. This version has had a complete backend change, new installer, new features, and so it may have some bugs that need squashing.

Please test it out. and if you find any new problems please log a new issue. If it fixes this issue then please update this issue to tell me and then close this issue (it helps me keep track of what I've still got to fix).

Thanks Terry