Commit Graph
100 Commits
Author SHA1 Message Date
Augustin Cavalier 140013f27a libroot: Fix open flags in shm_open.
We need O_CLOEXEC here, not FD_CLOEXEC (which is equal to 0x1, which
in openflags is O_WRONLY and thus leads to the conflicts caught by
the previous commit.)

Fixes haikuports/haikuports#7524.
(cherry picked from commit 59e09f7bebcb8fa9d4ed82f501e6516c3d67d65b)

Change-Id: I5751822ac48ae7a865755494da241e4bfd34c45f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5853
Reviewed-by: waddlesplash <[email protected]>
2022-12-07 22:59:58 +00:00
Augustin Cavalier 7cc1c1af2e kernel/vfs: Validate that only one of O_RDWR or O_WRONLY is used, if any.
Otherwise we will have open modes that could have both and lead to
confusion in code that presumes only one will be set.

This catches the cause of some ported software (e.g. Wayland layer)
misbehaving with ramfs mounted in /var/shared_memory: the ramfs does not
properly handle both flags set, and due to another bug, they are for
shm_open'ed files.
(cherry picked from commit 9bc250e28d3bb4293c39a283807b67b6e82dda1d)

Change-Id: I9e98be89b6d4a2da90f74c048b4f762ca9cf8738
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5852
Reviewed-by: waddlesplash <[email protected]>
2022-12-07 22:59:58 +00:00
Augustin Cavalier 05b654c67c ramfs: Fix SMAP violations in DataContainer. 2022-11-30 21:07:23 -05:00
Augustin Cavalier 396e3dfb9c ramfs: Switch from an embedded to a separately allocated small buffer.
This saves 16 bytes in the class vs. the old size, but more importantly
allows us to avoid allocating VMCaches and wasting an entire page for
any attribute larger than 32 bytes; instead, attributes can be up to
1024 bytes before we allocate a full page for them.

Unfortunately small files cannot take advantage of this optimization
right now as the cache is always used for them. I added a TODO about
this.
2022-11-30 20:27:17 -05:00
Augustin Cavalier 4e742d81ab ramfs: Volume->WriteLock but do not unlock in unmount.
As, of course, we are deleting it. This problem was obscured by the
one fixed by the previous commit.
2022-11-30 00:24:36 -05:00
Augustin Cavalier 605ecac1ee ramfs: Correct "reference" (link) counting of Node objects.
* RemoveReference() could delete us immediately, thus we must do
   all important work before invoking it.

 * Add assertions about fRefCount and remove a spurious add.

 * Do not use Link but PublishVNode on the root, as we manually manage
   when this object is published/deleted.

Fixes #18032.
2022-11-30 00:24:24 -05:00
Augustin Cavalier 6a8bb0562e ramfs: Correct usage of Nodes in Entry.
* We do not want to set fNode in the constructor but let the invocation
   of Link() take care of doing so instead.

 * Link/Unlink manipulate linked-lists. Thus it is dangerous to use them
   in tandem on the same Node object. Add a check for this.

 * Minor cleanup.
2022-11-30 00:17:58 -05:00
Augustin Cavalier 80ae26e14b kernel/legacy_drivers: Use new/delete instead of malloc/free. 2022-11-29 22:36:08 -05:00
Augustin Cavalier 8f75eaafd0 VMAnonymousCache: Use new/delete instead of malloc/free. 2022-11-29 22:34:43 -05:00
Augustin Cavalier 549abba75f kernel/low_resource_manager: Use new/delete instead of malloc/free.
No functional change as-is, but this is necessary with some experimental
patches I am testing which add a lot more assertions to DoublyLinkedList,
which thus require it to have constructors/destructors for the Link class.
2022-11-29 22:34:26 -05:00
Augustin Cavalier f6166140a1 build: Define _BOOT_MODE once and for all in ArchitectureRules+BootRules.
Previously it was spread all around the tree, and was not defined
consistently for all boot objects (there were a number of boot modules
which did not define it, but did include headers which checked for it.)

