Commit Graph
68373 Commits
Author SHA1 Message Date
Jim906 be9bccd08f Tracker: expand use of mime sniffer
* Add Model::SniffMimeIfNeeded as a faster alternative to
  Model::Mimeset, useful for ensuring that Model::fMimeType is
  initialized regardless of whether the filesystem supports MIME.
* Use SniffMimeIfNeeded when the user interacts with a file.
* Change the return value of Model::Mimeset to match the comment in
  Model.h, although currently no client functions pay attention to the
  return value.
* Fixes #19284.

The SniffMimeIfNeeded calls provide the following behavior:
* AddOneRefSignatures - Populate Open With
* SearchForSignatureEntryList::Relation - Populate Open With
* SearchForSignatureEntryList::RelationDescription - Populate Open
  With descriptions (e.g. "Preferred for Text file").
* TTracker::OpenInfoWindows - Set up Get Info window

Change-Id: Icd0aa98781e191d3f804235b0ab8acfdbe47582d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9683
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 16:32:15 +00:00
cafeina 0681754858 Haiku Book: Added MailAttachment, MailDaemon and mail_encoding
Modified book, MailComponent and TextMailComponent to add libmail group.

Change-Id: I958ff0188c5ae33745bff061ee24e80d5af7845f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8683
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 12:33:49 +00:00
Samuel Rodríguez Pérez f3ba3dd008 ps/2 elantech: Enable v4 devices
Missing are v1, v2, and v3 devices that will
be enabled in separated commits.

This should help fixing the following tickets:
  #5179,  #5604,  #7755,  #9154,  #9173,
  #10059, #12669, #15340, #15729,
and perhaps many others.

Change-Id: I0cae0e1a61fc7f5a7304983170148681ebd8fe09
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10015
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 2c81764326 ps/2 elantech: add finger hack with TODO to remove it later
Add finger hack to simulate statuses on finger width based
on synaptic hardware and TODO to remove this in the future
when those flags are splited out from finger with values
on all devices and on user space.

Change-Id: Iecba7612ad7041bb948132754c4ea263c9b331ac
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9957
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 494ae23c3d ps/2 elantech: trackpoint support (untested)
Threat trackpoint packets to mouse_movement values instead of
touchpad_movement. This required changes on ioctl handling
effectely making this as kind of hybrid device which reports
back MS_READ events for touchpad and MS_READ_TOUCHPAD for
touchpad related processed packets.
The logic is similar to the ioctl and movement handling
funtions of the Haiku ps/2 alps driver.

Packet descriptions based on FreeBSD 14.3 psm driver.
Constant bit checks based on FreeBSD 14.3 psm driver.
Packet processing code based on OpenBSD 7.8 pms driver with variable
naming adjustments to match FreeBSD and Haiku.

Change-Id: I42b62ccbb410060cceba4f17d299c7daf0c38b66
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9956
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez cf37429032 ps/2 elantech: v1 support (untested)
Packet description information taken from Linux documentation
and formated matching on FreeBSD 14.3 driver entries.
Introduce parity check and other packet validations.
Packet processing code based on OpenBSD 7.8 pms driver with variable
naming adjustments to match FreeBSD and Haiku.
Fix packet size and supporting reg functions.

Change-Id: Iad2d0856a1f9bc7291c7e4f6f8a81c2ddb9f58a4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9955
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 44e945d9cd ps/2 elantech: v2 support (untested)
Packet descriptions based on FreeBSD 14.3 psm driver.
Constant bit checks based on FreeBSD psm.c and Linux drivers.
Packet processing code based on OpenBSD 7.8 pms driver with variable
naming adjustments to match FreeBSD and Haiku.
Complete get_rage for v2 devices based on Linux driver.
Special middle button handling for EF113 devices handled by compile
time options being the default to report middle button instead of
left and right pressed at the same time.

