* Cursor bitmaps are now generated at runtime from vectors
embedded in CursorData.cpp (replacing the old bitmaps).
There is still a fallback bitmap pointer in case generation fails.
All cursors should scale correctly, and hotspots are accounted for.
* The Pointer vector in data/artwork/cursors was very slightly tweaked
to look better at larger sizes - the white edge at the bottom was made
rounder.
* The new dynamically-generated cursor looks close to the old one,
unless you're zoomed in and comparing them pixel-by-pixel.
* The cursor shadow is generated with a gaussian blur to create a
similar look to the old shadow, which was created in an image editor.
Fixes#13171.
Co-authored-by: Augustin Cavalier <[email protected]>
Change-Id: Ifa881619354a42bc60d2b5c1d0443e8addf6e0f5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5200
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
instead of returning B_NOT_SUPPORTED.
* this fixes a few tests of sortix/os-test/udp.
Change-Id: I961e71cc419ce7ab38419749a42df8737e272c83
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9392
Reviewed-by: waddlesplash <[email protected]>
BView-related code removed or disabled, of course, but this now uses
the ColorConversions class, and adds some more ImportBits APIs from that.
Change-Id: I805cef159bac52173ef16030eae69e83db6f061b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9391
Reviewed-by: waddlesplash <[email protected]>
Toolbars go with menu bars, and so to blend in better with them,
should use the same colors. (Under the default color schemes,
the menu bar and panel colors are the same, so this makes no
visible difference there.)
Added a TODO for button colors as we may want to do something different
for that, it also makes no difference with the default scheme, but
for non-default schemes may matter.
Improves #19629.
This fixes a bug that's been annoying me - when I use Workspaces to
move a terminal that's scrolling/moving on another workspace, the
terminal begins drawing into the current workspace; this also happens with
some other apps, like Qemu. I tracked this down to Desktop::MoveWindowBy,
where we update an invisible window's current workspace to the one it's
being moved on. Trouble is, the current workspace is set to -1 for windows
on another workspace, and IsVisible just returns whether the current
workspace is >=0, so doing this causes IsVisible to return true when it
shouldn't.
This patch replaces that call with one that sets a separate
invisible workspace member variable, which preserves all window moving
functionality without improperly setting a window as visible. It also fixes a
minor graphical glitch when moving off-workspace tiled windows.
Fixes#6722
Change-Id: I2c4f04602caed85bf08391d0ea99e4dc74c1e1d8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9256
Reviewed-by: waddlesplash <[email protected]>
Presently, the control color is heavily tinted almost everywere
it's used, making it difficult to set from Appearance preferences,
and making the default theme not look so good in "dark mode."
After this patch, the defaults are changed to something much closer
to the actual final color used in buttons and scrollbars, and the tints
thus heavily reduced as a result.
B_CONTROL_BACKGROUND_COLOR wasn't present on BeOS, so it should
be safe to change its default. Some logic is added to app_server to
automatically migrate to the new color if the old default is present.
(This is based on nephele's initial patch, but significantly reworked
so that existing installs are upgraded as seamlessly as possible,
with few or very minor visual differences.)
Co-authored-by: Pascal Abresch <[email protected]>
Change-Id: Ida9fbaa61df9aeb89a9daf59cd9901a34737d5f9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8878
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* When a file hole is created, zero the start of the page where the
hole ends.
In my test setup at least, the server takes care of zeroing any full
pages in the hole created when a write begins at a position after the
existing EOF. Since the file cache page where the write starts will be
written back to the server, we just need to partially zero that page.
This change allows the driver to pass the 'holey file' test in the
nfs connectathon test suite.
Change-Id: I5a0d52af5cce4fb9e2d9f928f45fd0adcfa23627
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9381
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Previously it used "contrast" and "brightness" values that were
computed in strange ways. Now it behaves more like the other
color computation functions and deals with the "flags" directly.
Comparing many controls, colors on button frames in all states appear
to be the same (or nearly the same, within 1-2 RGB values) before
and after this change.
Change-Id: Ia6d696c29fc76c73c88cc97af97ea45e1ff089ff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9321
Reviewed-by: waddlesplash <[email protected]>
The openboot mmu code does not like addresses above 4GB, so load the
kernel to a lower address. It doesn't really matter anyway, because on
sparc the kernel normally lives in a separate address space and uses
special instructions to access userland memory.
See #19597 for details, further changes will be needed here.
Change-Id: Iac6901f275667efef5e64d059daf4c96032a7baf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3573
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Duplicates can arise if e.g. you have backup of your contacts mounted.
Or, imagine someone packages a Person file with their software as it
was common back in the BeOS days. If you have several software packages
from that dev, you'll see copies of that Person file from each package.
If a contact has the same name, we compare all email addresses. If they
differ, a new item is created. That way, Person files with more than
one email attribute ("META:email{n}" with n >= 2), as used by other apps
like Peeps!, get an item per address.
When checking for email addresses in AddPersonAddresses(), don't quit
looking through the attributes when encountering an empty one via "break".
Do "continue" with the next "META:email{n}" attribute, as it's possible
META:email2 is empty, but META:email3 has an address.
Change-Id: I644cfa2d8349b5022ffde37344c55a54577b12f8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9331
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Other contacts apps like Peeps! allow for more than one email
addresses, using the attributes META:email{n} with n >=2.
Only, not all contacts having those additional attributes have
them actually filled.
This results duplicate entries in e.g. the To-field pop-up with
no email address attached.
We now only add an item if its email address isn't empty for those
additional email attributes as well.
Change-Id: Icb1750fe8e2b10280bc01b3181b444f01096e021
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9329
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Locale::createCanonical will happily accept all kinds of strings
that don't actually indicate valid locales, but down the line
ICU will behave strangely or even crash with these in certain methods.
So, use getISO3Language(), which will return nothing if the language
is unknown to ICU, to validate that the locale exists, or bail if
it doesn't.
Fixes#19576.
Before, when you got multiple emails open, doing e.g. a "Close and
leave as New" (SHIFT + ALT + W) would correctly leave the active email
with status "New", but the other open Mail windows were closed as well
and got the status "Read"!
Now we only close the current Mail window, not the whole app and with
it all open email windows.
The currently somewhat hidden command "SHIFT + ALT + Q" now issues
a message to all open Mail windows to close and keep their mails' status,
i.e. the same as invoking SHIFT + ALT + W in all open email windows.
Change-Id: I0402a1e39ce58b53eca2c3bfe8f8becd5529c566
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9305
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Move back and forth in the search history with CursorUp/Down.
Entering a search text will reset the current history index
(fCurrentHistoryIndex = -1), and you'll be back to the first
history item next time you CursorUp.
Change-Id: Id45a47756b4732ae6e22e5373c4db5249c8df198
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9303
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Previously, Entry::Link() behaved incorrectly in this case:
it would unlink the old Node before linking the new one.
But there's only one DoublyLinkedListLink inside Entry
for the Node to use, so this would clobber the lists
and thus produce KDLs.
Instead, make Link fail if there's already a node, and
thus force the caller to Unlink first. For now, just use
a "naive" implementation of this in the one case in
rename(); in the future we could make it more robust if
necessary.
Fixes the other KDL in #19583.