* The old debug system was too complex and made
troubleshooring difficult. (it also was unique
like a snowflake... which we don't want)
* Move to the classic TRACE / ERROR a large majority
of the code has changed to.
* I like trace statements, but drop some obvious ones
* Fix style issues along the way
* VESA under Intel GPU's is generally native resolution
* These never worked well pre-rewrite, so lets disable
them for now.
* I'd like testers to enable them slowly and report
problems as enhancements.
* While no removeable media is present, ahci
ports continuously reset.
* hrev49665 made the port resets slightly more
agressive resulting in strange removeable media
behaviour.
* Lots of red herrings made this one take a while
to figure out.
* Resolves#12415
* This simplifies the reset process again while keeping
my original cleanups.
* I think trying a software reset before a hardware
reset is desireable, however lets work on base
functionality first.
* It caused parameters to change with delay, because the
event has been enqueued in the event queue with real time.
* Please don't rely on system_time.
* Fixes#5106.
* Fixes issues with launch_daemon restart.
* Rely on what the actual response from the server is
instead to naively try to kill it.
* Remove snoozing and make the restart process very fast.
* Any app should rely on notifications anyway.
* Due to some reason a few months ago the media_addon_server
locked up very often making the notification service unreliable,
today this issue looks like solved. This made possible the recent
improvements.
TeamsWindow:
- On startup, instantiate a LocalTargetHostInterface, and pass it
to the TeamsListView.
TeamsListView:
- Refactor building and updating the teams list to work via TargetHost
and its respective listener interface rather than the previous combination
of be_roster and manual polling.
- Style fixes.
LocalTargetHostInterface:
- When receiving team creation events, check if the team in question actually
contains a valid app image. The kernel's create notification is sent before
the team is completely initialized, and consequently if our get_team_info()
call gets in quickly enough, the images may not be loaded yet. If this
situation is detected, add the team ID to a wait list.
- If we have waiting teams, listen for new messages with a short timeout. If no
message is received within the timeout, walk our list of waiting teams and
see if they are fully initialized yet, and if so, dispatch the appropriate
event.
* Remove SyncToServices, I will probably readd it in future
but this time using a local synchronization service more than
relying on the media_server to release the semaphore.
* Due to some discussions today in mailing list I decided
to step back and retry the initial way to notify media rosters
about media services status. It is woking by using two different
notifications for reconnecting to the media_server and notifying
the local subscribers.
* This speed up the media services restart.
* Sorry for the noise and very thanks for reviewing my code to
everyone.
* The global synchro semaphore is provided with the purpose of
being used to avoid threads lock up when the media_server is in
an undefined state. There's still room for improvements.
* BMediaRoster::SyncToServices lock up on a semaphore until
the multi_audio correctly connected to the mixer.
- Add new model class TargetHost for host-specific information such as
the running team list.
- Add new interface class TargetHostInterface and implementing subclass
LocalTargetHostInterface. Not yet complete/usable due to some as of yet
unresolved issues with the involved system APIs.
DebuggerInterface:
- Refactor into abstract base class.
- Introduce interface configuration abstract base class.
- Move existing implementation into LocalDebuggerInterface and add
corresponding configuration class.
Debugger:
- Adjust to instantiate LocalDebuggerInterface.
In and of itself no functional change, but paves the way for further
refactoring to make the debugger fully interface-agnostic (this isn't yet
the case for retrieving target system information such as the team listing,
and creating/attaching to teams).
TeamDebugger:
- Rather than instantiating the DebuggerInterface directly, we now
expect it to be given to us externally. This allows TeamDebugger
to be agnostic of where the team actually resides.
Debugger:
- Create and initialize DebuggerInterface before passing it on to
TeamDebugger.
No functional change.
* There's no need to force the streamer plugin to use a
BMediaIO. This class is supplied to accomodate more smart uses,
but in certain cases it makes just things more complex. If a
plugin doesn't need to have an internal caching method, then it
will be simpler to implement a block-consuming BDataIO and let
the internal BMediaIOWrapper to deal with caching.
just noticed this crash...
when fConfigView gets deleted by selecting a translator it
deletes its child fInfoText but we were leaving the pointer
alone.
Afterwords if you changed the panel text color in Appearance
a message gets sent that checks to see if the fInfoView
pointer is NULL, and since it isn't, procedes to dereference
the pointer and *boom* the app crashes.
Fix this by setting the fInfoText pointer to NULL when fConfig
view gets deleted. That way when you change the panel text
color it doesn't attempt to dereference the stale pointer
and everything works as it should.
As you scroll through the list of translators keep the window width
constant by setting a minimum width. A little too narrow at 8pt,
and the window is too wide at 24pt, but at 12pt it is just right.
(at least for 1024x768).
The window width and height were not chosen arbitrarily, 598px
is just about 600px and almost exactly fits the width of our
widest translator (PNG translator). The height is 369px which comes
from the golden ratio of 1.62:1. The width of the translators are
set to exactly match this at 12pt font size. This way you don't get
any unexpected window resizing. At other font sizes the window does
resize, but, the contents still fit (mostly) nicely.
See screenshot for details:
http://insightfactory.tumblr.com/image/141980518317
* When a watched directory contains a mount point, we need to resolve
the actual parent directory of the mount point in the file system to
serve the monitor.
* Added a directory argument for notify_{stat/attribute}_changed().
* This allows to watch only a directory, and get the notifications for
all of its files, not just add/remove entry notifications.
As part of the refactoring that was done for app_server layer support,
the private shape_data struct was updated to derive from BReferenceable.
However, BShape's destructor was never updated to reflect this, and
consequently attempts to use a debug build of libbe would consistently
throw the user into the debugger due to BReferenceable's sanity check
against non-zero deletes that weren't on the stack.
It should be noted though that there are probably a few things that could
be factored out and/or simplified with that class in general, since e.g.
when copying its data from another shape_data instance, it uses C++ array
allocations, while when being manipulated by BShape directly, the latter
uses alloc/realloc/free.
NOTE: This should have no effect on the colors of these labels unless
you have changed the panel text color and control text colors to be
different. Both are black by default.
In the case of the menu field, spinner, check box, radio button,
slider, and text control labels we want to draw these labels using
the panel text color instead of the control text color because they
are drawn on top of the panel color. (the menu field label color was
changed in a previous commit in this push).
In all cases except the menu field the label color is specified by
temporarily unsetting the B_IS_CONTROL flag while drawing the label.
All use control look to draw the label.
The control text color is meant to be used for text INSIDE the control,
not the label text that accompanies the control -- at least that's the
way I understand it.
...instead of menu item text color when the label is unselected.
Menu item text color seems to make sense when the control is unselected
because we use selected menu item text color when the control is
selected, but, this isn't the case. We color the label background using
the menu item color because we are reproducing similar behavior of
BeOS R5. However, when the menu field is unselected the label needs to
draw so that it goes on the panel bg color.
ImageListView:
- Add columns for the respective start and end addresses of the text and data
segments of each image. Correspondingly, adjust the table model to return
the appropriate fields from the image's info. This can come in handy for
quickly determining the approximate location of an otherwise unknown memory
address, among other things.
DwarfImageDebugInfo:
- When resolving the address of a PIC function that a value was
returned by, check if the resulting address actually belongs to
the same image as the caller. If not, find the appropriate image
for the new address. Combined with the previous commits, this fixes
the issue that functions called indirectly by PLT entry that jumped
to another image entirely wouldn't be mapped back to their
corresponding FunctionDebugInfo instance, and thus would be skipped
since we couldn't determine a type to associate the return value with.
ThreadHandler:
- When stepping over a function call, ensure that we actually have a valid
value for the stepped over function address before adding a return value
info entry. While this had no visible adverse effect, it did result in
unnecessary work when creating the list of variables to display later,
since such entries would have no valid function to resolve to, and thus
had to be ignored/thrown away.
DisassemblerX86{64}:
- Fix problematic usage of udis86 that was broken during an update.
Rather than calling the appropriate udis86 function to retrieve the
operand, we were accessing it directly on the ud struct, which was
fully filled in implicitly in previous versions of the library. However,
in the updated version of udis86, the operands are only lazily decoded on
request, and as such this data was invalid, leading to us not resolving
target addresses properly. This primarily affected determining the location
of return values.
ExpressionEvaluationWindow:
- Add team listener hooks for the various thread state changes.
- Implement these to react accordingly and keep the thread/frame menus
up to date with running program changes, whether due to user interaction
in the main team window, or background activities of the debugged app.
Previously the evaluation window needed to be closed and reopened to
refresh these appropriately.
* "ht" and "-ht" enable or disable the use of HT mode
(high throughput, 802.11n) for the wireless network device
* Analogous to the option with the same name in FreeBSD's ifconfig
* Disabling HT before associating with an AP is a workaround for
connection instability issues encountered with iprowifi4965
driver
...and rename fBitmap to fOffscreenBitmap to make it more clear what it is.
We don't need to save a pointer to both the offscreen bitmap and
the offscreen view, just the bitmap. We can access the view by calling
fOffscreenBitmap->ChildAt((int32)0). This gives us back a _reserved private
variable slot.
In the (unlikely) case that _InitData() is called with offscreen = false but
the fOffscreenBitmap is not NULL, delete fOffscreenBitmap before
setting it to NULL so that memory is not leaked.
App Server sends each window a message that the screen has changed:
https://www.haiku-os.org/legacy-docs/bebook/BWindow.html#BWindow_ScreenChanged
Propegate B_SCREEN_CHANGED message to all child views first
Tell BColorControl to read the B_SCREEN_CHANGED message and reinitialize itself.
* Only reinit if switching to or from B_CMAP8
* Initialize all pointers to NULL in constructor
* Don't destroy and rebuild offscreen view (and text views) on reinit
* Reinitialize offscreen view on reinit.
Fixes#8035
Also initialzing the pointers to NULL in constructor fixes#12673
...instead of doubleBuffered for the flag that specifies whether or not to
draw using an offscreen buffer.
Also remove the (not currently used) text from the docs since the parameter
is being used.
* Use print format macros to fix the 64 bit build.
* Correct a typo in the shift of the trigger mode definition. As the
value is 0 either way, this does not make a functional difference.
* Use macros instead of values in comparisons.
This allows usb_ecm to work in case it is part of a device using
different configurations for different types of interfaces and ECM is
not the first configuration.
While the USB descriptors are specifically built in such a way that it's
always possible to correctly query the max packet size, some devices
unfortunatley use bogus values in their descriptors and rely on the
stack to use the mandated values.
This fixes USB devices in VirtualBox when EHCI emulation is used. This
really is a bug in their descriptor emulation though.
Don't initialize the current qtd field with the terminate bit as it does
not exist in this field. While the lower 5 bits are documented as being
ignored anyway, this is more correct. Should cause no functional change.
* Move current_mode into the accelerant as the
driver doesn't care.
* Record panel_mode in driver and present to accelerant
* eDP, if no EDID and mobile, leave edid incomplete.
Mode set should notice that and fall back to panel_mode
Now if you start LegacyPackageInstaller with no filenames passed, you get
the "installed packages" window, from which you can uninstall stuff.
Fixes#10612.
Approximation for n >= 1000
Factorial
Actual Value (truncated)
Approximation
1000!
4.0238726007709377354370243392300398571937E2567
4.0238726007709377354370243392307 E2567
10000!
2.8462596809170545189064132121198688901480E35659
2.8462596809170545189064132121197 E35659
100000!
2.824229407960347874293421578024535518477E456573
2.824229407960347874293421578024 E456573
Close enough!
* If the input is a terminal rather than a file or pipe, only then look
for the single period on a line as end of text. Also look for end of
file as an end of the text, so that piped in text works.
* Parse multiple e-mail addresses properly, adding a comma between them
(a space doesn't work). Also allow mixing of "to" e-mail addresses
and command line switches, previously all "to" addresses had to be
at the end.
* Fewer blank lines in the output, make it look nicer, remove things
like a redundant display of the body text before text was read. Also
no output text when just piping in a message.
* Avoid buffer overrun by using fgets instead of gets.
* Use stderr for text the user likely doesn't want to save, and for
prompts that would be invisible if stdout was redirected to a file.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
- Termios: cf{get,set}{i,o}speed can handle arbitrary speed values.
- The value is stored in the appropriate fields of the termios structure
in this case. The old constants (stored in the flags) are preserved
for BeOS binary compatibility.
- Adjust the FTDI FT232* driver to accept custom rates, by replacing the
hardcoded regster values with a function that will compute it
according to FTDI documentation (confirmed giving the same values for
the existing baudrates).
Currently only applies when in a window, not when replicated
(then it always switches).
Feel free to fix (need to create the settings object when replicated).
* DisplayPort != DigitalPort
* i2c needs wrapped in DP AUX transaction code
* Mode-setting comes with DP link training as well
* We need to try and share DP code with radeon_hd
- Fixes BFont::GetHasGlyphs, the "empty square" which was returned led
it to think the font had glyphs for everything
- This means the "no character" empty square will not be drawn anymore,
if we want it back, we will need to rework the implementation a bit
more (either request it explicitly when there is a missing glyph, or
return it as it was before but including an info that it is the
"missing glyph")
- Maybe GetHasGlyphs should also bypass the font fallback system, and
return what's actually in the requested font only.
This also fixes a locking problem in the GlyphLayoutEngine, the code
didn't handle the read/write lock properly and tried to ReadUnlock from
a place where only the write lock was held.
- Interface Kit tests use a View class which is not BView, and has no
SetViewUIColor.
- Libexpat is now in a separate package.
- Shouldn't we add this to the buildbots so we can cath the breakage?
Avoids showing the same language multiple times in the list, for example
when there are cyrillic and latin variants. It is still possible to pick
one of the variants, as they are also added as country-specific entries.
Fixes#9144.
- Don't crash when a [.svn] cache directory is missing
- Ignores the cache directories of the main VCS : bazaar, git, mercurial, svn
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Fixes#11532.
url and email label are now marked as a link and open the address
in the browser/mail-app on click
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Fixes#3825
A few extra changes from the original patch:
- Remove "smart" parsing (detection of "ftp", etc) as it could lead to
ftp://ftp://url or other strangeness,
- Add gopher protocol, because mmu_man may have an home page there.
A combination of two problems made things go wrong with the timestamp of
decoded audio.
1) The output buffer size is too small to hold the complete input.
swresample handles this by buffering the input for use the next time it
is called, however repeatedly doing this results in lots of buffering,
and our way to compute the output timestamp from the input does not take
it into account so it does weird things. Moreover, we would need to
empty the buffer by calling swr_convert with NULL input in that case.
Fix: make sure to not feed more data to swr_convert than it can output
in our buffer. This way, no buffering occurs, only the matrixing
conversion.
2) When using planar audio, the "frame size" is a bit different. Instead
of adding sample size * channel count to 1 pointer, we need to add
sample size * 1 to each channel buffer.
Fix: add the "fInputFrameSize" which takes this into account, instead of
misusing fOutputFrameSize for the input.
Fixes#12460.
* While on my system it looked like to run well, it introduced
a regression on some hardware. I'm reverting it as I don't have
a better solution, with the difference that we will do that only
for perfomance time events.
* Fixes#12624.
* Messages that we don't have info for during synchronization are now
collected, and synchronized once the folder state is available,
instead of waiting for that particular entry to become available
(without proper means to wait).
* The counter did not take continuation commands into account, so that
it would never reach zero again.
* Optimized IMAPConnectionWorker::_WaitForCommands() such that it will
always acquire all available "slots".
* Since the BMediaRecorder have an it's own estabilished policy
relating releasing the producer node we will not interfere with
it except when we are controlled from Cortex.
* SoundRecorder can now be connected and disconnected safely,
due to some unknown reason, probably format negotiation problems,
ATM we need a system mixer between.
* The normal behavior is unchanged, when the record button is pressed
it will record from the preferred audio interface and disconnect on
stop. But when the connection is made manually it will stay connected
until the user explictly disconnect it.
* To make it work, instantiate a system mixer, connect the output to
SoundRecorder, instantiate a node like the ToneProducer, and connect
it's output to the mixer input. Press the record button and check
the Mixer has started from the Cortex transport, if not, start it.
* This required to review various parts of the code, and
isn't probably still perfect. The main problem was an attributes
hell where redondance created a lot of problems, all this data
is now controlled mostly by the node.
* Header indentation changes needed too.
* The WaitForMessage is moved at the end of the loop, and
the check for quitting the loop is moved as it's condition,
this makes us to be sure that once a Quit() request is performed
we will not handle events anymore.
* Other minor style and initialization fixes.
* This is the only solution that allowed to use the best
of both ways to do this calculus. I've also tested it
with a modified sound player that snoozed every time
the buffer should be handled, and found that neither
of the lateness calculus I tested (including enqueue_time)
really solve all problems. That's why I've tried to find
an average solution. There's still room for improvements
eventually.
* This problem happens only at the startup, so that it's
preferred that we deal with it in the BMediaEventLooper side.
* This solve some audio stability problems I had with slow systems.
* After having this patch applied locally for some time,
I'm going to be sure that we have to deal only with real_time values.
* Since RealTime() is just a system_time() wrapper, the code
will be slightly improved in performances too.
* Additionally it performs very well when the thread is
externally stopped (such as debugging it), so that the audio
recover almost immediately.
* Reverts f3e381dd
* Details in #12633
* For some unknown reason, this change breaks an Intel Core 2
system from booting (Dell Optiplex 960, E8400)
* If anyone has any ideas on why, let me know :-)
BMenuField's frame is drawn from the LowColor() which is adopted from its
parent. However, we should be adopting the parent's view color for our low
color, otherwise we sometimes end up with a miscolored border (most often white).
This was not noticed earlier as most views have matching view and low colors.
Fixes ticket #12603
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Erroneous use of SetLowUIColor(ViewUIColor()) when the old API was more
appropriate resulted in the tint value being ignored which resulted in some
text rendering issues with certain color combinations and LCD subpixel aliasing.
Fixes ticket# 12596
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
The addattr didn't quite match its help text, wrt the kinds of values one can
use for type codes. Aside from the list of named types (which isn't actually
quite complete compared to the choices in the source) the help said one can
enter "numeric values", and gives both hex and decimal examples.
However, trying a hex value didn't work -- only decimal numbers were accepted.
This turned out to be because the sscanf format option is "%u" (actually
B_SCNu32) which only handles decimal. It has to be B_SCNi32 (which means it
would be allowed to enter a negative value -- just not very sensible...) The
other example entry given is " 'ABCD' ", which apparently is meant to indicate
that one can enter 'FourCC' direct type-code representations, but of course
that wouldn't work as shown because the shell strips off the quotes. Escaping
the quotes -- \'ABCD\' -- or adding a second layer -- "'ABCD'" -- does work
but is not obvious. (I can't think of any other command line that requires
such a convention.)
I have added another option: "-c ABCD". The current way can
still work, but the new option should be fairly evident to anyone.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Fixes#12562.
While mixing layouted and non-layouted views is not supported, we are
doing it in some cases, including translator preferences (which uses
layout, but the views may come from a translator add-on which doesn't).
So, try to handle that case and at least avoid crashes by calling
MinSize/MaxSize and other unsupported layout code on views which won't
handle it.
Fixes#12610.
Change control border color to 172, 172, 172 and use for default button
indicator drawing.
People doing an in-place upgrade will need to modify the border color from
its previous default manually or by pressing "Default" in the Appearance
preflet. This is a one-time annoyance.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Fixes: #12589
* Since the producer may take an undefined amount of buffers to
process the latency increase, possibly depending on it's queue,
the consumer will notify only the difference between the old latency
and the new. While not solving completely, this improves the situation
under virtual box (and slow systems) making the sound more stable.
Changelog: https://acpica.org/sites/acpica/files/changes_29.txt
* This is based on the upgrade waddlesplash aborted due to a bug
in ACPICA which has since been fixed.
* Some ACPICA code is excluded until needed. (You may want to
compare our acpica dir to ACPICA if you are missing functions.)
- As suggested by Ingo, add libshared.a to the architecture name map.
This allows it to be linked by its short name like other frequently
used libraries.
- Adjust all Jamfiles referencing the lib accordingly.
- In the case of certain messages that are dispatched from the
app_server with multiple target tokens (i.e. due to an attached
view that has a mouse or keyboard event mask set), we need to
strip the focus flag from the message before passing it to the
non-focus views. Fixes a bug observed via Clipdinger where the
aforementioned circumstance would result in all keyboard shortcuts
being invoked multiple times.
* Added a function CopyMailFolderAttributes() that copies the attribute
layout from the text/x-email default query folder.
* This using the new CopyAttributes() method in libshared that is pretty
much a copy of a similar method from copyattr. However, I did not
replace the latter, as that one allows for more fine grained error
reporting (and attribute filtering).
* Closes ticket #3498.
* When an action was already set, a menu item was being selected before
the menu had been created -- must have happened on some refactoring.
* Use tooltips rather than fill the header/value text controls with some
help texts.
* The FiltersConfigView now ensures that its current filter is deleted
before itself, as the filter's add-in would already be unloaded at
that point.
* This fixes crashing when leaving the filter config view.
* Painter::StrokeLine() has an optimization for lines which are
single pixel dots, i.e. identical start and end point and pen
size 1: it sets the pixel directly in the buffer, completely
bypassing the AGG base renderer.
This is a problem when inside a layer since this also bypasses
the low-level offset in the base renderer (which moves drawing
coordinates into the layer bitmap), causing an out-of-bounds
access.
* Fixes#12587
Enforce use of proper colors in DrawLabel() when on the desktop.
This repairs an issue where the text looks wrong in ActivityMonitor when it is a
desktop replicant and likely other unreported issues.
Fixes#12576.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
Was using the panel color without checking if we were the desktop view.
This corrects the reported issue where icon label outlines would look
incorrect.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
PoseView's ColumnRedraw fills exposed areas in manually in an offscreen view
using the PoseView's LowColor. As QueryPoseView uses a custom view color it
is necessary for the low color to match, otherwise resizing a column will
draw the untinted document background color.
Fixes#12569.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
View color now shows through, so we keep the view color in sync with the
parent to act as the button background color. The low color is used to
determine the button color. The high color is used to determine the
button label color.
The default low and high colors are the control background and text colors,
respectfully. To maintain the identical appearance as before, the default
control background color is tinted to match the default panel background
color. As the color has a gradient applied anyway, no one will notice a
difference while playing with custom control colors.
Fixes#12568.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
Recent changes require us to adopt the tint value for PowerStatus's
low color as well as the ViewUIColor.
This repairs the issue where the replicant's background color was lighter
than the Deskbar's tray color.
Fixes#12566.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
Adopted parent colors for the text view - should not have done so.
Disabled colors were incorrect, so I also corrected those in this patch.
Fixes#12574.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
Previously the DataView relied on the default colors, which layout now
overrides more uniformly. The document colors are more appropriate.
After the addition of the layout changes, the DataView would adopt
system panel colors.
Fixes#12572.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
As per API documentation, a BView caches the configured view
colours when not yet attached to the app_server via its
window. So check if we're attached to a window, and if we are,
then and only then do we attempt to lock/unlock our looper.
This fixes uses of AdoptViewColors and AdoptParentColors when
the view isn't yet attached to a window.
Previously the layout would crush the default colors of BStringView preventing
BStringView from calling AdoptParentColors() on its own, so we must call it
manually.
In addition, the default tooltip view should fully adopt tooltip colors so
that any colors will default to the desired foreground color (which is the
same as the tooltip text color).
Fixes#12573.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
* The actual problem is that the launch_daemon does not notice the
manual launch of system services (because of the missing registrar
that provides that service).
* So not checking if the print server is running actually solves the
issue; otherwise the launch_daemon starts its own server, that will
then get shut down, as there already is a print server (the one
launched by the Printers preferences).
* Closes ticket #12531.
The MIME type that's created by WonderBrush contains an out-of-date
sniffer rule. Archived BMessages used to start with '1BOF', now it's
'HMF1'. That's why newer WonderBrush images aren't identified as such.
The new sniffer rule should detect both old and new files.
What appeared to be multiple issues was just one issue: BButton was drawing the
control background color for its border, whereas the previous system drew the
control low color, which was the parent's view color.
Neither is correct, no border should be drawn at all.
This made it appear that the default button was larger than it was and also
made it appear that some apps had a "white" border around the buttons.
In addition, BButton can now use the default BControl color behavior and
BButton exclusively adopt either parental or system colors without worrying
about the case in which another view has set the button's view color manually.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Previous colors matched the menu background color, but should have been
darkened.
The tint value was not being updated for the SetViewUIColor call construction,
therefore the tint parameter was still B_NO_TINT.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Repair regression where low color for text drawing was not set properly.
Do not use tinted color for default color state.
Prior to this, the hinting font would not respond to being pressed and the
column title background was the wrong color initially, but correct after
resizing (but then wrong again after a redraw on exposure).
In addition, the initial tint values used for the view color were unused,
so I removed them.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
* The direct methods in BMailProtocol now forward the request to the
looper; it's no longer the mail_daemon's responsibility to know
anything about that protocol.
* It's in desperate need of refactoring, but it doesn't hurt to add
it to the repository as is.
LinkReceiver would spin endlessly when given a timeout value which prevented
DelayedMessageSender from being operational.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patch 0002 from looncraz, unmodified.
This was a bigger change than many others as BButton now defaults to using
control background colors, and we can not do that here without the buttons
not appearing as we desire (blending in with the toolbar).
Using the control background color for the toolbar would be unacceptable.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patch 0041 from looncraz, unmodified.
InfoWindow now uses the font size to determine the window size and
placement of elements. Also uses system colors, including link
colors. Permissions view not font sensitive yet.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patch 0039 from looncraz, unmodified.
The inseparable changes necessary to support live color updating across the
system in a sane, safe, and performant manner.
BView gains:
HasSystemColors()
HasDefaultColors()
AdoptSystemColors()
AdoptParentColors()
AdoptViewColor(BView*)
SetViewUIColor(color_which, float tint)
SetHighUIColor(...
SetLowUIColor(...
ViewUIColor(float* tint)
HighUIColor(...
LowUIColor(...
DelayedInvalidate()
BWindow gains a simple helper method:
IsOffscreenWindow()
BMessage gains:
AddColor()
FindColor()
GetColor()
HasColor() * allegedly this API is deprecated, but I implemented it anyway
ReplaceColor()
SetColor()
Previous private ColorTools methods are made public and moved into GraphicsDefs:
mix_color, blend_color, disable_color
These are fully compatible with BeOS dan0 R5.1 methods and are just code cleanup
of BeOS example code under the OpenTracker license.
In addition, four new colors are created:
B_LINK_TEXT_COLOR
B_LINK_HOVER_COLOR
B_LINK_ACTIVE_COLOR
B_LINK_VISITED_COLOR
These changes are documented in their proper user documentation files.
In addition, due to a history rewrite, B_FOLLOW_LEFT_TOP has been defined and
used in lieu of B_FOLLOW_TOP | B_FOLLOW_LEFT and is included in this commit.
On the app_server side, the following has changed:
Add DelayedMessage - a system by which messages can be sent at a scheduled time,
and can also be merged according to set rules. A single thread is used to service the
message queue and multiple recipients can be set for each message.
Desktop gains the ability to add message ports to a DelayedMessage so that
said messages can target either all applications or all windows, as needed.
Desktop maintains a BMessage which is used to queue up all pending color changes
and the delayed messaging system is used to enact these changes after a short
period of time has passed. This prevents abuse and allows the system to merge
repeated set_ui_color events into one event for client applications, improving
performance drastically.
In addition, B_COLORS_UPDATED is sent to the BApplication, which forwards the message
to each BWindow. This is done to improve performance over having the app_server
independently informing each window.
Decorator changes are live now, which required some reworking.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
* polarity regs move on LVDS vs analog
* add knowledge or transcoder registers, they
exist seperately on PCH-split
* Native resolutions now work on LVDS under i965
* When cloning a cached mask, we have to attach the
AGG rendering buffer of the new instance to the AGG clipped
mask object. Before, it was using the buffer description from
the clone source.. which can later disappear at any time.
* Fixes bug #12478
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
This is a squash of the 42 commits by @mshlyn, as I couldn't find a
way to break them into logical chunks. I did not include these in the build,
as it appears that they only partially work anyway, and much more cleanup is
still needed. However, this is a huge improvement on what was in the tree
before, which looked horrendous and didn't even compile (as it was designed
for the old stack).
Mostly fixes#812.
* Fix Endpoint Context Initialisation (Refer xHCI v1.1 - 6.2.3)
* Fix Interval Calculation (Refer xHCI v1.1 - 6.2.3.6 , USB 2.0 - 9.6.6 page 271)
* Fix MaxBurst, MaxPacketSize Calculation (Refer xHCI v1.1 - 6.2.3.5, USB 2.0 - 9.6.6 page 271)
* Fix MaxESITPayload Calculation (Refer xHCI v1.1 - 4.14.2)
* Remove Link TRBs as they were never being used
* Increase Number of TRBs per endpoint (to utilise the whole area allocated for Device TRBs)
* Fix usage of XHCI_MAX_ENDPOINTS (most of the checks were failing at corner cases)
* Some coding style fixes.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Before this patch, writes to USB disks on XHCI in VirtualBox (which emulates
an Intel C210) stalled or failed. After this patch, they apparently work,
although I got mixed results - a BFS disk seemed to work perfectly, a FAT32
one also seemed to work OK but after a reboot there was data corruption. USB
mouse is still as busted as ever.
These are now done in AcpiInitializeSubsystem(), as part of the
early init so they can be present when the tables are loaded.
Should fix ACPI not working since the merge.
Requested by RudolfC. Apparently there was a regression which prevented
ACPI battery/power from working on his system, which was fixed by
https://github.com/acpica/acpica/commit/a3267967c.
The only testing I did with this was confirm it compiles and boots
in a VM, so apologies if this breaks something else.
The heap implementation of the runtime_loader was switched to the one
of the bootloader in 6f0994d but was since updated independently.
To keep the diff between the two implementations as small as possible,
the bootloader implementation was first copied to the runtime_loader
and then some features not relevant in the runtime_loader (like the
special large allocation handling) have been removed and the
runtime_loader specific features (grow_heap, add_area) have been
reintegrated. But basically this applies 96689a5..HEAD of
src/system/boot/loader/heap.cpp to the runtime_loader heap.
This brings in the switch from a linked list to a splay tree based
free chunk management. Since the allocation counts in the runtime_loader
are rather small, this does not perceptibly affect performance in either
direction though.
The needed storage space for tracking the allocation size was not
accounted for when growing the heap. Since the growth size is always
rounded up to a multiple of 32KiB, this did almost never matter as the
new allocation wouldn't need the full size. If the allocation did
happen to need the full size however, the newly added area would always
be too small. As the allocation attempt was simply restarted after each
successful growth, this lead to an endless loop creating small new
areas, which would then quickly starve the system for memory.