Change-Id: Ic23e9a889987a5f150af57c13f8c3b5244b747f5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9954
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 35e407488a ps/2 elantech: v3 support (untested)
Trackpoint related packets are ignored as of now.
Packet description and validations based on FreeBSD 14.3 psm driver.
Packet processing code based on OpenBSD 7.8 pms driver with variable
naming adjustments to match FreeBSD and Haiku.
Excluded v3 faulty devices as described on Linux ETPS/2 driver.

Change-Id: I5493128557b72fe72f0ea72e225854b745da459a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9953
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 42c5c30bc7 ps/2 elantech: v4 - implement v4 (funtional)
v4 - HEAD packet: Handling of finger id 0 only

Process finger id 0 keeping code separated handling preparing for
multifinger support.
Add extra checks with hardware limits.
Keep separated event and cookie position handling.
Improve tracing.

v4 - Improved pressure handling

Do not provide pressure when there are not fingers touching and
set a default pressure valud pressuming it will be taken into
account for tapping on the user space on packets where pressure
information is not provided by hardware.

v4 - Hardcode fingerWitdh to defaut value

Always provide default finger width value which is not a Synaptics
w flag to enable tapping getting rid of previous 0 value which is
the Synaptics flag for 2-fingers on that variable.

This gives the chance to decide from the user space when to issue
tapping or scrolling instead of being hardcoded on the kernel driver.
At the same time it makes MOTION packets that contain information of
2 fingers on the same packet to be taken into account for cursor
movement if applicable for instance when two-finger scroll is disabled.

v4 - Fix tracing text and comment

The value provided is not the number of fingers or fingers map
but a finger id number.
Move comment to the next line as that applies to next if condition
and not to the trace instruction.

v4 - MOTION packet: Fix getting finger 0 info

Sometimes the information on MOTION packet which contains
2 finger positions could come on descending order by id.
For insteance finger 1 on the first location of the packet
and finger 0 coming on the second one.

Get finger 0 values from first or second finger information
location in the packet if available instead of checking for
the first position only. Report to ignore packet otherwise.

Provide extra checks and improve tracing.

The set of changes of this commit fixes suttle cursor jumps
caused by missing finger 0 information when that is provided
on the second location of the MOTION packet instead of coming
from the first location. On that scenario, if a following HEAD
packet containing absulute positioning for finger 0 is comming
the issue was reproduced.

v4 - MOTION limit positions to boundaries

This fixes cursor jumps and cursor disapearing among other
misbehaviours when relative positions for the movement added
up to the expected previous absolute position of the finger
id on touchpad coordinates result on underflow or overflow.

v4 - Manipulate finger bitmap computation based on previous packets with TODO

There is no consensus on BSDs and Linux drivers, nor even clear
documented behaviour for this so this is implemented based on
experimentation.

FreeBSD considers STATUS packet comes first prividing the list of
fingers detected following a sequence of HEAD packets prividing
absolute positioning for fingers that hadn't prevously been tracked
 and MOTION packets for relative positions for subsequent movement
packing 2 finger information per packet until interation with the
touch area stops so a final STATUS packet with no fingers detected
and filled out with zeroes for other fields signals the end of
movement. Motion packets with fingers ids not mapped form the HEAD
are discarted as invalid data.

On Linux there is not such restriction so HEAD or STATUS packets
are taking into account regardless fingers on STATUS information
matches with next packet.

So that, the implementation here uses the STATUS information as
informative for the following events. For instance if a status
packet signals that two-fingers are pressed and the next packet
is a HEAD packet, the latter only can provide information for
one finger only, then the number of fingers reported is 2 on the
head packet if the id of the finger overlaps with the ones from
the HEAD packet or 3 fingers in case the id is a new one.
Same logic applies to MOTION packets.

This makes the asumption that a started event can only retain or
increment the number of fingers until a movement action is finished
providing continuity for dragging actions and scrolling actions.

A TODO is added to investigate which should be the right behaviour
for this and check if differnt v4 hardware and firmware match.

v4 - Implement hardware palm detection as compile option disabled by default

