we got in _RebuildAndRedrawAfterWindowChange() does not contain hidden parts.
* This eliminates the updates as seen in the WindowInvalidation test app, as
well as it fixes bug #4257.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32471 a95241bf-73f2-0310-859d-f6bbb57e9c96
an eventual offscreen directwindow and sends the direct window notifications
(not yet, though, since a BDirectWindow on a non-visible workspace would
get the B_DIRECT_START notification and start drawing on a different workspace).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32455 a95241bf-73f2-0310-859d-f6bbb57e9c96
added another time (copy&paste bug). This caused #3282.
* Added optional tracing output to Overlay.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32454 a95241bf-73f2-0310-859d-f6bbb57e9c96
eventually as, right now, we just handle it as normal multiple matches.
- Improved error reporting for CDDB query commands.
This should fix#4103.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32423 a95241bf-73f2-0310-859d-f6bbb57e9c96
B_DIRECT_MODIFY with, for example, B_CLIPPING_MODIFIED. This was ignored,
though. Now we combine this notification with the next ones, so that
on B_DIRECT_START, the client is informed of all the things which have
changed. Chart was relying on receiving the B_CLIPPING_MODIFIED notification
to exclude some stars from being erased, in case the window went offscreen.
Anyway, the net result is that Chart doesn't crash now, and we follow
more closely the original BDirectWindow protocol. Fixed ticket #1939.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32392 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed direct_window_data to DirectWindowData and turned it into a
class.
Encapsulated some functionality inside the DirectWindowData class.
No functional change (yet).
More to come.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32374 a95241bf-73f2-0310-859d-f6bbb57e9c96
constants - they are used in other apps as well, and defining them as
"static const" causes undefined warnings in other source files. This also
fixes the build.
* Changed "interfaces::auto config" to auto_config, as that's more convenient
to use in the settings files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32321 a95241bf-73f2-0310-859d-f6bbb57e9c96
net_server to launch services that work like a daemon theirselves (like sshd).
A service like this is also killed (via SIGTERM) when the netserver stops the
service (with sshd, you have to pass the '-D' option to make this work).
* If a boolean is given without value, it now defaults to true.
* The "launch" argument now gets its arguments properly parsed, and added, too.
* Services::_Update() did accidently set fUpdate on the wrong service, causing
services that were not changed to be stopped.
* More helpful output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32319 a95241bf-73f2-0310-859d-f6bbb57e9c96
spurious off-window drawing of BDirectWindow. At least, it does here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32312 a95241bf-73f2-0310-859d-f6bbb57e9c96
set. This fixes the white background when starting ParticlesII.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32305 a95241bf-73f2-0310-859d-f6bbb57e9c96
icons. Haven't looked into R5 backward compat.
* Minor style fixes, more in the next commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32269 a95241bf-73f2-0310-859d-f6bbb57e9c96
can now easily turn it on again (see #2769).
* Also added OFFSCREEN_BACK_BUFFER define to enable the offscreen back buffer
trick.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32183 a95241bf-73f2-0310-859d-f6bbb57e9c96
setting again. It still allows you to change the mode afterwards, though.
* This fixes bug #3419.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32182 a95241bf-73f2-0310-859d-f6bbb57e9c96
only add a very limited amount of buffers part of the frame buffer, for
example, as that one is usually a very large area.
* This could prevent all sorts of media buffers to be cloned on certain
conditions (and could also cause a MediaPlayer fallback to bitmap mode for
no apparent reason).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32156 a95241bf-73f2-0310-859d-f6bbb57e9c96
already fixes bug #4189, although there is another bug that could cause a
similar effect (working on that next).
* Switched from media_server local TMap to HashMap, although this is probably
equally archaic.
* Also replaced TList with std::set for the team list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32155 a95241bf-73f2-0310-859d-f6bbb57e9c96
instead of allocating them separately, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32153 a95241bf-73f2-0310-859d-f6bbb57e9c96
in the handler, instead of checking if the window is an offscreen one,
check if fDirectWindowData is NULL, and do nothing if it's the case.
When setting a clip region in ServerPicture, also invalidate the clipping.
To do so, I added a public ServerWindoow::UpdateCurrentDrawingRegion()
which just calls the private function. Please review and see if it can
be done better. This fixes the problem with BPicture and the
ConstrainClippingRegion() op (see ticket #1389)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32087 a95241bf-73f2-0310-859d-f6bbb57e9c96
now resized and moved correctly. Moved this functionality to its own method.
Should fix bug #4168.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32062 a95241bf-73f2-0310-859d-f6bbb57e9c96
storage.
* Remove reduntant information from the header (field_count vs. fields_size).
* Remove checksums previously used to validate the message passing by area
mechanism.
* Move variables that are purely used by the instance out of the header and into
the BMessage object.
* Use more sensible types for the different message fields.
* Reduce some field sizes to realistic values.
* Make size_t values into uint32 values so the message format will not change
when later moving to 64 bits.
* Pack the structures used for flat message storage so it doesn't change
because of padding.
* Fix message passing by area. It never worked because the created area was
never actually filled with any data!
* Some more allocation checks with graceful fallbacks (should be all now).
* Some more checks for negative index values (should also be all now).
* Make printing more inline with how the rest of the class works and make some
of the output more consistent.
* Also add the new unsigned types to PrintToStream() output.
* Fix printing of unknown types and invalid BMessages, it would always have
printed only the first entry respectively the same error.
* Added some clarifying comments.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32039 a95241bf-73f2-0310-859d-f6bbb57e9c96
is no model name, the info is still useful (this also affects saving by
monitor).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32032 a95241bf-73f2-0310-859d-f6bbb57e9c96
CL-Amp which is a bit worse than seeing TrackerStatus in the Deskbar. Will
search for a proper solution later.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32026 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented some of AVCodecEncoder. Maybe video encoding already works, but
we don't know until the AVFormatWriter is more than just stubs... but I doubt
it. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32016 a95241bf-73f2-0310-859d-f6bbb57e9c96
window under the mouse was given focus. This makes using FFM with the keyboard
alone very inconvenient to use, which is why now the window that previously
had focus will regain it instead; as soon as you actually move the mouse, the
focus is changed as usual.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32014 a95241bf-73f2-0310-859d-f6bbb57e9c96
to be what happens in BeOS, at least, and fixes bug #4127.
* Hopefully diver will also find any negative consequences of this change :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32012 a95241bf-73f2-0310-859d-f6bbb57e9c96
The AddOnManager in the media_server registers one encoder entry per
successful EncoderPlugin::RegisterNextEncoder(). This gives us a first idea
what media_format_family and input/output media_type is supported. The
mechanism may have to be extended, or the Encoder needs an API to specialize
a format further. In that case, the get_next_encoder() version that takes
optional _acceptedInput/OutputFormat needs to instantiate the plugin and
needs to ask the Encoder. But AFAIK, no app uses it like that anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32005 a95241bf-73f2-0310-859d-f6bbb57e9c96
in PluginManager is reenabled. We use the media_codec_info.id to reference
a specific plugin, while the sub_id will be used to reference individual
Encoders that the plugin supports. No idea if that's how it was intented, but
some comments hint in this direction. I failed to mention this before, but
comments are of course very welcome on any of these commits, as always.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31993 a95241bf-73f2-0310-859d-f6bbb57e9c96
and rows.
* set_workspace_count() now uses the logic formerly found in
WorkspacesView::_GetGrid() to determine the layout.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31958 a95241bf-73f2-0310-859d-f6bbb57e9c96
media_file_format array (it remains with the plugin itself, as with
DecoderPlugins).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31955 a95241bf-73f2-0310-859d-f6bbb57e9c96
a list for known media_file_formats. The internal IDs map to plugins.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31950 a95241bf-73f2-0310-859d-f6bbb57e9c96
at media_file_format.id, I wonder if this could work without having to get an
entry_ref from the server for a WriterPlugin, added TODOs to this effect.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31936 a95241bf-73f2-0310-859d-f6bbb57e9c96
for families. This fixes the bug that when a font family was already loaded, but
some of its styles haven't been loaded yet, the app_server would fail to set
the system fonts to those styles. Fixes bug #4148.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31904 a95241bf-73f2-0310-859d-f6bbb57e9c96
though it still has to be investigated why the font style isn't found.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31901 a95241bf-73f2-0310-859d-f6bbb57e9c96
and use the navigation color for the selected window (when dragging in the
workspaces view.) I hope window->IsFocus() is enough, the DefaultDecorator
seems to have more complex logic.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31895 a95241bf-73f2-0310-859d-f6bbb57e9c96
if it were ever called for an inactive workspace, as our BScreen API in theory
allows you to do (not the BeOS API).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31863 a95241bf-73f2-0310-859d-f6bbb57e9c96
offset of the mouse when resizing/moving windows when other constraints
restricted the resizing or moving.
* Applied patch by Stephen Deken with changes by myself:
- Windows now snap to the screen edges.
- There is a snapping time window of 1.5 secs during which the window still
snaps to the screen edge after it first snapped. Then there is a pause
during which there is no snapping.
Thanks a lot, Stephen, and sorry it took so long, nice patch!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31841 a95241bf-73f2-0310-859d-f6bbb57e9c96
also in the MouseMoved() hook for a timeout. So window moving begins after
either a timeout of half a second, or after having moved the mouse at least
4 pixels.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31834 a95241bf-73f2-0310-859d-f6bbb57e9c96
shortcuts so that the second mouse button sends windows to the back... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31827 a95241bf-73f2-0310-859d-f6bbb57e9c96
when the gradient finished earlier than the area to be filled. This is visible
when drawing only one line of the gradient when it's outside the gradient area
as in ticket #3749. Though I am seriously wondering why it works when drawing
more than one line. Maybe a buffer overflow in the regular case? Will
investigate.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31821 a95241bf-73f2-0310-859d-f6bbb57e9c96
Tracker's OpenHashTable.h which it should eventually replace. We've renamed the
class to BOpenHashTable and changed the interface slightly so that HashTableLink
became superfluous.
Adapted all the code that used it. Since the OpenHashTables no longer clash,
this should fix the GCC4 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31791 a95241bf-73f2-0310-859d-f6bbb57e9c96
files during starting the app_server. Should in theory
reduce disk seeks when booting from CD.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31788 a95241bf-73f2-0310-859d-f6bbb57e9c96
inside the window. These are Command + Alt. In X11, it's just Alt, but that
is already used in various Haiku/BeOS apps.
* Introduced new window flag B_NO_SERVER_SIDE_WINDOW_MODIFIERS to disable the
above.
* Made click to front in FFM mode less strict, you can slightly move the mouse
now and still click windows to front.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31785 a95241bf-73f2-0310-859d-f6bbb57e9c96
Reworked the glyph caching:
* It is now glyph index based (a font file has an internal glyph code to
index mapping, so that for example the same fallback glyph is used for
all unsupported codes).
* We do not truncate to uint16 anymore at various places, but support
the full 32 bit char codes.
* This made it necessary to switch to an OpenHashTable based cache lookup.
* In CharacterMap, you can now see that the second Unicode plane does not
wrap around anymore.
TODO: Remove old entries from the hash table after a while to free up memory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31780 a95241bf-73f2-0310-859d-f6bbb57e9c96
the remaining part with the solid color of the last stop was
filled with red and blue swapped. In the current GUI, it would
only be visible with BTabViews. I am pretty sure there was a
bug report about it (by julun if memory serves), but I cannot
find it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31772 a95241bf-73f2-0310-859d-f6bbb57e9c96
in place of the own rolled implementation. Comment typo fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31757 a95241bf-73f2-0310-859d-f6bbb57e9c96
http://karistouf.free.fr/images/BCR2000_G.jpg
The notes may not fit in with other Haiku icons and could be removed. I kind of
like them though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31598 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Functionality to stop services, start preferences, and show debug console
- Cleanups in signatures
-This line, and those below, will be ignored--
M headers/private/bluetooth/bluetoothserver_p.h
M src/servers/bluetooth/BluetoothServer.h
A src/servers/bluetooth/DeskbarReplicant.cpp
A src/servers/bluetooth/DeskbarReplicant.h
M src/servers/bluetooth/Jamfile
M src/servers/bluetooth/BluetoothServer.cpp
M src/preferences/bluetooth/BluetoothMain.cpp
M src/preferences/bluetooth/Jamfile
M src/preferences/bluetooth/defs.h
M src/preferences/bluetooth/BluetoothWindow.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31508 a95241bf-73f2-0310-859d-f6bbb57e9c96
hopefully it makes sense. It is definitely pushing it size-wise (997 bytes.) It
is based on an item in my house (I even set it up on my desk to draw it in
IOM.) If anyone wants to tweak it, feel free.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31497 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Move code between parent & children classes of the Accessors
- a bit Styling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31446 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Handle Hardware error event
- Add function to retrieve an string from a bluetooth error
- Styling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31376 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Replaced all occurences with the standard macros M_PI, and M_PI_2.
* Some coding style cleanup on the touched files, no other changes besides
adding a missing check for a failed memory allocation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31250 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented a CPU feature detection function in AppServer.cpp.
The results are put into the global variable gAppServerSIMDFlags.
* Implemented an SIMD accelerated version of the bilinear bitmap
scaling code that is the backend of BView::DrawBitmap(...,
uint32 options) used by the MediaPlayer to smoothly upscale
movies when no video overlay is available. The speed up is very
noticable and a Core 2 Duo @ 1.8 GHz can play at 1920x1200 now
without breaking a sweat. There is currently one SIMD version
implemented which uses MMX and plain SSE.
Very cool! Thanks a lot!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31165 a95241bf-73f2-0310-859d-f6bbb57e9c96
back to the system default cursor. For that cursor token, the global cursor
manager returns NULL.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31138 a95241bf-73f2-0310-859d-f6bbb57e9c96
window of the view into the application thread. This solves the
race condition with asynchronous SetViewCursor and deleting the
cursor immediately afterwards for real.
* The ServerApp now requires a reference to the current cursor,
just in case...
* Added TODOs for caching the BView token, it's currently resolved
for every single BView call that talks to the server... not good!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31133 a95241bf-73f2-0310-859d-f6bbb57e9c96
reference counting is maintained correctly in the app_server. While reviewing
this code, I have my doubts that my previous solution for handling pending
SetViewCursor() calls is always working as it is intended.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31131 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Add debug more information in H2 driver and Command Status event
- Change name of port for posting events(former was too long)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31036 a95241bf-73f2-0310-859d-f6bbb57e9c96
is considered dirty and only what we are really able to copy (which excludes all
possible dirty regions) is removed from that again. This is simpler and less
error prone than to remove more than we may copy and then add the old dirty
regions back. Fixes a few region copy related redraw issues most visible in case
of scrolling like non-updated parts when scrolling in Tracker or Terminal as in
bug #3803.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30840 a95241bf-73f2-0310-859d-f6bbb57e9c96
now check for the complete path instead of just the prefix. This fixes bug
#3862.
* Made TRoster.h self contained.
* Style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30788 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Added the server to Bootscript.
This closes ticket #3446.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30781 a95241bf-73f2-0310-859d-f6bbb57e9c96
they only cannot be launched anymore once you acknowledge that request.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30744 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Added it to the image.
- Anyone wants to come up with an icon for it? :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30736 a95241bf-73f2-0310-859d-f6bbb57e9c96
for the third time. :P
- Implement CDDBServer class.
- Include relevant CDDB commands.
- Initial processing of CDDB data. Change device name.
This is close to be complete but I hit some cdda-fs bugs that need to be fixed
before I will finish this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30703 a95241bf-73f2-0310-859d-f6bbb57e9c96
* FontManager::GetFamily() removed second call to _FindFamily() with no
action in between -- why would it suddenly work the second time?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30591 a95241bf-73f2-0310-859d-f6bbb57e9c96
since Korli's change in r30440.
* 80 character per line limit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30579 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Fix some new some std::nothrow on critical allocations among kit and server
- Some styling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30353 a95241bf-73f2-0310-859d-f6bbb57e9c96
* When a BApplication is created, the interface kit globals for this team
are initialized, including be_plain_font, be_bold_font and be_fixed_font.
The plain font specifically is assumed the default font for all BViews.
A BView is not required to every set the font, it will then just be the
plain font, because the app_server already assigned it when the view is
created. Here is where the problem starts. When the system fonts change,
they change on the app_server and are picked up by new applications. Old
applications will run with the old fonts, because the values remain the
same and are stored in the already initialized be_*_font globals. So this
was never a problem. What was a problem is that the app_server would use
the current plain font for applications which were already initialized
before the font was changed, so the values in their be_plain_font would not
match the values in the server side font used when creating new views.
* This patch already prepares for the situation in which client applications
want to update their be_*_font globals. This needs to be a manual act of
the client applications, otherwise we would break existing apps. Maybe we
could automate this for BWindows with the B_AUTO_UPDATE_SIZE_LIMITS flag
and any child views with B_SUPPORTS_LAYOUT.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30282 a95241bf-73f2-0310-859d-f6bbb57e9c96
from DesktopSettings.
It allows you to change the tab color (focused and non focused)
for new windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30279 a95241bf-73f2-0310-859d-f6bbb57e9c96
screen height trick for using double buffering with an offscreen half of the
frame buffer. Whenever I run app_server without this patch, it frequently
locks up in weird ways. Additionally, app_server uses less CPU for many graphics
operations, notably the ones that require any blending, ie reading frame buffer.
This should be even more noticable for slow computers. The only draw back is that
slow computers may suffer a bit when just dragging a window, since that is
now performed on the CPU. However, I have high doubts that the benefits don't
outweight the drawbacks, and the feedback I have received indicates that as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30278 a95241bf-73f2-0310-859d-f6bbb57e9c96
debug context now. That's all it needs.
* Added the option "-a" to the profile command line tool. It triggers profiling
of the whole system. There are still some issues, particularly image related
ones.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30129 a95241bf-73f2-0310-859d-f6bbb57e9c96
headers/private/shared is newer, though with small interface changes.
* Removed the unnecessary Debug.h include in
headers/private/shared/ObjectList.h.
* Adjusted sources using these headers, mostly by adding missing includes.
* Lots of automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30123 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Changed some members to be part of the NotificationManager instead of
allocated objects.
* Use BAutolock where appropriate.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30077 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed a problem when scrolling. Basically, the region that could be copied
should be removed from the pending dirty region. Before a region is copied,
the dirty regions are removed from it. So the region at the target offset
can always be considered clean. This fixes the problem in Tracker when
enlarging windows that are already scrolled to the right or bottom. This then
triggers the Tracker window to scroll the pose view in such a way that the
bottom/right stays fixed, but would trigger this exact situation: The bottom
is already pending dirty, but then the clean contents are copied on top of it.
Fixes ticket #1849 and perhaps also #2975.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30068 a95241bf-73f2-0310-859d-f6bbb57e9c96
from the link. My benchmark measuring is inconclusive, the numbers are sometimes
very different. At first sight, it looks like string drawing can be up to
double as fast with this change, but sometimes, the numbers are about the same.
Hm.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29965 a95241bf-73f2-0310-859d-f6bbb57e9c96
the protocoll less prone to errors, reduces possible points of failure and
most importantly, reduces the number of function calls to the link API.
I only know the numbers for StrokeLine(), which I tested via the Benchmark
test app. With this change, drawing random colored and positioned lines
actually doubled in speed. On the BView side, the calls to
ServerLink::Attach() only halfed, while on the app_server side, the number
of calls to ServerLink::Read() is now 1/4th. It will also be worth
investigating why the link stuff is so slow at all. I also optimized
BView::DrawString() a lot in this change, but I don't have any numbers
yet. Some other commands which used multiple Attach()/Read() calls were
also optimized, at least the most important ones. Begin/EndLineArray() was
also pretty bad on the app_server side.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29937 a95241bf-73f2-0310-859d-f6bbb57e9c96
- fixed transparent pixels in the icon. This could make use of an HVIF one :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29927 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
update them yet, as we'll probably do so anyway at some point. Also, I think
we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29876 a95241bf-73f2-0310-859d-f6bbb57e9c96
painting the background. The user may have set that on purpose. For regular
views, it doesn't really make sense to use the user clipping for painting the
background, since there is no way these parts could ever be painted at all.
In Draw() there will be a new view state on the stack, so the client has no
way to unset the clipping. On the other hand, there may be useful cases where
the user applied a clipping, and wants itself not drawing outside of it, but
does want the background painted. (For example BTextView::SetTextRect() may
use this in the future.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29790 a95241bf-73f2-0310-859d-f6bbb57e9c96
cheaper by preventing to rebuild the clipping on the app_server side.
I think this was commented out, because user clipping was broken until
some point and I forgot to reenable it after I fixed it. At least I cannot
spot any regressions when running with this patch now would I expect to
see regressions, since DrawStates do not mess with the screen clipping,
unless they get a clipping region assigned when the (user) clipping changes
during the state's life time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29773 a95241bf-73f2-0310-859d-f6bbb57e9c96
trigger a recalculation of the view clipping region (it will now include
children).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29755 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Add support for reading the size of internals buffers of the bt chips
- Add support for Resetting the Device
- Add broadcom vendor command fro writting the bdaddr
- clean up the debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29669 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Implement mechanism GetProperty to retrieve detailed information about the LocalDevice
- Generic BluetoothDevice interface changed and adapted
- Implement ReadLocalVersion to be aware of the bluetooth specification supported by our localdevice
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29639 a95241bf-73f2-0310-859d-f6bbb57e9c96
trying to switch the workspace. Not sure why it didn't behave previously,
but it seems to work fine now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29514 a95241bf-73f2-0310-859d-f6bbb57e9c96
late, since it's great! I am not sure if he meant it for the add-on server,
or as default media_addon icon. But I think it's great for the add-on server!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29502 a95241bf-73f2-0310-859d-f6bbb57e9c96
(the backend of scrolling and BView::CopyBits()). Seems to fix
the dirty entries when opening Tracker windows, and another
problem I've seen when scrolling too fast in Beam.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29495 a95241bf-73f2-0310-859d-f6bbb57e9c96
app_server generated it.
For now used by screen_blanker, in my next commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29492 a95241bf-73f2-0310-859d-f6bbb57e9c96
pixels than can possibly be visible. Clients may pass very large
view rects to layout a zoomed in bitmap. This doesn't only speed things
up, but also avoids a stack overflow in the app_server, as reported in #3166.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29397 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Round the mouse coordinate to be compatible with BeOS behavior. I know that
in WonderBrush, I had to extract the fractional coords using the be:tablet_x
and y fields. This may actually be a better fix for #1527, now that we know
what caused it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29317 a95241bf-73f2-0310-859d-f6bbb57e9c96
this with a reasonable drawing mode. Otherwise the current
graphics state setup may not be what we need.
* Automatic white space cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29309 a95241bf-73f2-0310-859d-f6bbb57e9c96
case, not only when we kill the team, i.e. also when the team just died or we
handed it over to another debugger. We can do this, since it is also safe to
assume that we won't get any further debug messages from the team after a
B_DEBUGGER_MESSAGE_TEAM_DELETED or B_DEBUGGER_MESSAGE_HANDED_OVER. We were
leaking (well, keeping) the team handler in those cases, which was a problem
in the latter one, since we silently ate all debug messages for the team in
case it would be re-attached later. Fixes bug #2942.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29300 a95241bf-73f2-0310-859d-f6bbb57e9c96
cannot be set in the AF_LINK level.
* It now also checks for this flag, so that the fallback configuration won't
overwrite a manually configured interface anymore.
* When an interface is configured, the IFF_CONFIGURING flag is now cleared as
it should.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29230 a95241bf-73f2-0310-859d-f6bbb57e9c96
8.3 times faster than using the AGG pipeline, but about 3 times slower
than drawing a solid color square. It can probably still be improved.
The second version of _MakeGradient() is more powerful than the old one
and should replace it. It handles some corner cases, which the other
one does not.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29220 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed BGradient::color_step to BGradient::ColorStop
as it's called everywhere else. Also renamed BGradient::gradient_type
to just BGradient::Type. Renamed BGradient::Type() to GetType().
* Simplification of method names in Painter.cpp. Some not yet
complete and yet inactive code to accelerate vertical gradients
(bypassing AGG for this special case).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29214 a95241bf-73f2-0310-859d-f6bbb57e9c96
one pixel border windows. This would influence the window
size constraints for no reason and would for example affect
menu windows (one item menus or empty menus would be forced
to be too tall because of this bug).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29212 a95241bf-73f2-0310-859d-f6bbb57e9c96
actually made it through (ie. after filtering).
* This should fix filters that change the current mouse position to work as
expected.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29135 a95241bf-73f2-0310-859d-f6bbb57e9c96
which was also the BeOS behavior IIRC, has annoyed me a bit as an application
developer. It wasn't possible to avoid display artifacts, if for example
scrolling a view which needed to be redrawn at the same time. It sounds
strange, but makes perfect sense for the situation I have here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29101 a95241bf-73f2-0310-859d-f6bbb57e9c96
There was no leak before and r29047 freed the memory twice. Sorry about
that. Already feeling like getting old and there is proof left and
right...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29061 a95241bf-73f2-0310-859d-f6bbb57e9c96
build. I sure hope that this doesn't break the build for anyone else.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28992 a95241bf-73f2-0310-859d-f6bbb57e9c96
simplifies the code in the Switcher, but has the drawback that the window
list is not "static" anymore, ie. the items in the window list of the Deskbar
will now jump around as in BeOS.
* However, EasyMove now works under Haiku as well out of the box, if that is
something we want :)
* Maybe we should instead add another parameter to the window list to make
it sorted or not; sorting the list as it's done now is much simpler and
faster on the server.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28959 a95241bf-73f2-0310-859d-f6bbb57e9c96
into account. I think the shadow bevel on the right is a spoiler
though, and will change that back. But Axel can compare this way...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28956 a95241bf-73f2-0310-859d-f6bbb57e9c96
remove the *Gradient part. In general, there is
a lot of code duplication now, also in Painter. I
will need to find a way to elliminate this again.
Also, all the stroking functions should be gradient
enabled as well.
* Improved the look of the DefaultDecorater, inspired
by the patch from Dennis Washington. I did not adopt
the changes which give backwards compatibility
problems, though, like changing the window border
width or the single border decorator color. But I
reckon these changes are overall even a bit smoother.
* Fixed a long standing decorator bug, where the resize
area of the border was visually different than the
click recognition.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28951 a95241bf-73f2-0310-859d-f6bbb57e9c96
hidden, but at least set it to minimized.
* Also, we shouldn't show minimized windows, but keep them hidden. This prevents
the app_server/BWindow to go out of sync wrt the show level. This also fixes
bug #3258.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28938 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Fixed some styles violations.
- Changed signature to include the executable name.
Preparation for the new code coming.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28935 a95241bf-73f2-0310-859d-f6bbb57e9c96
relative ones. This fixes bugs #2658, and #3213; in BWindow::ScreenChanged()
the window does not yet know that it moved on the new screen (when it already
had a position on that workspace).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28908 a95241bf-73f2-0310-859d-f6bbb57e9c96
did arrive after the change; now it's: leave workspace, change screen,
enter workspace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28907 a95241bf-73f2-0310-859d-f6bbb57e9c96
or moving mode when it was shown again. Added a test app HideAndShow which let
you easily reproduce the faulty behaviour (with a previous version of the
app_server, that is).
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28847 a95241bf-73f2-0310-859d-f6bbb57e9c96
or modal), we need to check if our effort to make it visible (by activating
its subset window) was successful. This fixes bug #3201.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28843 a95241bf-73f2-0310-859d-f6bbb57e9c96
with low resolution devices like the EeePC - small fonts can look pretty bad
when hinting is turned on, and you still have the advantage of hinting for
text editors and the terminal.
* Added a ServerFont::Hinting() method (that currently only evaluates the
global hinting setting).
* Added a TODO comment on why having global settings is not what we aim for.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28837 a95241bf-73f2-0310-859d-f6bbb57e9c96
an interface (I don't remember why I didn't want this earlier, but well).
* ifconfig now has an auto-config option that will trigger DHCP.
* Also, it will now remove the IFF_AUTO_CONFIGURED and IFF_CONFIGURING flags
if an address is specified (any on-going auto-configuration should check for
these and abort if they aren't there anymore).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28831 a95241bf-73f2-0310-859d-f6bbb57e9c96
to inherit from that one (there is still just a single client, though, this
just simplifies having a generic mechanism to register and use auto-config
clients).
* AutoconfigLooper now listens to link changes, and will reconfigure the
interface if a new link is there - this even seems to work in emulation, will
test on real hardware next.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28827 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Implement DeviceClass for easy analisys of discovered devices's type.
- Make harder the intantiation of RemoteDevices.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28809 a95241bf-73f2-0310-859d-f6bbb57e9c96
Adjust Workspace view to correctly scale each workspace based on the
resolution of that workspace. This exposes one or two anomalies in other
places in the app_server code though which I wasn't able to track down.
This fixes ticket #693.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28785 a95241bf-73f2-0310-859d-f6bbb57e9c96
* DrawString() took the fast clipping path for rotated fonts which didn't work
out (visible when moving a window over the rotated texts in DriveSetup).
* Also, made it work correctly when using sheared fonts.
* Fixed typo.
* Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28741 a95241bf-73f2-0310-859d-f6bbb57e9c96
-Make the window resizable. BUT as this is a multitab window when I resize, only the view in the active TAB is resized, as soon as I switch to another TAB the view in the new selected tab has its old size, messing all.
* Can any UI guru explain whats the Best/Elegant way fixing this?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28735 a95241bf-73f2-0310-859d-f6bbb57e9c96
a message.
* The DesktopSettings class is now using that to send the new
AS_SYSTEM_FONT_CHANGED message to all windows.
* The ServerWindow now propagates font changes to its decorator, causing it
to update its drawing. That means changing the bold font in the "Fonts"
preferences application will instantly change all window titles.
* Factored out a _RebuildAndRedrawAfterWindowChange() out of several Desktop
methods, simplifying some code.
* The DefaultDecorator no longer calls _DoLayout() twice (through SetLook()),
but instead calls the new _UpdateFont() method now also called by
FontsChanged(), and SetLook().
* BWindow::GetDecoratorSettings() now also includes "tab frame" BRect with the
exact footprint of the tab, allowing apps to know the size of the tab to
position itself accordingly.
* Automatic white space cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28664 a95241bf-73f2-0310-859d-f6bbb57e9c96
window being the focus window that is a subset of the specified window.
* This is now used to bring the window to front belonging to a floating
or modal window (if on another workspace), ie. Desktop::ActivateWindow()
should now work with modal and floating windows.
* Fixed typo (in Window.cpp).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28649 a95241bf-73f2-0310-859d-f6bbb57e9c96
class/namespace. Renamed the B_GRADIENT_* types to TYPE_* as the context
is already given.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28564 a95241bf-73f2-0310-859d-f6bbb57e9c96
consider the workspaces in the configured count.
* If the window is not on the current workspace after the workspace check,
always move it to the current instead. This lets windows on workspaces
outside of the ones currently configured show up on the current workspace
as if they had the B_NOT_ANCHORED_ON_ACTIVATE flag set.
* This fixes bug #3003.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28549 a95241bf-73f2-0310-859d-f6bbb57e9c96
slightly strange redrawing, including scrolling the offscreen view
that it uses in "flicker free" mode (which is the default). Invalidation
does not work in offscreen windows, since the client thread is not running
and certainly won't redraw anything. But that will leave a non-drawable
region on the app_server side of things. Simply don't invalidate in
this case. From what I have seen, redrawing in NetPositive seems to
work fine now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28538 a95241bf-73f2-0310-859d-f6bbb57e9c96
for most messages, use debug_printf(), cleanup line breaks
* check return code of last link method in a lot more places
* changed some printf() and fprintf() into debug_printf()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28537 a95241bf-73f2-0310-859d-f6bbb57e9c96
on uninitialized accelerant, but that's what AS_GET_DRIVER_PATH is for.
* This should fix#2847.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28534 a95241bf-73f2-0310-859d-f6bbb57e9c96
wrong check to see if the view was currently visible. This fixes the problem
that tool tips would popup for windows that are located on other workspaces.
* Removed commented out code that is no longer needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28498 a95241bf-73f2-0310-859d-f6bbb57e9c96
SetMouseEventMask() from within it's mouse hooks. Among other things,
scroll bars won't stop scrolling in FFM mode now if you accidentally
leave the window with the mouse, something which is very likely.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28481 a95241bf-73f2-0310-859d-f6bbb57e9c96
both double buffering and single buffering, Invalidate() needs to be
virtual and ViewHWInterface needs to decide where to invalidate it's host
window.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28480 a95241bf-73f2-0310-859d-f6bbb57e9c96
device returned B_OK.
* In the InputServer destructor, don't check the fAddOnManager pointer,
but check the success of calling Lock() on it instead, which should
be much safer.
* In StartStopDevices(), really start or stop all published devices for
the given BInputServerDevice, not only the first one found. Simplify
the check whether anything needs to be done.
* Change a bit the return codes of StartStopDevices(). Especially the
version that's supposed to start or stop all devices will still try
to do it for the rest of them.
* Removed no longer needed _FindInputDeviceListItem().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28351 a95241bf-73f2-0310-859d-f6bbb57e9c96
at 0. A single AddPath()+RemovePath() would therefore leave a not
anymore needed path_entry(), while a AddPath()+AddPath()+RemovePath()
would remove/delete the path_entry while it was actually still used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28349 a95241bf-73f2-0310-859d-f6bbb57e9c96
tab width. This fixes the initially wrong tab width for windows where the title
does not fit and previously there would be 10 pixels waste on the right.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28331 a95241bf-73f2-0310-859d-f6bbb57e9c96
device path, but instead pointing to memory owned by some device addon
instance.
* Added TODO in the AddOnManager init code about a possible race condition
which I have not varified yet.
* Check the return code of BList::RemoveItem() before deleting the item...
pure defensive programming.
* For the time being, print a warning into the syslog when a device name is
registered twice.
* When failing to Unflatten() an event, don't continue in the code after
deleting it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28319 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use new(nothrow) to allocate the MethodReplicant.
* fSignature needs to be free()d, not deleted.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28318 a95241bf-73f2-0310-859d-f6bbb57e9c96
weird.
* Set fHandler to NULL in _UnregisterAddOns(), just in case it is called
twice (which it probably never is... but be defensive).
* If a B_NODE_MONITOR message does not contain all the necessary fields,
drop into the debugger when compiling in DEBUG mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28317 a95241bf-73f2-0310-859d-f6bbb57e9c96
feels. This caused floating/modal app and subset windows to not work anymore.
* This fixes bug #2914.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28309 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed unloading the add-on image twice in error case of failing to
add the add-on info to the list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28307 a95241bf-73f2-0310-859d-f6bbb57e9c96
* In this case, SoundRecorder shows a different error message, more informative, confer bug #134
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28303 a95241bf-73f2-0310-859d-f6bbb57e9c96