-
Notifications
You must be signed in to change notification settings - Fork 35
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: delphidabbler/codesnip
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: version-4.24.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: delphidabbler/codesnip
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: version-4.24.2
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 10 commits
- 9 files changed
- 1 contributor
Commits on Oct 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0908e3b - Browse repository at this point
Copy the full SHA 0908e3bView commit details
Commits on Apr 13, 2025
-
Fix CodeSnip crash after resume from hiberanation.
It seems that the problem is that, sometimes (not always) Windows recreates the tree view displayed in the overview pane and all its nodes. The tree view nodes are custom classes that have a property that reference an `IView` instance relating to the displayed items. Unfortunately when Windows recreates the nodes the `IView` property is set to `nil`. This explains the nil `IView` references that have been causing the access violation. The solution used in the fix is to handle the Windows messages sent when the computer hibernates and resumes. On hibernation the state of the tree view is recorded. On restoration we assume that the tree view is corrupted and so forcibly rebuild it and restore the saved state. There is a problem thought. The message we handle is issued twice after resuming from hibernation. There is no easy way to tell which message has been issued. Therefore the tree view is rebuilt twice. There is not much performance penalty to this, so we can let it go. The potential problem is that if the tree view is recreated it happens after the 1st message and before the 2nd. Should, for example, the message only be triggered once then the bug will be back! Even after all this it is possible that the program will redraw the tree view before the `IView` instances are restored. I've added code to the tree node custom drawing code to test if a node's `IView` instance is nil. This leads to some nodes not being drawn correctly. However, this doesn't matter because the tree view is forcibly redrawn again after the `IView` instances are restored. All in all, I've not totally happy with this solution, which is more of a work around than a fix, but it's the best I can come up with without completely revising the overview frame code. Fixes #70
Configuration menu - View commit details
-
Copy full SHA for 58be37c - Browse repository at this point
Copy the full SHA 58be37cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 689c4be - Browse repository at this point
Copy the full SHA 689c4beView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2069c04 - Browse repository at this point
Copy the full SHA 2069c04View commit details -
Configuration menu - View commit details
-
Copy full SHA for c6274e0 - Browse repository at this point
Copy the full SHA c6274e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for e5c0ce6 - Browse repository at this point
Copy the full SHA e5c0ce6View commit details
Commits on Apr 14, 2025
-
Revise hibernate bug fix (issue #70)
Following a discussion in the comments the DelphiDabbler Blog post at https://tinyurl.com/mrp76mdy it seems that was not a good idea to rely upon handling WM_POWERBROADCAST's PBT_APMPOWERSTATUSCHANGE event to restore the overview pane's tree view nodes to the expected state after Windows has recreated the tree view in an invalid state. So I've modified the code to only rely on the PBT_APMSUSPEND event of WM_POWERBROADCAST and not PBT_APMPOWERSTATUSCHANGE. PBT_APMSUSPEND is handled to prepare for hibernation by not only saving the tree view's state (as per the previous fix) but also setting an event handler that gets called only when the tree view's window gets recreated by Windows AND the treeview contains nodes with nil IView pointers. When called, the event handler rebuilds the tree view with nodes containing valid IView references. The problem is that the event needs to be triggered from the TTreeView.CreateWnd method that gets called when Windows recreates the tree view. Since TTreeView exposes no suitable events, the only way is to inject a suitable event using a nasty hack. Not good practise. Note that all the methods that depend on the hack have been given names beginning with "_HACK_" to make it obvious where the naughtiness lies.
Configuration menu - View commit details
-
Copy full SHA for ca42523 - Browse repository at this point
Copy the full SHA ca42523View commit details -
Configuration menu - View commit details
-
Copy full SHA for ef80e27 - Browse repository at this point
Copy the full SHA ef80e27View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ad4fbe - Browse repository at this point
Copy the full SHA 0ad4fbeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 131d602 - Browse repository at this point
Copy the full SHA 131d602View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff version-4.24.0...version-4.24.2