Fixed hardware palm detection to be taken into account on a separate field instead of
being a hack messing with the number of fingers reported on STATUS packet and complete
the conditions propagating the palm detected value on HEAD and MOTION packets fixing
some previous non-accurated conditions.

This fixes incorrect reports for taps among others on both cases whether the compile
option is enabled or not.

Apart from that a TODO is added from completeness to encourage looking for software
palm detection instead that will benefit other devices as well.

Palm detection will be more accurate to do by software so is is disabled by default.
Some posible options are:
- Improvements on padblocker input filter.
- Improvements in user mode input_server device.
- General input_server modifications.
- Other inprovements on this driver.

v4 - Initialise event structure so that new or unasigend fields will be zeroed

This prevents potential misbehavious by dealing with incorrect data in case
the event structure is modified in the future with new fields after recompiling
this driver with unchanged code.
At least those field will be zeroed with usually mean that they are at least
initialised.

Change-Id: Iccfdd356ff2834e5dea64481259fd890dd95406b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10013
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 3c60f80ae5 ps/2 elantech: v4 - Implement buttons, position, preliminary presure, fingers bitmap
v4 - Implement buttons

v4 - STATUS. Hardcode position to special (0,0) coordinates

This fixes mouse disapearing on first iteration and fixes scrolling a bit.
Provide tracing for coordinates provided on the cookie as STATUS packet
does not contain them.
Commented is assinged cookie position to (0,0) as this is used to restrict
MOTION positions in a visible way as workaround for its correct
implementation. This will be cleaned up later.

v4 - Add presure handling for HEAD and MOTION packets

Initial change to enable tapping on v4 devices.

v4 - Use fingers bitmap from STATUS on all packets

Provide fingers event with finger bitmap value from last STATUS packet
as neither HEAD nor MOTION packet provide that detailed information.

This change is essential to implement clickfinger behaviour, better
tapping conditions, two-finger scrolling, etc.

Change-Id: I7908bac305431d436f4bf6273a700036f4e483e3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10012
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 1861f096a2 ps/2 elantech: Return B_BAD_DATA when there is no new event from the touchpad
This fixes many unstabilities and unexpected behaviours, as returning B_ERROR
triggers a device restart and returning B_OK with incomplete or not initialised
data makes movement makers and mouse input server device add-on code to process
that as if it were completely correct.

That would trigger many phantom clicks, cursor jumping, coursor desapearing and other
collection of misbehaviours.

Change-Id: I05c40cb4f17e28a6b93f6e17984d6a1171fdd00a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9937
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez d7a262944a ps/2 elantech: v4 - Replace dprintf by TRACE for known packets
Change-Id: I10ff681301d206d86a8c7aa852a8bc3674102ce5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9936
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez c7e9c982a8 ps/2 elantech: v4 - Fix validation checks and improve tracing
Based on FreeBSD and Linux drivers to provide missing validations.

Change-Id: Ibc9559fb973e019e9f1f1cb61ab95aa6c54d5e69
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9934
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez bffef3fd1d ps/2 elantech: v4 - Add common legend and packet descriptions from FreeBSD 14.3 psm driver
This includes common legend for all packet versions and packet
descriptions for STATUS, HEAD and MOTION v4 packet types

Change-Id: Ibbb2296f8df7b63ac7beee000b208d7b2744084d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9933
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 82678d33d6 ps/2 elantech: Split get_elantech_movement into 2 functions
Keep separated common code from specific v4 code leaving room
for implementing other versions on another stage.

Change-Id: I7e02a395a867c79fcf646125d41add77626d2cac
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9932
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 5578783036 ps/2 elantech: Initial cleanups and fixes to support input devices
- Add references for driver implementation.
  References from FreeBSD 14.3, OpenBSD 7.8, Linux 6.17 sources
  and Linux 4.16 documentation.
- Add pragma marks for easy navigation
- Add missing define to fetch firware info from hardware
- Reduce size of version field
- Update probe function to be able to enable supported devices
- Update open function to add missing v4 devices
- Fix enable_absolute_mode and use same snooze time as BSDs and Linux drivers
- Fix get_resolution_v4 and set sane defaults instead of failing with error
- Update license for ps2_elantech.{h,cpp}