Now, as it is handled in SetupBoot which is invoked for all boot objects,
it will be applied consistently throughout. We can thus drop the manual
additions of it from all Jamfiles.
2022-11-29 20:18:12 -05:00
Augustin Cavalier d48f4fd05f ramfs: Prevent creating files or directories named "." and "..".
Fixes #18031.
2022-11-29 19:08:16 -05:00
Augustin Cavalier 05fdda96b7 ramfs: Acquire write lock before unmounting.
Might help with #18032.
2022-11-29 19:06:56 -05:00
Augustin Cavalier d5c130a3f9 ramfs: Whitespace fixes, no functional change. 2022-11-29 19:05:23 -05:00
Augustin Cavalier 9d679d7f5a debug_server: Restore <algorithm> include to appease GCC2. 2022-11-29 18:04:46 -05:00
Augustin Cavalier f2dd9acf72 nvme_disk: Use a recursive lock instead of a mutex.
It appears on some controllers we can wind up in cases that are
a double-lock, otherwise.

Should fix #18093.
2022-11-29 17:51:31 -05:00
Augustin Cavalier b85db63d2b debug_server: Make use of BControlLook::ComposeIconSize.
Change-Id: Ic5298f9fff3c0d9c4b3733fa99c43781edfabad7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5842
Reviewed-by: waddlesplash <[email protected]>
2022-11-29 21:27:52 +00:00
Augustin Cavalier 5f40b96c35 libroot: Adjust malloc_hoard2 to use max_align_t when available.
Spotted while investigating #18111, but likely does not fix it.
This matches the existing behavior of the runtime_loader heap.
2022-11-29 16:14:13 -05:00
Augustin Cavalier 7255d28854 Tracker: Do not try to change to an invalid or unset icon size.
This can happen if we are already at the largest or smallest size.

Fixes #18066.

