In a menu, we use the right side both for submenu arrows and shortcuts.
As a result, when an entry has both a shortcut and a submenu, its
shortcut is not aligned with others, and this does not look so nice.
The spacing for the arrow appears only if there is a submenu in any of
the items in the parent menu.
Change-Id: If91fdcdad36abb0141fb05d1f59141f89540c1db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/355
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Ryan Leavengood <[email protected]>
If a new pose is going to be placed below the current view bounds, we
definitely do not need to do any drawing. If it is above or inside the view
bounds we do this special drawing method.
Overall this method of doing updates is complicated and hard to adjust without
introducing drawing artifacts. As noted in the TODO, this should be rethought
from scratch.
But for now in one case of over 8000 files in a single directory this improved
the loading speed from about 8 or 9 seconds to 1. Queries results also load
much faster. I am testing in a VM with a single CPU on a host with an SSD, so
others may see better performance with more CPUs, or less with a spinning hard
drive.
But at least now the drawing won't be the bottleneck.
Should finally fully fix#3011, or at least good enough for close.
Change-Id: I3806ffa7674e404c9db24edb33d6ab4eb2d825f7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1726
Reviewed-by: waddlesplash <[email protected]>
Letting it get deleted statically can cause segfaults since it is needed for
some final quit messages.
This mimic changes Axel made for the DormantNodeManager and
TimeSourceObjectManager.
I also pulled PortPool into its own file and header.
Fixes#15135.
Change-Id: Ie64753e1876d58b52f7cb95536c6be3df2e6d40c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1721
Reviewed-by: waddlesplash <[email protected]>
Without this, the BufferCache keeps a reference to these buffers inside the
media_addon_server until the media_addon_server quits, which is pretty much
never.
Should fix#4954 and #14755, and possibly #13614 and #14047, though I think
they may be something else.
Switched from std::map to our HashMap to get something which works in gcc2 and
gcc8.
Change-Id: I26463899724b9d1520d97fec785e435f536eaf3d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1717
Reviewed-by: waddlesplash <[email protected]>
Normal boots should not be slowed down by old package states.
Should fix#12498.
Later I will fix the package kit to merge old states so they don't build up
indefinitely.
Change-Id: I6830dd4ed65a3a659c0a68590238be0dcefff451
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1703
Reviewed-by: Jessica Hamilton <[email protected]>
Fixes#15230.
The comment pretty much explains it. I think needing this means this code could
be redesigned, but I don't know enough yet to make that fix.
It also feels like this whole job system and Command pattern is overly
complicated when good old functions would be fine, certainly for pkgman. But
maybe this is used more heavily in HaikuDepot.
Without this, even installed packages still get an "Install" button.
Fixes#14821.
This was implemented by adding BPackageRoster::IsPackageActive. I decided to
have this take a location since GetActivePackages also did, but as noted in my
TODO comment, I think this is awkward.
It would also be nice to show the user they have a different version of a
particular package, but that would require some changes to IsPackageActive.
Change-Id: Iab0d35eb6b671a17711b0214b15164d296927e5a
Reviewed-on: https://review.haiku-os.org/c/1694
Reviewed-by: Stephan Aßmus <[email protected]>
I find this handy and in addition it makes the slide show cyclic again,
fixing #10386.
Going the other way might also be useful, but that requires some additions to
the Navigator code first.
Checking errors is important. This properly fixes#10365 and resolves a few
TODOs.
This DirectoryFilter is also used in Expander, though with a lower level
implementation that did not trigger this bug. This feels like it could be
in the the Tracker or shared kit.
Change-Id: Icd2ddc241c1879a7c4235726bf089570ba00dc0a
Reviewed-on: https://review.haiku-os.org/c/1672
Reviewed-by: waddlesplash <[email protected]>
Removing this did not affect scrollbar arrow buttons, but made the
arrows disappear on the Deskbar.
Clearly, BControlLook cannot be changed without extensive testing.
Remove all code which checks for be_control_look being NULL.
Also fix the DrawArrowShape method in be_control_look so the arrow is aligned,
as per the previous commit. In addition the code to offset the arrow when the
scroll button is pressed was unnecessary.
There is still some room for improvement, and I am not happy with the
BControlLook behavior here, as noted in some TODOs.
The arrow symbol on the right and down buttons was off by one pixel.
Because of the resurrected FakeScrollbar in the Appearance preflet I had to
change this code in two places, which makes me unhappy. This needs to be pulled
into BControlLook.
Fixes#9104.
Both are from #8867, created by Justin Stressman. The previous source code icon
was not friendly to those with green color blindness. I also think it was an
ugly green.
Fixes#8867 of course.
Before its name was a lie, since nothing was cached.
Another boolean was added because getting the localized name could fail, and we
don't want to pointlessly try again, so relying on fHasLocalizedName won't work
for that.
Since in my tests this was getting called up to 4 times per application when
opening the Deskbar Application menu, this caching should speed that up a bit,
at least when this file name translation feature is turned on.
Now that we use the actual selected menu item ui_color, this tinting is not
needed. In fact it makes the selected item too dark.
Thanks diver for noticing.
This also matches the client_window_info.show_hide_level field used in Deskbar
and other applications.
While doing this, keep fShowLevel fully in sync between BWindow and app_server,
use one message type for both hiding and showing, and make the decision to show
and hide the window in the app_server.
Lastly make minimize behave as described in the Be Book: hidden windows cannot
be minimized, and minimized windows which get hidden become unminimized.
Implementing the window_info.show_hide_level in terms of this solves the
problem of minimized windows also being considered hidden, when really they are
just hidden in the app_server.
window_info.show_hide_level is still defined backwards with a comment making
that clear.
Also removed sending fShowLevel in the minimize request since it is now
maintained in the app_server.
Fixes#4127.
This avoids selecting those windows for moving and more importantly bringing to
front a minimized window with Ctrl-click, which causes the minimized state to
be out of sync between the app_server and BWindow, causing #8860.
There were two problems with the last commit:
* the list needed to be outside of the top-level loop.
* BList was just broken for sorting translation_format pointers.
I fixed this by moving the loop outside and converting the translation_formats
to translator_info, which has the translator_id, since that is needed to create
the menu item, and would otherwise be unavailable outside the loop.
I tried to get this working with BList, but the sorting was completely broken,
and converting to BObjectList made the code much, much better and worked great.
Screw BList and casting, hurray templated BObjectList.
Really fixes#6782.
This is used by ShowImage and CodyCam to create a list of image formats which a
file can be saved as. Tracker sorts the image MIME types used in the Find
window by name, so this makes these Save As menus match that (minus the icons
which I think are superfluous.)
Fixes#6782.
If the use of BList is no longer recommended, I welcome better suggestions
for sorting which will work in both GCC2 and GCC4. But this works ;)
Should not be a functional change. It is not in the Haiku Coding Guidelines but
I feel like 'if (object != NULL)' is generally preferred to 'if (object)', plus
in this case of be_control_look that is the more common style.
An off-by-one error (> instead of >= really) was causing truncation when it
wasn't needed. But for some reason this only showed up when the main font size
was increased. I may or may not look into that, but this fixes the issue.
Maybe one of the faster bug logged to bug fixed times in Haiku history? ;)
Figured out by Stephan originally and only hacked in WebPositive, I knew
something about WebPositive was different because it did not flicker when
everything else did.
Since we fully draw the menus there is no need to have app_server fill in the
background with the view color. That is what was causing the flickering.
Should fix#484, #532 and #4335. Thanks diver for confirming the patch against
those tickets.
* Delete and q quit the application.
* Shift-Delete and k kill the application.
Used a message filter since I want these handled by the window.
Fixes#8561.
Also:
* Removed DeselectAll() from the class declaration since it was never defined.
* Re-ordered methods in the class definition to match the order in the declaration.
* Added the underscore to _UpdateList() since it is a private method and moved
it to the right place.
This reduces perceived latency. One day when I add a tab close undo stack, this
will be even better. But generally using the middle mouse button is not
accidental.
Based on printf debugging the correct left value is actually -1, not 0, but
instead of hard-coding numbers it makes more sense to use the existing value.
I'm not sure if a -1 left value makes much sense, but overall this seems to
work and does not have the scrolling artifacts.
But overall I think ShowImage needs more layout management. Doing all this
moving and resizing manually is error prone.
Fixes#8648.
* Extract the scrollbar change based on the mouse wheel delta into a protected
method of BView.
* Call that method from BScrollBar's MessageReceived.
With this change it is now a bit easier to scroll horizontally around the
system by putting the mouse cursor over a horizontal scrollbar and using the
wheel.
Fixes#8631.
Before this the height and width of the tab would jump around as the window was
moved. In addition there was an off-by-one error which caused right-aligned
tabs to not be drawn right (as reported in ticket #4615, which this fixes.)
Before this the active window border color was used, resulting in ugly inactive
window tabs if the active and inactive border colors were quite different.
This was not noticed before because the defaults are two very similar grays.
I copied BStringItem::Draw then modified it. I couldn't find a clean way
of doing it otherwise, since the color box drawing needs to occur between the
selection and text drawing, and the text needs to be offset while the selection
shouldn't be.
local time.
Fixes#6743.
I tried to mimic existing message constant naming, but may come back and fix
them all to our coding style. Is there some backwards compatible reason for
some of the constants being what they are?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42990 a95241bf-73f2-0310-859d-f6bbb57e9c96
The various LC_ environment variables (as well as LANG) are set in
/etc/profile, based on the output of this new simple bin command locale.
LANG and LC_CTYPE are set based on the first preferred language, whereas the
formatting variables are all set based on the formatting conventions language.
The list of LC_ variables are from the locale command on Linux.
Based on my testing, at least the date command obeys these variables.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42394 a95241bf-73f2-0310-859d-f6bbb57e9c96
It might be a bit annoying, not sure yet.
Implements #7253.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42311 a95241bf-73f2-0310-859d-f6bbb57e9c96
size to show up correctly in the status bar.
Fixes#7710.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42310 a95241bf-73f2-0310-859d-f6bbb57e9c96
not just any mouse movement. When the mouse reaches the top 15 pixels, show the
toolbar, otherwise hide it.
Implements #7735.
On a related note, the animation for toolbar showing and hiding which Stephan
implemented is really nice. We need more animation in Haiku!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42307 a95241bf-73f2-0310-859d-f6bbb57e9c96
back when showing it again but not using animation.
Fixes#7734.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42306 a95241bf-73f2-0310-859d-f6bbb57e9c96
restarting. So it makes sense to use the label Restart for the button instead
of Quit.
Fixes#7090.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42239 a95241bf-73f2-0310-859d-f6bbb57e9c96
done fast enough the click count can reach 7 pretty easily.
Fixes#7591.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42233 a95241bf-73f2-0310-859d-f6bbb57e9c96
height if needed. This should prevent any text from being cut off (though to be
fair it is possible to resize the window horizontally to see any cut off text.)
Fixes#5882.
+alpha3
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42022 a95241bf-73f2-0310-859d-f6bbb57e9c96
menus since it is no longer needed after r40132/r40142. Thanks diver for the
reminder.
#5809 can finally be closed again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42017 a95241bf-73f2-0310-859d-f6bbb57e9c96
Allow wget to output to files with spaces in the DownloadFile rule.
Fixes#7609.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42015 a95241bf-73f2-0310-859d-f6bbb57e9c96
the date actually changed at midnight or if the date was changed in the Time
preferences and probably other cases.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41959 a95241bf-73f2-0310-859d-f6bbb57e9c96
what this setting represents. Also added a fairly long explanatory tool tip.
Sorry translators! ;)
Fixes#5264.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41957 a95241bf-73f2-0310-859d-f6bbb57e9c96
to the Network time tab and makes the layout use more standard spacing.
Also changed the name of the Synchronize button after a sync to Synchronize again.
Fixes#7642.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41949 a95241bf-73f2-0310-859d-f6bbb57e9c96
merging my fixes to ntp.cpp from the NetworkTime source.
This makes Time use the layout system as well as support updating time through
the network.
I tried very hard to catch and fix any new style violations, though in general
Hamish did quite well.
After some testing this could be put in Alpha3, but I won't mark it as such
yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41930 a95241bf-73f2-0310-859d-f6bbb57e9c96