Change-Id: I76fba3be04d7b940079fc78c3b7fe7d8bf8dfa06
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10011
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez a3f6c4d484 input: Implement click finger behaviour (enabled by default)
input touchpad settings header:
- click finger behaviour (enabled by default)
- Emulation of different button clicks depending on the
  number of fingers that are pressed at the same time on
  any location of the touchable surface of the device.
    - Clicking with 1 finger triggers a primary button click,
      usually left button click.
    - Clicking with 2 fingers triggers a secondary button click,
      usually right button click.
    - Clicking with 3 fingers triggers a terciary button click,
      usually middle button click.

  This feature is useful for clickpads that are input devices
  lacking a separated set of buttons from the touch area.

input preflet:
- Implement clickfinger

input mouse:
- Handle and provide new settings for clickfinger behaviour

input mouse mm:
- Implement clickfinger in the user space
- Enables button emulation based on the number of fingers pressing
  at the same time the touch surface.

  Userful feature for clickpads.

Change-Id: Ibaa06df3887793158093cc08f6281fc080e85c3b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9923
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez f44235f7e5 input: Implement software button areas (disabled by default)
input touchpad settings header:
- software button areas (enabled by default)
- Emulation of buttons clicks based on which small area
  assinged by each button is pressed. For instance, a
  software button area on the bottom of the touchpad
  could be divided on 3 subareas one for each button.

This new feature is useful for clickpads that are input devices
lacking a separated set of buttons from the touch area. However,
we may prefer to make the GUI better suppot "single button" devices.
Disabled by default as we don't currently have a way to adjust the
default settings according to the presence of physical buttons,
and having this disabled yields an OK experience on all machines.
Having the soft buttons in addition to physical buttons would just
be too strange.

input preflet:
- Implement software button areas

input mouse:
- Handle and provide new settings for software button areas

input mouse mm:
- Implement software button areas in the user space
- At the moment only a bottom located software button area
  simulating 3 different buttons is enabled.
  There is a working implementation 2 buttons only but not
  enabled in the code base.
  TODO for other type of software button areas is there.

Change-Id: I255cb1a7eac0d18064c63a2a0d4b158be7370a17
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9922
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 696c694dbb input: Implement edge motion (enabled by default on tap drag)
input headers:
- Add edge motion constants

input touchpad settings header:
- Edge motion (enabled by default as on tap drag)
- Help moving the cursor and the primary finger transitions
  from one place of the touchpad to its edge and then stays
  on the edge for some time.
  The default matches the current hardcoded behaviour.

input preflet:
- Implement edge motion options

input mouse:
- Handle and provide new setting for edge motion

input mouse mm:
- Enable edge motion on tap drag based on settings instead of being hardcoded
- Some users who didn't have a chance to read the users' documentation could
  wrognly believe that this feature is a bug by not understanting why
  unexpected cursor movement happen at constant speed on some scenarios
  sometimes not even realising that it happens when the finger is approaching
  to the edges of the touch area by mistake.

  At least, even if this is the current default setting at the moment, this
  enables the chance to change it instead of being a obscure hardcoded feature.

input mouse mm:
- Enhance edge motion with extra behaviours
- Support for other edge motion aids apart from "on tap drag only".

Change-Id: Ice50139f9f8001494f7e2a46bb1521a1e525cade
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9921
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 11:01:29 +00:00
Samuel Rodríguez Pérez 6d4c0985d4 input: Implement two-fingers natural scrolling (enabled by default)
input touchpad settings header:
- Implement two-fingers natural scrolling (enabled by default)
- Sets scrolling with 2 fingers on the touchpad making
  the content to move in the same direction as the finger.

input preflet:
- Implement 2 fingers natural scrolling

input mouse:
- Handle and provide new settings for 2 finger natural scrolling