Change-Id: Icf68627ea51a054dac806ec0c9258bc80c869483
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5840
Reviewed-by: waddlesplash <[email protected]>
2022-11-28 22:28:59 +00:00
Augustin Cavalier 0843085384 FAT: Limit volume names to 11 characters, not 10.
The rest of the code does a memcpy(..., ..., min(11, strlen(...))
so clearly no NULL terminator is needed and 11 is the real limit.

Should fix #18074.

Change-Id: I6aea166899eab2bab9511ca52981ccc9172b6c17
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5823
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2022-11-19 01:58:42 +00:00
Augustin Cavalier 75fa60f74a HaikuPorts/x86_gcc2: Synchronize, and adjust TIFFTranslator to match. 2022-11-13 01:00:45 -05:00
Augustin Cavalier 96db3233c8 HaikuPorts/x86_64: Synchronize.
* Userguide now provided from HaikuPorts.
 * Python 3.7 -> 3.9.
 * Lots of other version bumps.
2022-11-12 23:46:54 -05:00
Augustin Cavalier 62bd88a64d webpositive: Depends on haiku_datatranslators.
If nothing else for the Media codecs.
2022-11-11 15:52:50 -05:00
Augustin Cavalier fefa5edf96 Move print add-ons to the haiku_datatranslators package.
This allows us to move the Gutenprint dependency there, too.
2022-11-11 15:48:23 -05:00
Augustin Cavalier f156c66999 usb_ecm: Disable tracing by default. 2022-11-11 15:47:41 -05:00
Augustin Cavalier c1353b749c BControlLook: Fix corner spacing calculation.
Fixes #18046. Ideally app_server would just use
this to pick the size of corners...

Change-Id: I2dc243d55321b3fc0fa90faf415d9b04abf9c376
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5780
Reviewed-by: waddlesplash <[email protected]>
2022-11-08 18:09:48 +00:00
Augustin Cavalier 233c0ffd47 docs/develop: Add missed item to the branch steps and combine the last two. 2022-11-08 12:45:03 -05:00
Augustin Cavalier 9fc6234686 Versioning: Add BETA_4 and PRE_BETA_5 version constants.
PRE_BETA_5 is now the default in master.
2022-11-03 20:30:10 -04:00
Augustin Cavalier b966f172df package_infos: "haiku" does not depend on "haiku_datatranslators."
This was initially added so users on the nightlies would not wind up
with no translators installed on updates. It has been long enough
that we can probably remove this in master. (I will re-add it
in the beta4 branch for users upgrading directly from beta3 -> beta4.)
2022-11-03 20:27:18 -04:00
Augustin Cavalier 16081dd2fa libshared: Enable hidden visibility.
This breaks ABI as we forgot to do this originally and a lot of apps
implicitly use symbols from libbe or elsewhere that are imported from
libshared, but we are about to branch beta4, so now is the time to
change this.

Fixes #17256.
2022-11-03 20:24:24 -04:00
Augustin Cavalier 0c6a5835f9 ramfs: Set vnode cache in ramfs_create instead of ramfs_open.
This way it will always be set even on the first creation,
and avoids unnecessary sets. Fixes mmap() of newly created files.
2022-11-03 20:12:50 -04:00
Augustin Cavalier 8672fc2739 InterfaceDefs: Adjust and introduce new spacing/insets constants.
* Nothing in the tree and few things outside it used BIG_{SPACING|INSETS};
   it seems a value of 15px (at default font size) is not that useful.
   There are, however, a lot of things around the tree that use multiples
   of 20px. So, make BIG be that, with the intent to replace those
   with BIG directly.

 * Introduce CORNER_{SPACING|INSETS}. There are a lot of applications
   (e.g. Tracker, Terminal, Debugger etc.) which use scroll bar width/height
   to metrically align controls with the window frame or with some other
   control which contains scroll bars. Rather than have to invoke
   BScrollBar or BControlLook directly to get the value, we should just
   derive the size of scrollbars from a spacing constant instead
   and get rid of the custom function. (For now it is just replaced.)
   This reuses the old values for BIG, as it is equal to 14px at default.

 * Introduce BORDER_{SPACING|INSETS}. This is equal to the typical border
   size of 1px at default font size (or lower) and uses floor() instead of
   ciel() to compute what the size should be (i.e. it will remain 1px
   at 150%/18pt and only go up at 200%/24pt.) This will allow a lot of
   the hardcoded border sizes around the tree and elsewhere to use
   ComposeSpacing() instead.

Change-Id: Iaea3fa30364859888e816a9d61ac156268d70758
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5702
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: nephele <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-11-02 02:23:32 +00:00
Augustin Cavalier 20136c336c docs/develop: Linkify version-change hrev. 2022-10-31 23:29:20 -04:00
Augustin Cavalier 1284e971e2 kernel/vfs: Fix locking behavior in acquire_vnode and add a missing ASSERT.
vnode deletion is prevent either by owning a reference to the node,
or by being at least a reader of the vnodes lock. Thus, in acquire_vnode,
we have to inc_ref_count while still holding the lock in order to prevent
a race.

This function is used so rarely and quite deep inside FS drivers that
I'm  not sure this race would ever have been a problem. Nonetheless
the old code was incorrect.
2022-10-29 13:42:19 -04:00
Augustin Cavalier b4b1561b6a kernel/vfs: Do not wait for removed vnodes to become unbusy.
Most of the time, that is harmless and will just cause a slight delay
before the vnode is removed and we return NULL instead of finding it.
However, in rare circumstances involving renames, we can wind up in
a deadlock with the thread that is trying to remove the vnode, and
would have to wait all the way to the timeout (a full ten seconds!).

The only vnodes not about to disappear from the table that can be both
"removed" and "busy" seem to be special vnodes like pipes, which will
be in an "unpublished" state while they are initially "busy" which we
can check for, in case something wants to wait for them.

The "dirconc" test readily triggered a pathological case of this behavior.
Before this commit, it ran for over 15 minutes before I killed it (and
it was not close to done at that point, either.) After this change,
it completes successfully in around 3 minutes or so on my test VM.

Thanks to [email protected] for pointing out this testcase and its
misbehavior on Haiku!

Change-Id: Id1accf0aaf0724e1aec927a437d3a2ac1596cd98
2022-10-29 13:42:19 -04:00
Augustin Cavalier 6610656e8f Network preferences: Add type specification to appease GCC2. 2022-10-28 12:52:50 -04:00
Augustin Cavalier 75b68ba59d NTFS: Account for null-termination of strings when checking buffer sizes.
May fix #18021.
2022-10-28 12:26:35 -04:00
Augustin Cavalier bfd87e4cc1 posix_spawn: Add POSIX_SPAWN_SETSID to the list of allowed flags. 2022-10-28 11:54:21 -04:00
Augustin Cavalier b94de4c9bd BNetworkDevice: Restore old buffer size.
May help with #18020.
2022-10-27 21:49:58 -04:00
Augustin Cavalier b2c77ad27a Network: Add a BNetworkDevice::GetNetworks() method and use it in the GUI.
The GetNextNetwork() method is really inefficient: it fetches all the
networks at once from the kernel every single time and then winds
up returning only one of them. In parts of the GUI that iterate over
all networks more than once per refresh (sometimes within a loop, even!)
this was often a noticeable lag on the GUI, especially with OpenBSD
drivers which have extra overhead to do struct translation in the
ioctl handler.

Now, we have a way to fetch all scan results at once and just iterate
over them as many times as we need, and this is what NetworkStatus
and Network preferences now do, saving lots of time and effort.
2022-10-25 23:34:42 -04:00
Augustin Cavalier 65c155bede BNetworkAddress: Make the first SetToLinkLevel() take a const pointer.
Technically breaks ABI. However to the best of my knowledge,
nothing uses this method outside of the tree.
2022-10-25 23:34:42 -04:00
Augustin Cavalier 5de85b8f98 docs: Remove the User Guide and Welcome pages.
These were not maintained here, merely mirrored from the Userguide Translator,
and rather infrequently at that. But as they were built with Haiku,
that meant new versions of these packages were built every hrev,
which meant a lot of wasted space and bandwith for updates.

Now there is a separate "userguide" repository which will collect the
files exported from the Translator, and recipes at HaikuPorts to build
the packages, instead, so we can delete these files from this repo.
2022-10-25 18:38:28 -04:00
Augustin Cavalier 8e34bbe754 Remove build logic for creating the userguide and welcome packages.
They are now created from a separate repository and via HaikuPorts.
Since the HaikuPorts packages are not yet in the BuildPackageRepository,
the actual section that adds the packages is commented out (but it only
runs for release-* targets anyway.)

The "welcome", "userguide", and "quicktour" scripts, which are symlinked
from the desktop in release builds, are added to the Haiku package's
"regular" profile instead (they do not actually require the other packages
to be installed but will detect if they are not and launch the online
versions instead.)
2022-10-25 18:38:07 -04:00
Augustin Cavalier 93e536ab5d registrar: Properly clear out icons and resize when text changes.
May help with #18006.
2022-10-24 22:43:27 -04:00
Augustin Cavalier 781db1b43f BAlert: Invalidate layout if the icon is unset. 2022-10-24 22:43:00 -04:00
Augustin Cavalier 56761ebfeb app_server: Granularize whether font settings were loaded in DesktopSettings.
As per axeld's review.

Change-Id: Idd817156d53ebf535f162285bfd08f0566ac3901
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5755
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Axel Dörfler <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-10-23 23:53:34 +00:00
Augustin Cavalier a180a40b63 app_server: Only increase default font sizes if settings were not loaded.
Thanks to axeld for the review.
2022-10-19 19:37:29 -04:00
Augustin Cavalier e1f6b2fbe7 nvme_disk: Add a polling fallback mode.
Before implementing interrupts, all I/O was polled.
Now we only use polling as fallback if interrupts mode
does not work for some reason.

Should fix #17484.
2022-10-19 18:57:58 -04:00
Augustin Cavalier f1c9e12aa3 NTFS: Truncated pathnames should be an error, not a warning.
May help with #17964.
2022-10-19 15:36:52 -04:00
Augustin Cavalier 5bb671cc0e MediaPlayer: Fix a hard-coded font size. 2022-10-19 14:25:29 -04:00
Augustin Cavalier 46a2beb0f8 HaikuDepot: Refactor usage conditions windows.
* Set only a minimum width and then resize to preferred on window.
 * Set a minimum height for the text view itself.
 * Use the new TextView controls instead of the old BTextView.
 * Adjust other size constraints as needed.

Fixes #17998.
2022-10-19 14:25:09 -04:00
Augustin Cavalier 6a4c3457cf HaikuDepot: Adjust some hard-coded font sizes. 2022-10-19 14:23:32 -04:00
Augustin Cavalier 9004d85ec5 app_server: Automatically pick a larger font size on HiDPI screens.
Ideally DesktopSettings would take care of this. However, we cannot
put this logic into its _SetDefaults, because that runs before
we actually set (or confirm) a display mode, and so attempts to fetch
the display mode in that function will fail.

(FontManager initializes even earlier and thus also is an unsuitable
place for this logic.)

At present, it merely uses a 2x larger font size at resolutions >"4K"
and a 1.5x larger font size at resolutions between 1080p and 4K.
Further adjustments can be made as necessary later on.
2022-09-30 20:57:53 -04:00
Augustin Cavalier 0716e5094e app_server: Print specific error when failing to initialize virtual screens. 2022-09-30 20:55:29 -04:00
Augustin Cavalier 872ce8a1b4 app_server: Clean up default font size constants. 2022-09-30 20:53:44 -04:00
Augustin Cavalier cde5ffa802 Tracker: Enable thumbnail generation by default.
Now that all known crashes and other instabilities relating to it
seem to be solved. Fixes #17726.
2022-09-30 05:05:40 -04:00
Augustin Cavalier 27846b5a81 Tracker: Use default menu font instead of plain font for context menus.
This code has been this way since the initial import to OpenTracker,
so why or how it wound up in here is a mystery which may remain unsolved.

Removing it does not seem to cause any problems, so let's do that.
Fixes #16625.
2022-09-30 05:05:33 -04:00
Augustin Cavalier 4198265fa0 build: Optimize for size in the bootloaders, not for speed.
This saves almost 100K in size:

BIOS: 367K -> 271K
EFI: 541K -> 454K

Fixes #17961.
2022-09-30 14:49:24 -04:00
Augustin Cavalier 86615b82db freebsd_network: Remove unneeded functions from if_var.h.
FreeBSD puts these in ifq.h (which we do not have), and no driver we
have actually uses them.

We can re-add the newer versions of them if we ever import a driver
which does.
2022-09-30 14:02:30 -04:00
Augustin Cavalier 5b51027ca5 openbsd_network: Add a real implementation of MCLGETL.
The old alias had a number of shortcomings which made it not match
OpenBSD and thus special-casing had to be used in drivers. The new
version should match OpenBSD's semantics precisely.
2022-09-29 23:05:49 -04:00
Augustin Cavalier 5613c37e66 BootRules: Add -fvisibility=hidden to BootStaticLibrary as well.
Does not seem to affect the size of the bios_ia32 loader,
but takes the x86_64 EFI loader down from 678k -> 554k.
2022-09-29 10:09:00 -04:00
Augustin Cavalier b4a9a0c94f WebPositive: Actually load "zoom text only" setting and default it to false.
All other browsers have it default-off (if there is even a way to
enable it.) This makes it much easier to use Web+ on HiDPI, though
ideally it would automatically set a zoom factor on startup
correspondent to the system font size.
2022-09-28 22:30:51 -04:00
Augustin Cavalier 78ee50a272 InterfaceDefs: Specify INSETS constants in terms of SPACING constants.
They already used the same numeric values. Also reorder for consistency.
No functional change.
2022-09-28 19:47:38 -04:00
Augustin Cavalier 59d0a83200 Remove "font size / 12" calculations from various places.
Use spacing values from BControlLook instead.
2022-09-28 19:36:59 -04:00
Augustin Cavalier 396ffed536 ActivityMonitor: Remove non-Haiku code, use more spacing constants. 2022-09-28 19:33:51 -04:00
Augustin Cavalier caf3ea9044 Remove unnecessary SetExplicitPreferredSize from translators using layouts. 2022-09-28 18:29:33 -04:00
Augustin Cavalier 6191e1b167 BootManager: Use BControlLook::ComposeIconSize().
Fixes #17909.
2022-09-28 17:55:10 -04:00
Augustin Cavalier 2ac78cc4d6 BootManager: Fix minimum window size assignment. 2022-09-28 17:54:54 -04:00
Augustin Cavalier d3da4f984e FileTypes: Refactor icon handling to use BControlLook::ComposeIconSize().
Fixes #17907.
2022-09-28 17:41:27 -04:00
Augustin Cavalier b25b415fb9 FileTypes: Fix file mode. 2022-09-28 17:40:44 -04:00
Augustin Cavalier 00c4575238 Debugger: Use StringWidth()+DefaultLabelSpacing() to determine column widths.
Much less cut off text in the default layout.
2022-09-28 17:13:07 -04:00
Augustin Cavalier 2bfacb1a20 Debugger: Adjust default weights of splitters in the main window.
Much more logical proportioning.
2022-09-28 17:12:33 -04:00
Augustin Cavalier 3c1cf7b294 NTFS: Use the new next_dirent utility function just like BFS. 2022-09-28 16:30:55 -04:00
Augustin Cavalier e285b3071d Introduce a utility function for moving to the next dirent in read_dir.
This takes care of making sure the dirent buffer is properly aligned,
which it needs to be on some platforms (SPARC, ARM, etc.)

Change-Id: I9a6352b1e654c090a200770d51f96511ee024a99
2022-09-28 16:30:00 -04:00
Augustin Cavalier e3197646ea kernel/lib: Fix reference to dirent.c after prior change. 2022-09-27 20:33:14 -04:00
Augustin Cavalier a53cd0082a FirstBootPrompt: Appease GCC2. 2022-09-27 20:14:21 -04:00
Augustin Cavalier ba59081e52 libroot: Implement readdir_r in terms of readdir.
Originally _r mostly avoided the buffers in the DIR* and invoked
_kern_read_dir correctly, however that did not interact properly
with the non-reentrant functions and so this method was reworked
some years ago to check entries_left and copy results out of the buffer.

However, that was done improperly; it just copied the structs,
which as they have a VLA at the end, meant the name entry was not
copied at all if an entry was read out of the buffer.

Since we have to read entries out of the buffer anyway,
just invoke the real readdir() and then memcpy what it returns.
Use an ErrnoMaintainer to prevent errno from being affected.
2022-09-27 20:11:54 -04:00
Augustin Cavalier eafa0e1f49 libroot: Move dirent.c to C++. 2022-09-27 20:11:54 -04:00
Augustin Cavalier a4d27987d2 KernelRules: Add the same -fvisibility=hidden logic in KernelStaticLibrary...
...as was already added to the regular (userland) StaticLibrary some
time ago. Shaves off double-digit percentages of the file size of
e.g. FreeBSD and OpenBSD network drivers.
2022-09-27 19:46:52 -04:00
Augustin Cavalier 3f3b84894b idualwifi & iaxwifi: Merge changes from OpenBSD. 2022-09-27 19:34:43 -04:00
Augustin Cavalier d052479f68 Input preferences: Use BControlLook::ComposeIconSize().
And do some other cleanup while at it.

Fixes #17919.
2022-09-27 18:57:31 -04:00
Augustin Cavalier 6a287ced0b Keymap: Use BControlLook::ComposeIconSize for the conflict view.
Fixes #17911.
2022-09-27 18:38:49 -04:00
Augustin Cavalier 2d9b9e209b IconView: Scale icon_size constants.
Part of #17914. Also affects DataTranslators.
2022-09-27 18:32:45 -04:00
Augustin Cavalier 1272bd2a7f FirstBootPrompt: Scale the button icons.
Part of #17914.
2022-09-27 18:30:59 -04:00
Augustin Cavalier 1b72036bef libroot: Replace scandir, alphasort implementations with musl's.
Notably alphasort actually uses strcoll not strcmp, so this does
affect behavior. scandir should be the same.
2022-09-27 17:28:46 -04:00
Augustin Cavalier d2d46658d7 libroot: Move threads.c to libstdthread folder and rename to match FreeBSD.
It was introduced long ago, now that we have the same folder as FreeBSD
does we should put it in the same place.

Synchronize with FreeBSD while at it.
2022-09-27 17:24:57 -04:00
Augustin Cavalier 86da03857d Appearance: Use a dynamic instead of fixed size for the text preview area.
Fixes #17872.
2022-09-09 17:37:42 -04:00
Augustin Cavalier 66af664352 Drop the unused TTY bus_manager.
Just stubs and not actually used.
We have a TTY module (and driver) which supplant it.
2022-09-09 17:14:12 -04:00
Augustin Cavalier 177c832dab Add missing NULL checks to USB drivers.
Should fix #17276, #17846.
2022-09-09 17:07:09 -04:00
Augustin Cavalier 6021345a33 HaikuControlLook: Correct drawing of border in menu fields.
Fixes #17903.
2022-09-09 16:49:07 -04:00
Augustin Cavalier e8d394bd51 Tracker: Invoke Sync() during the copy operation.
This way when the copy dialog closes, the file will actually
have completed copying to disk.

Fixes #17651.
2022-09-09 16:21:03 -04:00
Augustin Cavalier 4424256ac4 Tracker: Fix hiding/showing the draggable folder icon on navigation.
Fixes the icon disappearing when you navigated to or from the root.
2022-09-09 16:14:09 -04:00
Augustin Cavalier a0b9c84fe0 Tracker: Fix draggable folder icon size computation.
Should fix #17906, but I could not reproduce it, so I was unable
to confirm this fixes the problem.
2022-09-09 16:06:32 -04:00
Augustin Cavalier 95ca8eefea Tracker: Privatize most members of BPoseView.
Greatly reduces what is available to inherited classes.
No functional change intended.
2022-09-09 15:37:29 -04:00
Augustin Cavalier f61067a023 Tracker: Reset title view state after making column list empty.
Fixes #17899.
2022-09-09 15:28:43 -04:00
Augustin Cavalier 9f8c5aabe3 Tracker: Correct size of Name column in Query view.
Fixes #17940.
2022-09-09 14:49:22 -04:00
waddlesplash 242fec2332 Revert "bfs: fix alignment of struct dirent"
This reverts commit 7fe1087ed4.

Reason for revert: could cause underflow

Change-Id: Ib2263f3ab17ae377b0565d020410bae616385cfe
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5577
Reviewed-by: waddlesplash <[email protected]>
2022-09-08 18:08:03 +00:00
Augustin Cavalier aabcd6b399 runtime_loader: Correct destruction of old TLS DSO blocks.
Instead of checking against the current block's DSO generation,
the DSO that the operator[] was invoked on was being checked instead.
This could lead to spurious deletions of TLS data in the case where
the generation count changed between accesses of the TLS variable
(currently that only happens when modules are unloaded.)

May fix #17896, but I did not have a reliable way to reproduce that.

Change-Id: Ie1ee51c1fbbe638918fd5a010047a2b56d481f2b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5604
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2022-09-07 21:56:11 +00:00
Augustin Cavalier 388f8d4c0f TeamMonitor: Appease GCC2. 2022-09-01 00:26:33 -04:00
Augustin Cavalier 054c1b2706 Tracker: Overhaul list column size initialization and storage.
Mostly for HiDPI, but this also cleans up the code in general, too.

 * Apply a scale-factor when loading and serializing column size/offsets
   in ViewState.

 * Do not hard-code offset values for default columns but let
   BPoseView::AddColumn() compute them manually instead.

 * Change BPoseView::AddColumn() to support being called during
   early initialization and utilize it in SetUpDefaultColumns...().

 * When adding deserialized columns to a BPoseView, always realign
   the offsets instead of just doing sanity checking. The rationale here
   is that the first time the TitleView is touched, it will do this
   anyway, and cause "snapping" or drawing glitches if the alignment
   is not as expected.

   If it was actually somehow an intended feature that non-adjacent
   columns can be displayed, changes are needed in TitleView and PoseView
   to properly support this without triggering redraw glitches.

I still saw some very slight redraw glitches (e.g. column contents
shifting by 1px) at higher font sizes; however, Tracker before this
commit had far more of those glitches (this commit seems to resolve
a number of them.)

Tested with 12pt, 18pt, and 20pt font sizes; this seems to work
pretty well. But if you see strange behavior or more redraw glitches
than there were previously, please do file a ticket.
2022-08-31 23:59:00 -04:00