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
Instead of forcing a click to open rect this just restarts menu tracking if the
mouse was clicked. It seems to work great and is cleaner than my solution which
is removed in this commit as well.
This still fixes the problem of accidentially selecting menu items but also
maintains the API.
Good job Pete!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40306 a95241bf-73f2-0310-859d-f6bbb57e9c96
This fixes#7022 and is mostly based on the patch attached to that ticket, with
these changes:
- The patch was adding this to the private _TextInput_ class, not BTextView.
- The patch had a Clear menu item too. I removed that due to the different
semantics between Clear in a BTextView and in a TextInput. The former just
clears the selection where the latter clears the whole view.
We could later add a virtual callback for adding menu items to this context
menu which could be used to add Clear with the two semantics in each class
(this is mainly needed for the enabling logic...each class could handle a clear
message in its own way.) This callback could also obviously be used for other
things, like a spell-check menu or whatever an application would want to add.
Since BTextView has 10 free virtual slots it seems reasonable to add.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40305 a95241bf-73f2-0310-859d-f6bbb57e9c96
when the Tracker window is closed. Tested with normal navigation and
slideshows.
Axel's excellent navigation classes code made this pretty easy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40180 a95241bf-73f2-0310-859d-f6bbb57e9c96
by forcing openAnyway and creating a clickToOpen rect if there is not one.
Should fix#7022 and maybe others. Partially based on the patch from #7022 and
Travis Reed's patch from the mailing list discussion in December.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40142 a95241bf-73f2-0310-859d-f6bbb57e9c96
Similar changes should be made in other applications. I may try doing so
with a script (and manual review of course.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40136 a95241bf-73f2-0310-859d-f6bbb57e9c96
If the menu opens right under the mouse cursor, do not select or invoke an item
until the mouse is moved. Since this seems to break normal menu bars, I added
the check for fSuper. As a (bad?) side effect BMenuField menus also need mouse
movement before something is selected. If anything else is broken, let me know.
I'm committing this because it does remove some bad behavior in pop up menus
(unintentionally selecting items.)
We may also want to force the openAnyway behavior as discussed on the mailing
list in December.
In general though the menu handling code really should be redesigned/refactored.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40132 a95241bf-73f2-0310-859d-f6bbb57e9c96