input mouse mm:
- Implement two-finger natural scrolling feature
- Implement natural scrolling for two-finger scrolling completely
  separated from reverse scrolling for egde scrolling only.

Change-Id: Idf673ec34a424b20183ed90761f297340d521526
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9919
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-01-02 11:01:29 +00:00
Christof Meerwald f7598f6461 IPv6: Fix cache update when receiving neighbor solicitation
* For a received neighbor solicitation, the target address would be
  our local address, so we need to use the IPv6 source address instead.

Change-Id: I93af830c04354e069c3c43f05e28a3cf3cd5dd9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10178
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 09:13:12 +00:00
Christof Meerwald fdea8f3939 netstat: Added support for displaying IPv6 addresses and fixed filtering
* Previously, the filtering logic didn't work at all.

* netstat can now also display IPv6 addresses (mainly by using
  getnameinfo instead of using IPv4 specific functions).

* Removed dead code.

Change-Id: Iaafe3d57253a64ef12ed79d7968e8fd1dfcb3960
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10180
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-01-02 09:12:53 +00:00
Christof Meerwald babc1f216f telnet: Enable IPv6 support
* Define INET6 when compiling telnet and telnetd

Change-Id: Ic79c6001b6b8381ec00ae93a44304fd52d84eccb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10179
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-01-02 09:12:15 +00:00
nipos 8bd9e74a7c notification_server: Tint close and collapse icons light in dark mode
Change-Id: Ic3a32e409c371de9c59520561309222a3e92382a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9760
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-01 09:23:32 +00:00
John Scipione 3e7a109936 fat: Change device_name to B_DEV_NAME_LENGTH bytes and use strlcpy().
Change-Id: Icd07bb4c23ce27d2f1361c66b1634c7f2be5d131
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9891
Reviewed-by: Oscar Lesta <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-01 08:36:35 +00:00
John Scipione 9d432d1b00 fs_info: Use B_DEV_NAME_LENGTH instead of 128 and remove TODO.
Change-Id: I2c93aee052ac4393512d457e1e84c969e5a927f9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10131
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-01 08:36:35 +00:00
PulkoMandy 0d6bb5bfc1 BFilePanel: lock window while constructing
TFilePanel inherits from Tracker's ContainerWindow, which calls Run() in
its constructor.

This results in the constructor of the subclasses being run while the
window message loop is already running and processing messages.
Specifically, views are getting resized and moved both by the
constructor (in RestoreState) and by the resizing code (_ResizeBy
recursively relayouting all children).

This results in the cancel button being left at the wrong place at the
end of the constructor (or shortly thereafter). While that on its own
has no consequences because the layout is fixed when the window is
finally shown, the position of the cancel button just after the
constructor is relied on by applications which add custom widgets to the
window (Wonderbrush, Icon-O-Matic, Pe for example).

Make sure to keep the window locked while setting it up, so the message
loop does not interfere.

Fixes #19499.

Change-Id: I83f8fcfc56434e979b20043d8d652074f2f3cf5d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10176
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-01 08:32:50 +00:00
PulkoMandy d9ee2fab67 makebootable: guard against writing to non-bfs partitions
- Check superblock magic. Overwriting the first sectors of partitions
  using other filesystems than BFS is likely to cause trouble.
- Check presence of bootcode in the same version, as well as the correct
  partition offset.
- Tell the user when the partition was already bootable and nothing was
  done, hopefully this will finally stop people from thinking that
  makebootable is of any use (it isn't, Installer already does the
  work).

Change-Id: I792fb29166773e224266d35a4976ac90662e5cb6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10174
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-12-31 21:22:44 +00:00
PulkoMandy c2606d189c DriveSetup: show on all workspaces if Deskbar isn't running
Same thing is done in Installer to avoid confusion in case workspace
switching shortcuts are used accidentally.

Fixes #19278

Change-Id: I20af1a235f47f012a120c6a94511bfe94a2cdfbd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10145
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-31 19:29:16 +00:00
John Scipione 08ce5659a4 Mail: Update text control colors automatically.
Remove SetStylable() call making it false.

