Go to file
PulkoMandy 52050c56f6 BTextView: improve GetHeightForWidth in non editable mode
In non editable mode, BTextView computes a preferred size that just fits
the current text. This did not take into account the insets from
SetInsets, so, when these are used, the resulting view size was too
small.

Additionally, avoid calling _Refresh that has two problems: it needs the
view to already be attached to a window, and it does a lot of things we
don't really need here: recomputing scrollbars, clearing the empty space
below the text to avoid flickering, and so on. We just need to recompute
fTextRect according to the suggested width, to do that, it is enough to
call _RecalculateLineBreaks instead.

Finally, also restore the text rect at the end of the method, since it
is not actually resizing the view, it is very unexpected that it changes
the text rect. This is not perfect, as the line breaks from
_RecalculateLineBreaks are not undone. But, since the next step is
probably to resize the view according to the computed width/height, this
will be sorted out at that time. If this proves to be a problem, we can
add a second call to _RecalculateLineBreaks after restoing the original
text rect, or refactor _RelcalculateLineBreaks so that it can return the
new height without actually changing the lines.

Change-Id: Ie2fa60c1b2314c8a3346d03ab3ff6843aebaf3dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6845
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-19 15:15:00 +00:00
3rdparty 3rdparty: Fix revision check 2023-06-22 10:02:29 -05:00
build arm, arm64, riscv64: use gcc-13.2.0 for bootstrap build 2023-08-19 12:24:18 +00:00
data Update translations from Pootle 2023-08-19 08:17:33 +00:00
docs docs: document the steps to update GCC buildtools 2023-08-12 07:59:29 +01:00
headers unix: Implement SO_RCVBUF 2023-08-13 21:14:51 +00:00
src BTextView: improve GetHeightForWidth in non editable mode 2023-08-19 15:15:00 +00:00
.editorconfig editorconfig: Add new config file around our unique style 2017-09-26 14:22:32 -05:00
.gitignore gitignore: Add Visual Studio Code and IntelliJ IDEA configuration directories 2021-05-31 20:15:44 +00:00
.gitreview gerrit: Add .gitreview config 2018-01-04 00:04:02 -06:00
configure cross_tools: allow specifying a custom sysroot path 2022-06-05 09:08:20 +00:00
Jamfile build-packages: update to the latest packages 2023-08-05 11:52:00 +00:00
Jamrules Revert "Jamrules: Include the UserBuildConfig before processing repositories." 2019-09-15 17:33:36 +02:00
lgtm.yml lgtm.yml: disable Wformat-diag when building gcc 2021-12-14 06:06:41 +00:00
License.md LICENSE: Rename to License.md, and remove all licenses but the MIT. 2016-07-29 17:36:17 -04:00
ReadMe.Compiling.md Readme.Compiling.md: Use new build profiles 2023-01-15 16:02:14 +00:00
ReadMe.md ReadMe: Add Getting Involved link 2021-06-13 21:06:58 +00:00

Haiku

Homepage | Mailing Lists | IRC Channels | Issue Tracker | API docs

Haiku is an open-source operating system that specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn and yet very powerful.

Goals

  • Sensible defaults with minimal configuration required.
  • Clean, clear, concise code.
  • Unified desktop environment.

Trying Haiku

Haiku provides pre-built nightly images and release images. Haiku is compatible with a large variety of hardware, but in case you don't want to "take the plunge" and install Haiku on bare metal, you can install it on a virtual machine (VM) instead. If you've never used a VM before, you can follow one of the "Emulating Haiku" guides.

Compiling Haiku

See ReadMe.Compiling.

Contributing

Haiku is a meritocratic open source project with a large variety of tasks. Even if you can't write code, you can still help! Haiku needs designers, (technical) writers, translators, testers... Get involved and help out!

Contributing code

If you're submitting a patch to us, please make sure you're following the patch submitting guidelines.

If you're having trouble finding something in the source tree, you can use one of our web-based source code browsers:

Contributing documentation

The main piece of documentation that still needs work are the API docs (found in the tree at docs/user). Just find an undocumented class, write documentation for it, and submit a patch.

Contributing translations

See wiki:i18n.

Contributing software ports

See HaikuPorts.

Contributing to our infrastructure

See Infrastructure.