Commit Graph
68394 Commits
Author SHA1 Message Date
Augustin Cavalier b0570368f3 limits.h: Clean up and fix _POSIX_* values.
These aren't actual limits, but rather the minimum limit
as specified in POSIX (e.g. _POSIX_NAME_MAX is the minimum
allowed value for NAME_MAX).

Add missing values as defined in POSIX-2024, at least for
features we support, and change wrong values to be the ones
specified in POSIX.

No behavioral intended change (nothing should be using these directly.)
2026-01-06 19:57:07 -05:00
Augustin Cavalier d763a3829a semaphore.h: Add SEM_VALUE_MAX.
It's specified in POSIX, and FreeBSD puts it in this file.

Distinguish it from _POSIX_SEM_VALUE_MAX (which is really a
"minimum value this can have" as specified in POSIX.)
2026-01-06 19:40:23 -05:00
Augustin Cavalier ca5c5d531e unistd: Add _POSIX_DEVICE_CONTROL.
We have posix_devctl, so we should declare this now.
2026-01-06 19:38:49 -05:00
Augustin Cavalier 1e4c529aeb search.h: Declare posix_tnode as specified in POSIX-2024.
FreeBSD does the same.
2026-01-06 19:37:53 -05:00
Augustin Cavalier f869860377 kernel: Return B_HAIKU_VERSION for kernel_version & handle it in uname().
We have returned "1" here since this code was originally written
in 2004 (hrev7290). BeOS R5 apparently returns "1000009" for this
value, while the Be Book gives no details about what this value means.

So, return an actually useful value of the Haiku version, and then
in uname() process this to return a string indicating the Haiku
version. This makes "uname" print the actual system version,
not just the hrev.

It appears Linux and other systems give non-integer values in
info->release, so this should be fine.

Fixes #17030.
2026-01-06 19:30:44 -05:00
Augustin Cavalier 6a1ad86129 Debugger: Fix jobs trying to re-add dependencies.
Linked lists are used to manage these, so if we re-add
jobs we'll corrupt the linked lists and cause crashes.

Fixes #19864 and possibly others.
2026-01-06 18:01:24 -05:00
Dancsó Róbert 327215ce38 DriveSetup: add "disk image menu"
Allows to register and unregister disk images, as well as backup a
partition to an image or restore an image to a partition.

Change-Id: I4e377b1d521ceb7a91e1a5c0d1bb3d37b24fcd68
Reviewed-on: https://review.haiku-os.org/c/haiku/+/330
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-06 21:28:27 +00:00
Christof Meerwald 68c1d4b3a8 IPv6: Path MTU Discovery
* Copied and adapted IPv4 error handling code for IPv6 (to handle
  ICMP6_PACKET_TOO_BIG)

Change-Id: Id14cf6221626b5c723fbe77f19aa0d6b9d25f36a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10170
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-01-06 21:25:16 +00:00
Oscar Lesta ed66661307 Use B_DEV_NAME_LENGTH instead of 128, where appropiate.
Kind of a follow up, after 9d432d1b00.

Change-Id: Id8e0c18216ef505a7698044ecd04a69219008a4e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10213
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-01-06 21:24:42 +00:00
Augustin Cavalier 708d8e42c3 ps2: Disable v2.
It isn't working properly; see #19874.

Leave the others enable for testing for now. We can disable them
in the beta6 branch if necessary (if nobody reports that they are
indeed working.)
2026-01-06 16:24:03 -05:00
Kacper Kasper d620b23279 Implement missing methods in PictureBoundingBoxPlayer
* Remove const from gradient in StrokeLineGradient.
  BoundingBoxPlayer needs to apply transform to it.
* Extend LayersTest.
* Use BStackOrHeapArray for polygons.
* Fixes #12937.

Change-Id: If0a4abec0168dbe9afe7ea92bb29017ea8c89c79
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10211
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-01-06 21:22:30 +00:00
PulkoMandy a65ba286ee PoseView: improve drag bitmap computations
Tracker creates a drag bitmap containing the selection being dragged.
There is a size limit if the selection is too large to avoid moving a
huge bitmap around.

There were two problems with the way this was done:

- The smaller rectangle was always centered on the cursor, even if that
  was near the edge of the selection being dragged. In that situation,
  most of the drag bitmap would end up being empty. Instead, move the
  rectangle to align it with the edges of the selection if it goes
  outside them. This makes sure we always use as much of the drag
  rectangle as possible for useful data.
