Several scenarios of misbehaviour found and fixed, examples :
* Deleting an item sitting before the currently playing item had the effect of
starting the playback of the item before the delete item.
(now it just updates the indexes - setting it to fCurrentIndex - 1 - without altering playback).
* Deleting the last item of the list had for effect of starting the playback of the entry
newingly being the last entry, regardless if the last entry was the active one or not.
Should fix#6689.
All controls were enabled when toggling fullscreen on and off;
now it recalls the argument last used in SetEnabled() and reuse it
when called in AttachedInWindow() (which occurs in such toggling)
Fixes#8804.
* This fixes a regression I introduced in hrev43648; the mouse cursor
was only being hidden in case the controls were visible (ie. only
after an extra mouse move in full screen).
Replaced remaining "Preferences" and "Options" with "Settings" as
that is generally used for app settings instead of the system
preferences found in the preference panels.
Renamed Tracker's "Preferences" to "Tracker preferences" to be
similar to the entries in the Deskbar and e.g. the Media replicant
in the Deskbar tray.
Some preference apps, mount_server and AboutSystem. Removed the check
for x86_64 in the boot script, the normal path through the script will
work now. Also removed a temporary hack to workaround AboutSystem not
being there in build_haiku_image.
Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.
* "thread": prints/sets the current thread.
* "continue", "stop": continue/stop the current thread.
* "sc"/"bt": Print a stack trace for the current thread. Very basic yet.
* Introduce the notion of a current thread. That's the one certain
commands will target (by default).
* Add more event handling in CliContext. There's now a queue of pending
events which are printed in the input loop at convenient times to
inform the user about what happened (new/deleted/stopped threads,
etc.).
* Make sure we use consistant terminology
* No more Formatted partition "" messages when
doing a partition map
* This commit will require translation work
No functional change.
* Surround email addresses in angle brackets.
* Add myself to ExpressionParser.cpp and .h
* Remove myself from ExpressionTextView.cpp and .h
* Alphatetize authors by last name.
Thanks Ingo and Axel.
* Move disk partitioning systems under Disk menu
* Found and created bug #8827 (this wasn't introduced
by my changes and was pre-existing)
* My testing resulted in no regressions, however
please test though!
I overlooked this problem in my last commit...
If you select the current angle (radian/degree) mode from the menu
it toggles the angle mode, fixed this to make it keep the current
mode.
Default is radian mode, You set the option in the right click menu
like the other options.
Note: degree mode does not affect hyperbolic trigonometric functions.
This is how Mac Calculator, Windows Calculator, and Google Calculator
work.
This reduces perceived latency. One day when I add a tab close undo stack, this
will be even better. But generally using the middle mouse button is not
accidental.
- When loading an image, we now check if it has a .gnu_debuglink section.
If so, we try to load the linked file for our symbolic debugging information.
The file is searched for with the following rules:
1) If self-contained app, app image is looked for in ./debug while
library/add-on images are looked for in ../debug/.
2) If the image in question is in one of the global locations
(/boot/{common,system,home/config}/{lib,add-ons}), we search
in develop/debug for the corresponding global dir.
Implements #8135.
The cookie is used to store the base address of the area that was just
visited. On 64-bit systems, int32 is not sufficient. Therefore, changed
to ssize_t which retains compatibility on x86 while expanding to a
sufficient size on x86_64.
Refactor the icon scaling code in IconUtils.cpp to avoid code
duplication. Basically create and delete the temp bitmap to
convert from B_CMAP8 to B_RGBA32 for scale2x/scale3x/scale4x
just one time instead of 3.
There was an off-by-one error in Deskbar which was causing
it to scale up the 16x16 Bitmap icon to 32x32 instead of just
using the 32x32 icon. This only affected BeOS bitmap-based
icons, not Haiku HVIF icons.
* The input loop can now wait on abstract events, which other threads
(or even the input loop thread itself) can signal.
* Use the new mechanism in QuitSession().
* Also (with the exception of the SIGINT part) implement
WaitForThreadOrUser().
* Move the libedit interface there and provide nicer to use methods.
* Also start adding utility methods for the input loop. It is going to
manage all interactions of the input loop with outside events.
* Fix the "quit" command. The user is now prompted what to do with the
debugged team and the input loop thread avoids reentering the input
loop.
* UserInterface::SynchronouslyAskUser() is now allowed to return -1 to
indicate that the user cannot be asked at this point for whatever
reason. The caller needs to handle that case.
* UserInterfaceListener::UserInterfaceQuitRequested(): Add new parameter
"quitOption" to specify what is supposed to happen. The previous
behavior (ask user) is only one of the options. The others are to kill
the debugged team or to resume it.
- When invoking ProcessController's menu, we now only show the "Live in Deskbar"
menu item if we're either running within Deskbar itself or from PC's standalone
window. This allows replicant PC instances to be usable in the case where
Deskbar is deadlocked for whatever reason (previously it would hang while trying
to query for the deskbar item's presence/status).
* You can code review it
* You can help developping
Uses libvterm as the backend for parsing ANSI escape sequences. The lib was
changed slightly to build with GCC2. It could be used by Terminal as well as
it seems cleaner and more reliable than our current parser.
- When the message filter would receive and process a mouse moved message,
if the message resulted in causing the deskbar to relocate or reorient
itself, it was possible for the expando view to become detached from
the looper. Consequently, if the intercepted mouse moved happened to have
come from the latter, when returning out of the filter the view would no
longer have a target looper, triggering a debugger condition in BLooper.
In order to prevent this situation, we now dispatch a message asking for
the layout change to occur asynchronously.
There's an input loop thread which reads and parses command lines and
the infrastructure for registering and executing commands. Currently
only "help" and "quit" commands are implemented.
- When a job needs to go dependent on another job, we no longer use recursion
to manage the execution stack. Instead the job is simply marked as waiting
and we execute other jobs with no dependencies in the meantime. When a job
completes, all dependents are moved back onto the unscheduled list and
executed as needed.
- Adjustments to ResolveValueNodeJob to handle the now asynchronous nature
of waiting.
- If the node we're looking at is a compound node, retrieve its location
and show that as the value with an indicator to clarify that it's an object.
- Minor tweaks to tooltip format.
- Style cleanups.
- When resolving its value, CStringValueNode now sets its node child's
address to the address of the string buffer rather than the location of
the originating pointer, which allows things like Inspect to pick that up.
- TableCellContextMenuTracker now supports menus that don't have a settings
submenu, since some variables won't have renderer settings but will still
have context actions.
- Add _GetContextActionsForNode() to retrieve the list of contextual actions
available for a given model node. Currently this is only adds an action
to inspect the memory address of the highlighted value, but will be extended
for other actions later.
- If we're asked to generate an entry for a tag we don't recognize,
return an error so don't then attempt to add a null/invalid entry into the
compilation unit's entry list and later crash dereferencing it.
- When asking for signed/unsigned, IntegerFormatter was previously
treating all value types as int64, which would result in much larger
than expected values in the variable list in some cases. Inspect the actual
integer type of the variable and adjust the format string accordingly in
order to deal with that.
- When binary searching functions in the source entry list,
comparing by name and location alone isn't sufficient, since
templates will match those for different instances, Fixes a crash on
exit where the wrong function would get removed from the list, while
the one we actually wanted to remove was still in the list, but then
had its source code cleared. This would later crash the comparison
function due to not being able to get its source location.
- When an image was unloaded, its corresponding image info was never
removed from TeamDebugInfo's list, leading to the latter containing
a deleted object, resulting in various random crashes.
- When attempting to unwind the call frame, we now search for the appropriate
FDE in both .debug_frame and .eh_frame. This mirrors gdb's behavior and
works around the ever-changing whims of the gcc developers as to which
section the requisite FDE/CIE resides in.
- The buffer that the debugger used to retrieve messages from
the debug port was slightly too small for the largest of the message
data structs (currently 1100 bytes), causing some types of debug events
to get truncated. This resulted in image creation/deletion events being
received with a truncated image_info struct, which would result in several
fields being returned with random values, most notably the text/data base
and size fields. Consequently, searching those images for an address within
them would fail, leading to #8709. It's possible but not yet confirmed
that this bug is also responsible for #8710, need to test further.