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.
Lowercase letters for letter characters e.g. Caps-Shift-A produces ‘a’,
Caps-Shift-‘Y’ produces ‘y’, etc. Numbers and punctuation shifted so
Caps-Shift-1 produces ‘!’ and Caps-Shift-; produces ‘:’ (colon).
Fixes ticket #11869
Signed-off-by: John Scipione <jscipione@gmail.com>
A BButton didn't lose its hover status when another window partially covered
it and the mouse cursor left its bounds rectangle.
Check for B_EXITED_VIEW in MouseMoved to fix the problem.
This fixes ticket #11962. Thanks to X512 for the analysis of the problem.
* Activating a window never send a faked mouse message. This was
noticeable when switching windows using the keyboard; if you then
scrolled with the mouse wheel you could scroll in the previous window
still.
* Also, using MouseEventWindow() in _SendFakeMouseMoved() doesn't work
when you click the window to send it to behind: it's moved on button
press, but the mouse event window is only released on button release,
ie. too late.
* This is fixed by always using the current window under the mouse as
target for the fake event.
* Put it in the BSupportKit namespace, following the style introduced
with the package kit for now.
* The BSupportKit::BJob class no longer knows about the package kit's
Context class. However, the BPackageKit::BJob class does.
* Due to the namespace juggling, a lot of files had to be touched.
* The JobQueue class remains private.
* Due to the way Haiku is built on itself, you cannot build this change
under Haiku with an older release.