As the comment already notes, it's possible that we wind up
in the timeout routine despite the timer being cancelled, if
the cancellation was done after execution was in progress.
In either case, do not invoke Send if there is nothing to do,
as invoking Send...(force = true) will generate a duplicate ACK.
Duplicate ACKs will be noticed by the remote end as a sign of
congestion, so we don't want that to happen.
Change-Id: Iac30c140c322ccf0b0477e434459e7674bc24e1a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7283
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
A variety of things marked "not implemented" actually are,
at least partially, but the comment was not adjusted.
Change-Id: I760cca8ef3f601d27c0143f7dc75f5049d02f899
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7282
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Otherwise it's just confusing.
Change-Id: Ic88550c05a957b06917cfc08d1163ffe5b2e0652
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7281
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Not 100% style changes but the functional changes are very minor.
This is to create a clean base on which to make my other changes.
Remove commented out code. Remove LIB_LAYOUT.
Replace calls to _SetDropAnticipationRect with assignment to fDropRect,
make all methods protected. Rename _SetDropAnticipationRect to
InvalidateDropRect and remove _'s from methods.
Some extra NULL checks are included in ShapeListView and it has been
de-indented.
omit .0 where it doesn't matter.
rename r to rect
tab style on classes
use SetHighUIColor/SetLowUIColor where appropriate
Change-Id: Ife514452dc6ea5d5cd75ccba2fd13d46d69bcffc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7214
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Only auto-scroll if button clicked inside view, not if clicked outside
and then dragged in. Save MouseDown() button state to compare against
in MouseMoved().
Don't alter selection on first click of selected item on multi-select
lists. This eats a click on multi-select lists when you click on a
selected item with no modifiers held down to allow for drag and drop.
It will update the selection on the second click (and there-after).
https://www.haiku-os.org/legacy-docs/bebook/BListView.html InitiateDrag()
"... derived classes typically permit users to drag items only if
they're already selected (if wasSelected is true). In other words, it
takes *two* mouse-down events to drag an item—one to select it and one
to begin dragging it." (emphasis mine)
Technically this should only happen on draggable multi-select lists, but
it doesn't hurt (much) on non-draggable multi-select lists and I can't
easily tell if a list view is draggable or not until InitiateDrag() is
called. By then it's too late to eat the click in MouseDown().
BeOS R5 solved this problem by selecting on mouse up insted of down but
we don't want to do this so we'll just have to accept that the first
click in this case doesn't count.
Simplify invalid and disabled item logic. If clicked on invalid
(somehow) don't alter selection, if clicked on disabled deselect all.
Change-Id: I6bf40de85da442ee7acd86ab6d91ff0cac7ab106
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7279
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Better visible "swishy" lines that represent windows on another
workspace.
Deskbar_Window_Switch_Overlay are just the swishy lines.
Moved the windows of Deskbar_Window_Hidden and Deskbar_Window_Visible
to the right, so overlay lines can be simply "appended" in IOM.
Fixes#18727
Change-Id: I08eabd0f2e95a23921caf968ac73abf7758ae7ce
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7280
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This file was imported from glibx and uses __USE_GNU as defined by
glibc(s features.h. Our implementation of features.h is simpler, just
defining _DEFAULT_SOURCE directly and that's what we use in other
headers.
As a result, using GNU extensions to regex.h required defining __USE_GNU
directly in applications (for example in TraX).
Fixes#11818
Change-Id: I11e4cf2e88c330cf58083852c4b33aedb8a3a9ea
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7238
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
We bypass device logic in datalink_send_routed_data() in the case
of RTF_LOCAL, so if we don't update the stats there, they'll never
get updated. Furthermore, there's places packets can be dropped
inside the device reader thread. So, we might as well consolidate
the stats-updating logic and get it out of drivers.
(The only remaining case where drivers need to update stats is when
they drop a packet in receive(), as the stack can't tell when an error
from receive() is due to a dropped packet or not.)
Fixes a potential leak on packet drops in the device reader thread,
and fixes loopback statistics for TCP/UDP/etc.
... but extending vertically above and below the list view.
https://www.haiku-os.org/legacy-docs/bebook/BListView_Overview.html
"BListView provides an autoscroll feature: There's an invisible area
about 25 pixels high both above and below the list view; if the user
clicks inside the list view and then drags into this autoscroll area,
the contents of the list will scroll in the direction of the mouse."
Instead of 25px scroll vertically without limit because scrolling
speeds up as you move the mouse cursor further away.
Change-Id: I52296beb2b0173fc5c909255163e8725e99c2b6c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7244
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
... and others and double check for valid items on MouseMoved().
Bail out if drag item is invalid instead of deselecting.
Make sure that the item is valid before deselecting it.
Fixes#18707#18716
Change-Id: Ic115f713f2aef7dfebafd23bc3107106b9128b8a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7243
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Create TrackerDefaults.h to share default setting values between
TrackerSettings.cpp and SettingsView.cpp instead of duplicating
the default value in both places.
There is now one source of truth if we ever want to change a
setting it won't cause regressions to the Defaults and Revert
button state.
TODO Does not yet include Disk auto-mount settings.
Add HideDotFiles to the defaultable list for Windows settings
and make its default false (was true in some places).
Fix issues with the Defaults button not enabling Enable type-
ahead filtering and Generate image thumbnails as it should.
Move default color constants to TrackerDefaults.h, remove TODO.
Rename kSpaceBarAlpha to kDefaultSpaceBarAlpha matching rest.
Create RGBTOHEX(c) macro to convert rgb_color to a (hex) number
for HexScalarValue to set the default space bar colors.
Saving these old hex values in the commit message:
UsedSpaceColor: 0xc000cb00
FreeSpaceColor: 0xc0ffffff
WarningSpaceColor: 0xc0cb0000
Reorder setting to match display order.
I've gone way over 80 in TrackerSettings and SettingsViews due
to long variable names.
Change-Id: Iafd6dfc5e738562d73967558e1f151fc7fed5866
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7196
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
After this change `POKE_UNMAP_MEMORY` ioctl will became redurant and
an alias for `delete_area()`. Areas will be automatically deleted
on team exit.
Change-Id: I336b49c2281abf064e1bf28d908c7b2c5afd4df0
Largely based on a_brief_introduction_to_our_source_repository_layout.html
from the website, revised and updated. I will delete the one from the
website and put a redirect to here once this is merged.
Change-Id: I06657bbea4c16df7bff1f2357cffd2ec8a63c65a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7236
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Fix _DuplicateKeys() conflict check for Caps Lock to ignore right side.
- Create kUnset constant set to 0 so it's clear what's going on.
- Create kDisabled constant set to -1 for that case.
- Declare loop variables one time out of loop scope, uint => int for -1.
Fix _MarkMenuItem() warnings icon check. We should get a yellow warning
icon if your left and right modifiers don't match (except on Caps Lock).
Create an _UpdateStatus() method that calls the other methods we need.
Reverse the placement of the Revert and Cancel buttons. Cancel goes just
to the left of the OK button and Revert goes all the way left.
Restore _HideShowStatusIcons(), this is used to push the menu fields
over when there is no conflict. _ToggleStatusIcon() convenience method.
The key role is called "Caps Lock" not just Caps. Method and variable
names are fine, but the " Lock" part is important in the label. Also use
"Caps Lock key" instead of just "Caps Lock" for the menu field value.
We use " key" at the end for the other cases to differentiate them from
the role label.
Minor nitpicks:
- Change comment variable name to label. I understand that it says
B_TRANSLATE_COMMENT, but it's a label, the comment is for i18n.
- Fix same method declaration style, and in header.
- Add 2 new lines after pragma instead of 1
Change-Id: I194e69486310a249d0ef2d5d5977ae69954e9a27
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7179
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Multi-select lists may also auto-scroll on drag now as well.
Document ScrollTo(index). Give Scrolling its own section.
Change-Id: I36284a28376a01bafd23ddb30162fc786fb41521
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7213
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
means B_DEVICE_TYPE, B_DEVICE_SUB_TYPE, B_DEVICE_INTERFACE.
_CLS is rare, it means I don't own devices with this attribute.
from the spec: _CLS:
Class Code – supplies OSPM with the PCI-defined class, subclass and programming interface for a device. Optional.
Change-Id: I4f7b7ed66cbe6b4ff4511cb13df2af218350a5d8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7210
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
The launch daemon tests consist of two parts: one unit test and one
set of "libbe_test" executables. These share some sources from the
launch daemon source directory, but use different compiler flags.
Due to the way we generate object files, the .o files for both variants
end up overwriting each other since they are generated in the same
directory.
There is also some confusion on compiler flags, since some flags are
applied globally to the directory and confuse one or the other of the
two targets.
To avoid this, move the test binaries to a subdirectory separate from
the unit tests.
Change-Id: I28058abf7a4d4356bc56ef7a67430a277b979532
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6875
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>
* context->extradata seems to be set to fExtraData or fInputFormat.MetaData().
Both are managed by us, so set context->extradata to NULL before freeing.
* avcodec_close() shouldn't use according to the documentation:
"Use avcodec_free_context() to destroy a codec context (either open or closed).
Opening and closing a codec context multiple times is not supported anymore – use multiple codec contexts instead."
* fix#18713
Change-Id: I820deefcffea52a39fcb7587153d40dc03c85024
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7208
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reduce stamping artifacts when application slowly responds to redraw requests.
This fixes and reintroduces logic previously removed in hrev53711.
Previous logic was incorrect as it didn't take the possibility of multiple
invalidations of different kinds (expose, update request) into account.
Now separate update and expose regions are maintained and only expose region
is cleared immediately.
Change-Id: I0fd98cb1b45ccec285154e8c0d8e3a1400d156d7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6067
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
The folder name "Bookmark bar" should never be translated.
If it is, the folder won't be found, the bookmark bar never shown and
the menu item "Show bookmark bar" always disabled.
Change-Id: I0fb5bc6d4027c7fa957205c1da72c2fabd9e122e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7204
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Create SysInfoDragger class and override its MessageReceived() method
to redraw the target view when draggers are shown or hidden.
Check that fDragger->AreDraggersDrawn() is turned on before drawing
the border in the SysInfoView::Draw() method.
Change-Id: I8de1acafe52319ae0f4ed1d91eec2e9c0ad2cb9f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7191
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
... you have lying around on your Desktop that did not get updated
correctly based on changes that have been made since the replicant
feature was introduced.
Do not archive class members in Archive(). Remove SysInfoView
archive constructor. Recreate replicants fresh. No saving to lists
and restoring.
Maintain bottom right corner whenever replicant is resized by
creating _ResizeBy() and _ResizeTo() methods. Since we're starting
over with replicants, this only happens when the uptime wraps.
Fix box height issues, was a bit too tall.
Change-Id: I464fc09a6f86bc88dc09007c9356d2faac340e77
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7189
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
In hrev55767, a previous patch added the needed code for Haiku to control the display brightness. However, we didn't tell the video card BIOS about it, and so the card could also control the brightness by itself.
This disables BIOS based brightness control and lets Haiku take over cleanly.
Change-Id: Ie0e8f7e653c2d4773c463d21246f2ccc6ec8f441
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7116
Reviewed-by: nephele nephele <nep-git@packageloss.eu>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>