Dragging the Deskbar with CTRL+ALT+mouse not possible with
Auto-raise and Auto-hide disabled.
The reason this only worked with auto-raise or auto-hide enabled
is because the EventMask on BarView was only set to received mouse
events when those were settings were enabled. Apparently someone
figured this out. So, to fix this bug I set BarView to always
accept mouse events. Doesn't appear to have any obvious negative
consequences. Auto-hide and auto-raise still work.
I also added a comment in BarWindow::MenusBeginning(). It is
setting the EventMask of BarView to 0 and then back again in
TBarWindow::MenusEnded() to get around a bug in BeOS (according
to the comment anyway). I took out those lines and didn't notice
anything different so I assume that whatever the bug was it is
fixed and now and we can take those lines out permenantly.
Added two new methods to the Locale Kit in order to create a custom time
formats from a format string. One method is outputs into a char* array,
the other into a BString() and you can set the timezone.
These methods should be cleaned up, we only need 2, one to get
the time in a predefined style, the other to get a custom time format.
Also should probably do the same for dates and datetimes. But I'll let
this go for now.
I added myself to the Locale.cpp file. I retained the copyright instead
of assigning it to Haiku, Inc. because the file is under the OpenBeOS
license and I don't know what the concequences of copyright sharing are
for that license, unlike MIT.
These new methods are used to generate custom time formats in Deskbar.
Instead of using a set of Radio Buttons to choose between the predefined
time options I build my own by creating a format string and passing it
to the Locale Kit. The format string is generated from 3 checkboxes,
show seconds, show day of week, and show time zone. You can mix and match
between them choose any that you like. By default they are all off.
There are 3 new deskbar settings associated with these new options:
showSeconds, showDayOfWeek, and showTimeZone. timeFormat has gone away.
The time format string gets cached and updated only when Update() gets called
on the TimeView class.
In order to fit all the options in (there is 1 more than before) I had to
reduce the font size of the clock to 11pt when all options are turned on in
12 hour mode. For those with no imagination it looks like this:
http://imagebin.org/208162
Renamed "Open time preferences..." menuitem to "Time preferences...".
Renamed "Show Time" and "Hide Time" to "Show time" and "Hide time".
Other changes include refactoring the header files a bit. There were a lot
of headers included by header files uneccessarily. For instance BarWindow.h
now only includes <Window.h> and <Deskbar.h>. This change is mainly to
to speed up the compile time since it takes a while right now.
I copy the fBarView pointer from BarWindow in the BarApp constructor and then
use that throughout the file rather than getting the pointer from the window
each time by calling BarView(). BarView() is still available in the header
for other classes though.
I moved some message constants around since it was getting a bit jumbled.
Most of the messages related to settings are in PreferenceWindow.h.
fChangeState is moved to BarView.h since that is where the ChangeState()
function is and BarView.cpp uses that constant.
The time interval and format constants are in TimeView.h.
Make some methods public in their respective classes where it made sense.
The preference window methods to update dependent items are public, that
might get called from BarWindow when a message gets received at some point.
Also made ShowHideTime() and Time() public in StatusView.h. These methods
activate showing and hiding the clock and return the fTime clock object.
No reason they should be private.
I reindented the StatusView.h and PreferenceWindow.h headers to the standard
style. Question here, are the public: protected: and private: lines inside
of classes suppose to get indented 1 tab or not? I've seen both, the style
guide says no indent but 1 indent seems reasonable and looks pretty good.
Style fixes here and there. That's enough for one commit I think.
AMD C1E is a BIOS controlled C3 state. Certain processors families
may cut off TSC and the lapic timer when it is in a deep C state,
including C1E state, thus the cpu can't be waken up and system will hang.
This patch firstly adds the support of idle selection during boot. Then
it implements amdc1e_noarat_idle() routine which checks the MSR which
contains the C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27) before
executing the halt instruction, then clear them once set.
However intel C1E doesn't has such problem. AMD C1E is a BIOS controlled
C3 state. The difference between C1E and C3 is that transition into C1E
is not initiated by the operating system. System will enter C1E state
automatically when both cores enters C1 state. As for intel C1E, it
means "reduce CPU voltage before entering corresponding Cx-state".
This patch may fix#8111, #3999, #7562, #7940 and #8060
Copied from the description of #3999:
>but for some reason I hit the power button instead of the reset one. And
>the boot continued!!
The reason is CPUs are waken up once power button is hit.
Signed-off-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
* make the system catalog a BCatalog instead of a BCatalogAddOn*,
such that using a non-existing system catalog won't crash but
simply return the untranslated string instead
* rename MutableLocaleRoster::GetSystemCatalog() to LoadSystemCatalog()
and adjust it to use BCatalog::SetTo() in order to replace the
data used by the given catalog
* adjust all users of gSystemCatalog accordingly
* use a locker to protect the CatalogAddOn-chain against parallel
access
* rename BCatalog::SetCatalog() to SetTo() and make it a proper
initializing function
* adjust implementation of BLocaleRoster accordingly
* unify pointer style (to type* )
* always use boolean expressions in if
* introduce some spacing for better readability
* make a couple inline methods non-inline
NetworkStatus now tracks the status of each interface separately, and
uses that information to make correct comparisons for notifications.
Previously, it would only send notifications using whatever interface
was last in the enumeration list, and if an earlier interface had a higher
configuration level than that, the notification would incorrectly be sent
as occurring on the last interface. We now send notifications for each
interface separately. The status shown by the deskbar icon remains that
of the most highly configured detected interface. Fixes#8468.
* Rename 3D Rendering to GL Info
* Moved it in the source tree from src/preferences/3drendering/
to src/tests/kits/opengl/glinfo/
* Moved in HaikuImage from SYSTEM_PREFERENCES to SYSTEM_APPS
* Does not show up in DESKBAR_APPLICATIONS like AboutSystem
but can be found in the resulting image in /boot/system/apps/
* Move the gears image to 18px from top matching alert window.
* Set the insets of the views inside the tabview to 5.0 since the
tabView's bevel was drawing over the views and it didn't look
right.
* Convert the InfoView fields to a GridView because the GroupView's
didn't always line up.
* Make the inside tabView columns a little narrower to compensate
for the insets.
* Make the tabView shorter.
* Just some examples
* Trying to identify drivers without using
trademarks, etc.
* Feel free to improve if your icon-o-matic
skills are better then mine :P
Multiply StringWidth("M") * the number of M's needed and then
tweak to get it to fit well at different font sizes. Turns out
it fits the same most of the time. Tested at font size 12pt, 8pt,
and 18pt.There are issues with BStringColumn at 18pt not
adjusting to the font size correctly but this is a different bug.
Add myself to the authors list on InfoView.cpp since I have
updated the file heavily at this point.
Take the InfoView out of the tabView and put it above the tabView
in the OpenGLView. Change the format to a slightly altered version
from what kallisti5 recommended. The width and height of the tabView
are controlled by M's so if you change your font size it will fit
accordingly. Therefore the window dimensions are sane defaults yet
don't really affect the dimensions of the child views. The views
know how to size themselves sanely.
* Change the 3d Rendering Engine from a BMenu to a BPopUpMenu.
* Since we won't always have a client, expose the connected status from the HWInterface to other classes.
Currently only used to simulate DPMS state.
* Cleanup.
* Set the window width default to 845px which is just enough
to fit the controls along the top in the default font size and locale.
* Fix an obvious type in a comment in ChartWindow.cpp
Add glue between the gears view and the rest to make sure that
the rest butts up against GearsView. Update the Preferred
and Max size so that the spacing is appropriate. Make the window
width smaller and allow the views to expand it.
The ColumnListViews are still not set to respect different font
sizes but overall it works better at smaller font sizes.
* Transform Capabilities to show a ColumnListView like Extensions.
* Make the window 250px tall, much shorter than before.
* Refactor both capabilities and extensions views.
* This eliminated the need for ExtensionsList which has been deleted.
* Move the gears image up.
* Take GearsView.cpp out of the Catalog since there are no strings
there and there most likely never will be.
* Add OpenGLWindow.cpp to Catalog the window title counts.
* Update the Jamfile.
* Update copyright adding my name to several files.
* Rename Available column to Available extensions
Once we've found the icon bail out with return. This is functionally
equivalent but is cleaner, decreases the indent level, and doesn't
require an extra variable.
If we can't find the generic 3 boxes icon we are really in trouble.
But, showing garbage is not the right answer. Instead, fill the
icon with transparent pixels. Tested all code paths. Hopefully this
code will never need to be executed.
* Rename kIconFormat to kIconColorSpace
Well this is embarrasing. If the app icon could not be found I wasn't
filling out anything so the bitmap was displaying random garbage.
Instead, if I can't find the icon, fill with the generic 3 boxes icon.
No reason to call GetTrackerIcon because I know that it is an
application and not some other MIME type.
AutoConfigLooper now remembers the last media state it received from the device,
and compares both to see if the active state actually changed. Should help with
quality changes where the link didn't actually drop. May also help on ethernet
if the chipset sends spurious link status change notifications.
* Rename RenderQueue to RingQueue to be more generic
* We will need two Ring Buffer types, one for
host -> gpu (render/cp data) and one gpu -> host (irq)
* Add header guard to ringqueue.h
* Things still may change as I work up to a bigger picture.
Change "Change time..." menu item in Deskbar clock contextual
menu to "Open time preferences..." because you can do a lot more
than just change the current time there.