Update low and high colors in _UpdateTextViewColors().

Update colors when B_COLORS_UPDATED message is received.

Change-Id: Iad3e3d9f46b922c7cf68e20cd7788d0d0efcb0b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10010
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: John Scipione <[email protected]>
2025-12-31 19:24:27 +00:00
John Scipione eb506aedcd Mail: Make read-only/disabled fields navigable and selectable
Always MakeSelectable(), MakeEditable() in SetEnabled().

Get rid of fEditable and fWindowActive. Get rid of IsEditable(),
SetEditable(), IsSelectable and SetSelectable().

Change-Id: Iab07097b2692ef6d9d7ed41b0fab45a2df99e261
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10009
Reviewed-by: John Scipione <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-31 19:24:27 +00:00
John Scipione adce07dae3 Mail: Style fixes related to text control color updates.
Change-Id: I3e642194ecad877f75f13e0031b9b234541f19aa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10008
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: John Scipione <[email protected]>
2025-12-31 19:24:27 +00:00
John Scipione 9215b337a9 AboutSystem: Live update credit text view colors
Change-Id: Ibf5737f3724451f1e4e1a0272333e66759cc72e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10132
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
2025-12-31 12:54:15 +00:00
PulkoMandy 9867652063 bfs: better filter invalid timestamp values
Timestamps in BFS are stored with a 16 bit subsecond precision. However,
a lot of files have this field set to 0 as they are created with APIs
that do not set a subsecond precsion value.

The previous format (introduced in hrev31057) did not track wether the
stored data was a 12 bit sequential number or a 12 bit subsecond
timestamp + 4 bit sequential number.

As a result, setting a timestamp with nsec=0 would read back a different
value (exposing the sequential counter to userspace).

