* Fix bug reported by humdinger: when the volume which is
currently shown in the file panel is unmounted, the file
panel's window was closed and even deleted. This is not only
inconvenient but also a use-after-free bug waiting to happen:
an application which keeps the BFilePanel around to show it
again later (as recommended in the BeBook) cannot know that
it has become invalid while it was hidden (the destruction of
the window happens even when it's not shown).
* When receiving an unmount event for the currently shown volume,
we now reset the view to the home directory.
Removing tabs tries to preserve the keyboard focus, but it should also
preserve the absence of it.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
_FindView finds a view that contains a specific BPoint (usually used to
dispatch a mouse event to it). It should ignore hidden views, but not if
they are hidden because of their parent.
In particular, if the whole window is hidden (for example, it is used to
draw onto a BBitmap), this should not be taken into account here.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
BChannelSlider (used in media preferences) used to implement its own
tooltip, which didn't really work (as it could draw only inside the
view), and had hardcoded colors.
Use the native BToolTip which was added to Haiku since then.
All of its prior functionality has been moved into HaikuControlLook.
This paves the way for customizeable control looks, which I intend to implement
in the future as part of decorators.
This is being pushed now because libbe ABI was already broken due to the
Notifications changes, so this is riding that so we only have to do a mass
rebuild once.
Notifications preflet:
-Use sliders instead of text fields for width and timeout
-Remove icon size choice (mini icon looks horrible)
-Consolidate both "Enable" checkboxes into one
-Fix Revert button, remove Apply button, add Defaults button
-All changes to settings saved immediately
-Live example notification message shown when settings changes are made
-Add setting for individual apps to specify whether their notifications
should be muted
-Remove history list (to be implemented later)
BNotification class:
-BNotification records the signature and name of application that
created it
-New functions to get source application signature and name
Notification Server:
-Notification pop up view layout fixes and bold font size fix
-Remove notifications history from AppUsage class (will be saved in
cache instead)
-Remove vector of NotificationView objects which isn't needed
-Get source application info from notification object, not the received
message which is not reliable
Only using the keyboard navigation colour to indicate the current day isn't that
nice in all situations. When using custom system colours, like white on blue
for selected items, it can become barely readable.
Now we
* use bold type face for 'today',
* tint 'today's background (lighten for dark, darken for bright bgColor),
* use B_LIST_SELECTED_BACKGROUND_COLOR and B_LIST_SELECTED_ITEM_TEXT_COLOR
for the selected day,
* keyboard navigation colour only for the frame and text when doing keyboard
navigation
Fixes#13714
* Use BDateFormat::GetDayName() to fetch weekday names.
* Use appropriate symbol width(Mon, Mo, M) depending on the frame width.
* Provide functionality to update day name header in case of locale
preferences change.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
It can give results such as "in 2 hours", "2 days ago", etc.
This is different from BDurationFormat which will just say "1 hour, 2
minute and 36 seconds"
When using BAffineTransform, the update rect is not in the same
coordinate space as the drawing rectangle. Hence, testing them for
intersection does not work, and leads to not drawing buttons which are
in fact visible.
Moreover, the code in BControlLook does not perform only drawing, it is
also expected to update the drawing rect, so other functions may reuse
it later (for example, drawing a button border also computes the
rectangle for the button background). Because of this, it is not
possible to skip the drawing completely, or we could break the layout of
the client.
Fixes#13664
ConstrainClippingRegion was used in BControlLook to limit drawing to
inside the update rect. There are two problems with that:
- It would ignore any other clipping set by the application, as calls to
ConstrainClippingRegion are not cumulative,
- ConstrainClippingRegion ignores transforms on the view, so on a
transformed view, we would not draw anything in most cases.
If constrained clipping is needed here, it should be achieved using
ClipToPicture instead.
A '&' (reference) was missing on a specific line, causing
font information to never be updated. Also removed extra padding
dependent on a constant variable - if it is used, the label will
be render too far down.
Fixes#12981.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
More background work for later performance improvements.
This change generalizes the parsing of meta-data from
JSON streams as similarly structured meta-data is
anticipated to be carried in other payloads. Unit tests
have also been implemented to provide coverage on this
new functionality.
* Sentence casing
* Localize notification texts in the package kit
* Have "Package daemon" as group name and "Warning" as title
* Use ::BPrivate in Bitmap.h to solve an ambiguity (as pointed out
by PulkoMandy). Though not needed for my changes any more, since
a the icon of the notifying app is now shown by default.
Fixes#13590.
On an empty line terminated by \n, we would access the temporary buffer
(stack allocated) with an index of (uint32)-1. On 32bit machine this
would just read the byte before the array on the stack, but on 64bit it
would crash.
Check that the length is at least 1 before trying to access a character
in the array.
Fixes#13625.
Thanks to accessays for proofreading the code:
* stop the extractor processing before deleting the source.
* crash happened in MediaPlayer FilePlaylistItem::_CalculateDuration().
* was a regression introduced in hrev50671.
* fixes#13156.
It is too similar to the long format and does not add much value.
And it creates some problems with using a locale format with another's
string.
Fixes#11343.
* Almost all Enter keystrokes were hijacked without the ability to
reconfigure.
* Let apps use these shortcuts.
Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
Changing the year in Calendar View does not remove the highlighting from
previous highlighted day.
Changing the system date to a date in a different month(different from
the month currently set in calendar view) does not remove the highlighting
from currently highlighted day.
The disabled day number text belonging to the next month (month after
the one currently selected) gets wrongly highlighted while attempting
to highlight the day number text belonging to the current month.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
ticket : #13605
* Issue: In BCalendarView presently, there is no notion of a current date
and the current date is not highlighted. So in the deskbar tray calendar
which uses BCalendarView, we cannot know the current date once we change
the selected day.
* Fix: Make BCalendarView accept pulse messages, check for system date
with every pulse message and update the current date accordingly.
Highlight the current date by rendering its day number text in a
different color.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
ticket : #13592
Commits merged from the semi-official Git mirror of NetBSD
trunk (https://github.com/IIJ-NetBSD/netbsd-src/).
Commit authors/messages in chronological order follow:
---------------------------------------
From: maya <maya@netbsd.org>
Date: Tue, 9 May 2017 02:56:44 +0000
Subject: Avoid shift of negative signed integer. this is UB. NFC.