- Moreover, there was a regression on the rendering of the
  "fade" at the edge of the rectangle. This is a transparency gradient
  that should be at the edge only, to indicate that the drag bitmap has
  been truncated, and that more (invisible) things are also being
  dragged. In hrev58665, this transparency gradient was changed to cover
  the entire width and height of the dragged bitmap, instead of just the
  edge. This lead to most of the text being almost invisible in a lot of
  cases. Change the code to use a gradient only near edges again.

Fixes #19429.

Change-Id: I395fda191dc61732e4bdc5287a09882cdc2b5f55
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10177
Reviewed-by: John Scipione <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-01-06 13:29:09 +00:00
Oscar Lesta 95225b150f fs_shell: use FSSH_B_DEV_NAME_LENGTH instead of 128.
Follow up to 9d432d1b00.

Change-Id: Ie7013573a0682058849e84aa939bc38a821f3ae6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10209
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-01-06 13:28:44 +00:00
X512 2a4448e033 PicturePlayer: Use C++ virtual interface instead of C function table
Also use C function table instead of `void*` table function casts.

Improve type safety and readability.

Change-Id: Ie5f544b5c2bb9f2333fe3353462325dbfb4453ec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9656
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-01-04 22:56:43 +00:00
X512 ceaf2dd2d6 app_server: add gradient stroke support
TODO: HTML5 remote desktop client.

Change-Id: Ie2a32c4a498462578476d29a7000ea0b6f86810b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9625
Reviewed-by: waddlesplash <[email protected]>
2026-01-04 22:56:43 +00:00
beaglejoe 3f38072551 Fix platform.h for C compilation
Allow platform.h to be used by POC files

Change-Id: I809749422e12f4c4b2c616ca0994b158f3cd054c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4251
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-04 07:24:21 +00:00
SED4906 64f088f495 BAlert: play user-selected sound
* Alert sounds are separate from notifications

Change-Id: I9e5545084faea354ddd339154c10b54d6479b404
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8477
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-03 13:41:24 +00:00
Autocomitter f081c0202d Update translations from Pootle 2026-01-03 08:12:43 +00:00
Nathan Patrizi 6f8c212378 Kernel: Fix write overlay handling of existing directories
* Write overlay will check if a directory being created already
  exists. This fixes an issue where creating a directory that already
  exists and is empty would remove and recreate it
  instead of returning a directory exists error.
* Check if file exists when creating with O_EXCL and VFS did not catch it.
* Add check to Open() to check and fail correctly if we are opening a
  non-directory with O_DIRECTORY. Fixes error when trying to copy/move a
  file over another (with cp/mv).
* Correctly return file exists when creating a symlink that already
  exists.

Fixes #19640

Change-Id: I82f65d06db0f2ba3cd8facbf7114af60d6987a95
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10172
Reviewed-by: waddlesplash <[email protected]>
2026-01-02 22:47:12 +00:00
Lt-Henry 8323a6694e i2c_hid: some fixes and improvements
* input reports are no longer requested, devices send them when available and we only have to wait for interrupt to come. This is written on Microsoft i2c hid reference document. In fact, as some devices may have more than one input report (ie: trackpad and fallback mouse), we were requesting (and receiving) an input report for each of them. Worse than that, our driver was missassigning reports to handlers.
* fix: i2c report type did not match specification
* implemented send feature report
* The driver sets the device to fallback mode (mouse emulation). This is a short/mid term solution, because right now we can't handle multi-touch trackpads properly. On some laptops this feature is there but ignores request.
* The driver fetches a windows 8 blob (if available). It looks like some devices refuses to work if this blob (I think is a certificate) is not fetched.
* Should we reset the device at Open()?

* Some style fixes
* Added some comments and links where things become ugly
* Some refactor is still missing

Change-Id: Ibb73e0d9dfa7184d35ed8f2adf377c277c53ce18
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8942
Reviewed-by: Adrien Destugues <[email protected]>
2026-01-02 22:42:26 +00:00
nipos 5c1e12f601 Installer: Scale EULA window for HiDPI
Fixes #16182

Change-Id: I05f7394a1276772eb2c1882cfb340389cde8fcb1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9385
Reviewed-by: John Scipione <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
2026-01-02 20:27:33 +00:00
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