Older versions of Haiku, and BeOS according to the Practical Filesystem
Design book, did not store a timestamp there. Haiku used to store the
volume UID (I don't understand why), and BeOS stored a sequence number
because the POSIX APIs at the time didn't allow to get and set the time
with nanosecond precision.

The Practical Filesystem Design already mentions that storing a
subsecond precision value here would have been better than their
workaround.

The new format relies on the fact that nanoseconds can only be in the
range from 0 to 999999999. After the conversion to a 16 bit value using
simple shifts, this result in a maximum possible value of 0xEE60. The
new format exploits that, and uses the range 0xF000 to 0xFFFF to
represent 0 timestamps with a 12 bit sequence number.

This allows the sequence number to be hidden from userspace entirely.

Fixes #19213.

Change-Id: Id80289a4331ecfbf2f1a35520b58a99227d1f1d6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10146
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-12-31 12:50:48 +00:00
Augustin Cavalier 33bc049b2d freebsd_wlan: Don't include stdbool.h under C++.
Should appease GCC 2.
2025-12-30 22:04:33 -05:00
waddlesplash 781af7ad7a Revert "makebootable: guard against writing to non-bfs partitions"
This reverts commit 41f7e3c29a.

It breaks generation of @*-raw images: they weren't bootable anymore
after this change.

Change-Id: I23afdb99fd7b14d5e5a0dc5d3db244a83817ae4d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10173
Reviewed-by: waddlesplash <[email protected]>
2025-12-31 02:58:18 +00:00
Augustin Cavalier 80dc70d5df drivers/ether: Synchronize intel22x, ipro1000, iflib with FreeBSD 15. 2025-12-30 21:56:34 -05:00
Augustin Cavalier 829caf8905 freebsd_network: Additions and motifications for FreeBSD 15 iflib drivers.
* Rewrite machine/atomic.h for clarity and correctness, and add
   a few methods.

 * Add two methods to libkern.h.
2025-12-30 21:55:45 -05:00
Augustin Cavalier a564fd3ccd drivers/ether: Synchronize all non-iflib drivers with FreeBSD upstream.
Mostly minor changes. (Some related to power management refactors
not imported for now.)
2025-12-30 21:54:35 -05:00
Augustin Cavalier e67600e2a4 Synchronize net80211 and all FreeBSD drivers with upstream 15.0.
Tested with realtekwifi.
2025-12-30 19:49:40 -05:00
Augustin Cavalier 4203e71194 freebsd_network: Split m_get3 out of m_get2.
The manpages indicate get2 will return NULL for anything larger
than MJUMPAGESIZE.

(The soon-to-be-merged realtekwifi from FreeBSD 15 uses m_get3 directly.)
2025-12-30 19:18:32 -05:00
Augustin Cavalier e923b9b52b checkfs & resizefs: Adapt following API change in the Storage Kit.
This function always declared that it returned status_t, but
then in practice it didn't. In d225106a20
that was fixed, so these workarounds can be removed now.

Fixes #19862.
2025-12-30 18:36:25 -05:00
Oscar Lesta 3a9d48c77c makefile-engine: split C and C++ flags.
Gets rid of the annoying:

"cc1: warning: command-line option '-Wno-ctor-dtor-privacy'
is valid for C++/ObjC++ but not for C".

Change-Id: Ic72506277af56365cfe52513e1118584bf338ac9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10163
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-12-30 22:46:59 +00:00
PulkoMandy 41f7e3c29a makebootable: guard against writing to non-bfs partitions
- Check superblock magic. Overwriting the first sector of partitions
  using other filesystems is likely to cause trouble
- Tell the user when the partition was already bootable and nothing was
  done, hopefully this will finally stop people from thinking that
  makebootable is of any use (it isn't, Installer already does the
  work).

Change-Id: I9352f1a3853626d093c04f8283771189395d023b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10171
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-12-30 20:45:34 +00:00
Humdinger d0b565c5b2 Fix Web+ Loader pages
* Assign correct MIME type for XHTML
* Fix XML encoding of '&' as '&amp;'
* Use 'https' instead of 'http' where possible

Change-Id: I9d0628bd560b253bf9df10ed7e28eb77cf9161e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10168
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-29 20:52:25 +00:00
cafeina 1be6a11df6 Haiku Book: added SerialPort
Change-Id: I7e4c1c6cf2e65a27d26ef22d44619067e498f572
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10134
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-12-28 12:01:52 +00:00
PulkoMandy 368cac3c9d ImageRules: do not include catalogs from .so in dependencies
The rule to add an executable or shared library to the Haiku image
automatically also includes the corresponding locale catalogs and MIME
database entries.

The locale catalogs for .a files linked in the executable are also
included, since .a files are not themselves added to the same package.
This makes sure the executable has all the catalogs it needs.

The jam rule was written assuming that NEEDLIBS would only contain .a
files, but that is not the case when compiling Haiku. Libroot for
example is also in NEEDLIBS (this makes sure it is linked by absolute
file path, whereas LINKLIBS would instead use -lroot and may link the
host system one).

Filter out .so files from the NEEDLIBS list when determining which
catalogs to include.

Fixes #19721.

Change-Id: I04604bd37c656f987dd17be8db6edffe88cee651
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10144
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-28 11:57:29 +00:00
X512 457cf2a9bf app_server: remove unreferenced server protocol commands
Change-Id: I48ec8a823bfc8660975cb6647b36f809f31374d3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10164
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-28 11:54:57 +00:00
Jim906 86c44a0176 fat: Fix potential double lock
* Unlock the volume once the directories are locked in dosfs_rename.
  At that point locking the volume has served its purpose.
* If the volume lock is retained throughout dosfs_rename, a double
  lock can occur in dosfs_read_vnode, in the event that one of the
  involved file nodes has not already been constructed prior to the
  rename.
* Fixes #19614.

Change-Id: Ib679a6f3ba3dc8f87fb0c6263eb82d2d06cb6064
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10166
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-12-27 23:39:20 +00:00
Autocomitter ffa620b2b5 Update translations from Pootle 2025-12-27 08:13:05 +00:00