Fixes#11027. This preserves the functionality of scroll-to-end while
allowing the user to interrupt it (and resume it, in the case of
extremely long archives).
MemoryView:
- fTrackingMouse wasn't being initialized in the constructor, which would
lead to the memory view sometimes thinking it was in mouse tracking mode
immediately when opened.
- Add virtual hook to TeamMemory for retrieving area information
from the target team.
- Implement said hook in DebuggerInterface.
- Adjust RetrieveMemoryBlockJob to use said hook to retrieve the
writable state of the target block rather than calling
get_memory_properties() directly.
* Fixes sharing semantics, so non-shared semaphores in non-shared
memory do not become shared after a fork.
* Adds two new system calls: _user_mutex_sem_acquire/release(),
which reuse the user_mutex address-hashed wait mechanism.
* Named semaphores continue to use traditional sem_id semaphores.
InspectorWindow:
- Add buttons to control edit mode, and helper functions to maintain
their state.
- Implement listener hook for memory change events, to track when
requested memory writes are completed, and update the view accordingly.
Together with the previous batch of commits, this implements the first part
of #9708.
MemoryView:
- Add hooks and supporting status tracking members to enable edit mode.
When editing is requested, we allocate a duplicate copy of the current
block's data to perform edits in. Currently, editing is only supported from
within the hex view, and when edit mode is enabled, the view is locked to
8-bit hex mode in order to avoid any possible confusion with regards to
source vs target endian orientation.
- Extend Draw() to determine whether to write data from the edit data store
or the actual memory block. Also implement highlighting the current edit
position caret when in edit mode, as well as highlighting bytes that have
been changed compared to the block's original data.
InspectorWindow:
- We now display a label indicating if the currently inspected block
is writable or not, so the user knows whether it's possible to modify
the contents.
MemoryView:
- Implement {Min,Max,Preferred}Size() hooks. The default BView
versions were causing the inspector to sometimes not be properly
resizable after previous settings were restored.
InspectorWindow:
- Fix inverted error check when retrieving settings. This was
causing us to fail to successfully load/apply previously stored
settings for the inspector.