- Automatic whitespace cleanup.
- Remove no longer exposed show/hide time setting. The methodology for
saving it on exit was broken anyways, since it relied on the current
show/hide state of the time view, which would be hidden if the deskbar
was currently in Autohide mode.
Our more recent build of gcc4 appears to have switched to using
.eh_frame for almost all useful call frame information when built
with debugging. Use a somewhat crude heuristic (size) to determine
if the .debug_frame section we've been given might actually be of use
or not (assuming it exists at all, this was inconsistent in my tests.
Sometimes apps had no .debug_frame at all, other times it was present
but was only roundabouts 100 bytes).
Fixes ticket #8508.
Factor out updating of the source path view into a dedicated function,
and fix some errors that would sometimes result in the text not updating
properly when switching stack frames, particularly if the target frame
didn't have source code available.
- Conditionally enable and disable event masks as needed when we detect
the mouse entering/exiting the deskbar area. This is necessary because
otherwise the app_server appears to eat mouse messages due to the ctrl+cmd+
resize shortcut. Also change some conditionals slightly to better deal with
differing combinations of autohide and/or autoraise.
- Rework Deskbar's handling for the autoraise/autohide cases to not
need event masks. This prevents various problems that would occur
if one happened to be working in another window that overlapped part
of Deskbar, as reported in #8497. Instead, we now use a message filter
to redirect the messages as needed.
Redo the precision levels of various calculations in the memory bar items
so they don't overflow on systems with > 4GB of RAM. Previously one could
see fun results like the kernel using negative amounts of memory on such
systems.
Set an explicit minimum size on the source path view, in order to prevent it
from unduly influencing the initial size constraints of the window. (Belatedly)
fixes the remaining part of #8094.
- SetTopTap() -> SetTopTab().
- When reloading the decor, if the window in question is borderless,
short circuit. Previously, we wouldn't allocate a decorator for such
a window, but would then go through the remaining steps of attempting
to set the focus/top tab, which would obviously crash. Fixes#8500 and
possibly others.
- Add error check that adding tabs to the decorator actually succeeded.
When asked to build via a relative path (i.e. from within a generated subdir),
gcc2 was generating a compilation directory attribute pointing to the generated
subdirectory, as well as entering the actual filename attribute as the full
absolute path to the file. This wasn't checked for, leading to the issue
described in ticket #8498. gcc4 does not appear to have the same behavior,
it generates a relative path + filename in all cases.
NetworkStatus now tracks the status of each interface separately, and
uses that information to make correct comparisons for notifications.
Previously, it would only send notifications using whatever interface
was last in the enumeration list, and if an earlier interface had a higher
configuration level than that, the notification would incorrectly be sent
as occurring on the last interface. We now send notifications for each
interface separately. The status shown by the deskbar icon remains that
of the most highly configured detected interface. Fixes#8468.
AutoConfigLooper now remembers the last media state it received from the device,
and compares both to see if the active state actually changed. Should help with
quality changes where the link didn't actually drop. May also help on ethernet
if the chipset sends spurious link status change notifications.
- Add accessor to PoseView that reports whether the view is currently
typeahead filtering.
- Use said accessor in the file panel's filter in order to detect whether
to tell the latter to cancel filtering vs closing the panel.
Fixes#8140.
If the refresh limits only allowed a single refresh, the menu item constructed
had no BMessage. This caused _UpdateRefreshControls() to crash when attempting
to match the current refresh rate to the item. For simplicity, give it a message
containing the fixed refresh rate just as in all other cases. Should finally
fix#8431.
- Fixes a problem in Web+'s autocompletion handler that would
result in it eating things like workspace switching shortcuts
if Web+'s URL input had focus.
- Always initialize other menu item data member.
- Always use refresh_rate_to_string() to generate item labels.
- When searching for the item matching the selected refresh rate,
look for it by the actual refresh rate stored in the item's message
rather than by string comparisons of the label.
- Don't assume the Other menu item exists, since it doesn't in cases
where the refresh rate constraints only allow a single rate.
- Update copyright year.
Fixes#8431.
Previously, there were two instances of the actual variables, named in
ControlLook.cpp and Utilities.cpp. This caused clashes on gcc4 builds, leading
to various crashes during initialization. Instead we now declare them as
static constants in the header itself as is done for various other interface
color constants elsewhere. Fixes ticket #8358.
- Architecture::CreateStackTrace() now uses the last frame's
PreviousCpuState() as the basis to continue unwinding when passed
a partial trace to continue from, rather than the (incorrect) actual
cpu state of that frame, which would have resulted in the last frame
being duplicated in the trace.
- Renamed variables to be more clear.
Used to store the unwound state of the CPU from this frame,
which will form the actual state of the following frame. Needed
in order to properly support continuation of unwinding from a
partial stack trace.
- Limit invocations of CreateStackTrace() in ThreadHandler to
only unwind the topmost frame since that's all it actually
cares about anyways. Also adjust Step Over to use this
functionality in order to work with the correct frame addresses,
since the CPU frame pointer register isn't entirely what we want
here.
CreateStackTrace() can now optionally be asked to limit the maximum
number of frames it tries to unwind. In conjunction, it can also be
passed an already existing partial stack trace, and be asked to
unwind more frames from it.
When stepping over, check to ensure that we're in the same call
frame that we started in. If not, reinstate the temporary breakpoint
and continue running.
Will be used later in order to determine if a given call obeys the
standard calling convention, in order to determine if we can safely
attempt to retrieve its return value.
When asked to step out, we now store the frame pointer of the current
stack frame. Upon hitting our temporary breakpoint, we then verify that
the current frame pointer is in fact in the previous frame. If not, we
reinstate the breakpoint and continue running.
- Add accessor for return type.
- Implement DW_AT_artificial parsing.
- Store the subprogram's template parameters and provide accessors
for them as well. Not used yet but will be handy later if/when we
want to expose the instantiated types somewhere in the user
interface when stepping into such a function.
- If multiple nested namespaces were involved in a name,
GetFullyQualifiedDIEName() would erroneously wipe out each one
as it walked up, leaving you with only the top level namespace.
- Don't touch the output parameter unless we're certain we succeeded.
- Use the artificial attribute to more intelligently determine when to omit
parameters. Fixes the first parameter on static class functions being
skipped incorrectly.
- Correctly handle varargs functions.
At least as far as I can tell, the template parameters are actually exported
as part of the DIESubprogram name itself, and don't need to be separately
retrieved.
When retrieving modifiers, we're actually pulling them off the type
in reverse order. Consequently we need to build the type's modifier string
similarly.
If the first modifier is a const, prepend it to type name instead.
When asked for a fully qualified DIE name, we now add the parameters
of functions as well. This allows them to show up in, e.g. the function
list view. Still needs some work but basically functional.
In the case of variables that refer to static members of compound types,
the specification will be a reference to a DIEMember rather than a
DIEVariable in DWARF3. Relax our restrictions accordingly.
- Add accesor to CompoundType to expose the particular compound kind.
- Implement aforementioned accessor in DwarfCompoundType, and ensure
DwarfTypeFactory populates it appropriately.
- Modify GlobalTypeLookup to make use of the address and compound
subtype kinds when trying to match a type.
Due to the lack of matching against the subtype, we would previously wind
up matching anonymous compound types against those of their parents, resulting
in the wrong type getting assigned to their value nodes.
Fixes#8190.
The previous solution had various issues where argv pointed to stack-based
objects that had potentially been destroyed/overwritten already. Fixes
#8173.
- Modify _SetupGDBArguments() to return an error code and check for it
accordingly.
The previous solution had various issues where argv pointed to stack-based
objects that had potentially been destroyed/overwritten already. Fixes
#8173.
- Modify _SetupGDBArguments() to return an error code and check for it
accordingly.
BMessageValueNode and BMessageFieldNode weren't correctly setting
the children created flag. This would result in duplicates of
some of the nodes showing up, especially in the case of nested messages.
- Simplified things so each window simply records all its settings into
a BMessage, which is what ultimately goes into the actual UI settings.
- Added settings storage/retrieval to the various sub views of the
team window. This means that the column widths/positioning on all
views hosting a column list view are now also preserved and restored.
When a breakpoint is asked to archive itself to a message, ensure that
the message is empty before writing. Fixes breakpoints past the first one
being broken on restore due to each breakpoint archive containing
the combined settings of all previous breakpoints.
- When the user chooses the location of a source file via the file panel,
we now preserve the file panel so it can remember its previous location
when invoked again.
Resolves the other part of #8095.
- When adding files/directories into the file manager, we now also take care
to add them to their respective parent entry lists as well. This allows the
intelligent location functions to actually traverse directories to update
all sibling/parent locations properly as needed.
- Slight changes to ensure that the implicit/explicit status of the location
can be passed around throughout the process. Needed for the above to work.
Resolves the intelligent location portion of #8095.
incorrect behavior while processing certain kinds of messages, and
consequently deadlocks in some apps. Fixes#8101.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43237 a95241bf-73f2-0310-859d-f6bbb57e9c96
have succeeded, since Init() can terminate early in a number of instances.
Resolves#8096.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43208 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Don't allow QuitRequested() to terminate the TeamWindow directly. GraphicalUserInterface
will (and must) do so in order to ensure that the window object is still around
when calling SaveSettings() on it.
Should resolve#8091.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43206 a95241bf-73f2-0310-859d-f6bbb57e9c96
breaking various cases where menus coexisted in a window with a view which
was using event masks:
- If one invoked the menu via, e.g. a BMenuField, and then tried to choose
an item on it, the mouse down would get captured, the menu would be
closed, and the mouse event would be thrown away without ever reaching
the event mask view.
- Furthermore, since the menu was told to terminate early, it would decide
that the user hadn't actually chosen that item (the escape key case),
and never actually invoke it.
Fixes the menu fields in the mouse preflet being broken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43166 a95241bf-73f2-0310-859d-f6bbb57e9c96