Now, borders that can be resize are not highlight anymore,
and it's no more possible to resize a non-resizable
(vertical/horizontal/all directions) window with the third button + CMD + ALT.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39705 a95241bf-73f2-0310-859d-f6bbb57e9c96
the normal cursor set with SetCursor(). Intended for window management
interactions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39653 a95241bf-73f2-0310-859d-f6bbb57e9c96
discriminate between the different borders and corners, there wasn't much
difference between it and Decorator::Region anymore and we can as well use
the latter.
* Added new state ManageWindowState which is entered when the mouse is over the
window and the window management modifiers are held down. When being in this
state the borders that will be resized when pressing the right mouse button
are highlighted.
* Added State::ExitState() hook for cleanup work.
* _NextState() does now call Desktop::SetMouseEventWindow() for our window when
entering a new state, respectively resets it when going stateless.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39652 a95241bf-73f2-0310-859d-f6bbb57e9c96
corners. Make sure they are added as well.
* GetComponentColors(): Added support for HIGHLIGHT_RESIZE_BORDER. We simply
shift the standard colors towards blue. Improvements welcome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39651 a95241bf-73f2-0310-859d-f6bbb57e9c96
* dhcp_message::NextOption() now set cookie.next to NULL on exit if there is no space left
* dhcp_message::Size() now handle OPTION_OVERLOAD case
* Renamed _ToString() to _AddressToString()
* Any error message send by DHCP server will show up in syslog now
* Reorganize DHCPClient::_PrepareMessage() to make more easy to see which
option is added per message type.
* OPTION_SERVER_ADDRESS was always added to DHCP_REQUEST, which MUST NOT
in renewal and rebinding state according RFC 2131.
* add device name to resolver configuration: WIP for #6915...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39650 a95241bf-73f2-0310-859d-f6bbb57e9c96
changes. Fixes that the buttons were not drawn with the right color when the
S&T tab highlight was active.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39648 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Added ExtendDirtyRegion(), given a decorator region it extends the given
dirty region. Implemented only in DefaultDecorator yet.
- Added [Set]RegionHighlight() which allows to set/get a highlight for a
decorator region. The visual representation of the set highlight value
is up to the derived classes. The only globally defined value is
HIGHLIGHT_RESIZE_BORDER, though it's not implemented anywhere yet.
* DefaultDecorator: Added the highlight for the component as a parameter to
GetComponentColors(). Added a wrapper _GetComponentColors() with the old
interface, fetching the highlight from the base class.
* SATDecorator: Defines and interprets its own highlight value
HIGHLIGHT_STACK_AND_TILE.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39640 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use a separate color array for the buttons, instead of using that for the
tab.
* _DrawBlendedRect(): No longer gets the focus flag, but gets a color array
instead.
* _GetBitmapForButton(): Made non-static and removed the "focus" and "object"
parameters.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39637 a95241bf-73f2-0310-859d-f6bbb57e9c96
default decorator and used it instead of Decorator::Region where appropriate
(GetComponentColors(), _GetBitmapForButton()).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39636 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Introduced a virtual GetComponentColors(), that returns an array with the
current colors for the specified component.
- Removed all rgb_color members. Replaced the ones that were actually
constant by const (or static const) ones and made use of
GetComponentColors() where the non-constant ones were used.
* SATDecorator:
- Turned rgb_color members into constants and added an overriding version
of GetComponentColors().
- HighlightBorders(): Invalidate the tab, too, as we use the border
colors for drawing the outer lines of the tab (was this intented?).
Fixes artifacts when breaking apart titled windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39630 a95241bf-73f2-0310-859d-f6bbb57e9c96
virtual DrawButtons().
* SATDecorator: Override DrawButtons() instead of _DrawTab(), thus saving a
good deal of code duplication.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39627 a95241bf-73f2-0310-859d-f6bbb57e9c96
field. It does that when the modifiers, the pressed buttons, or the click
target changes between the clicks, or when the distance between the click
points is >= four pixels.
* Adjusted the Window::MouseDown() and WindowBehavior::MouseDown() interfaces
and implementation accordingly (we now also pass and return click count and
click targets).
* Removed the no longer need multi-click handling from DefaultWindowBehaviour.
Fixes#6841 and #6867.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39623 a95241bf-73f2-0310-859d-f6bbb57e9c96
checking the mouse button in every case, use separate switches for the
buttons. Makes things easier to read.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39616 a95241bf-73f2-0310-859d-f6bbb57e9c96
or Cmd-Ctrl-right-click anywhere. Introduces the following behavioral changes:
* The send-to-back effect is triggered on mouse-up now. It expires after a
short time of holding the button or moving the mouse, just like the
activation effect on left-click in FFM mode.
* Depending on where the mouse was pressed, moving it will move the closest
border or corner with it, thus resizing the window. The algorithm choosing
the border/corner needs refinement. Currently the window is divided into 8
equally sized sectors corresponding to the borders/corners.
Work in progress...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39615 a95241bf-73f2-0310-859d-f6bbb57e9c96
DefaultWindowBehavior instead. DefaultDecorator uses the more appropriate
Decorator::Region.
* DefaultWindowBehavior::MouseTrackingState: Generalized the fActivateOnMouseUp
handling. It is now named fWindowActionOnMouseUp and the virtual method
MouseUpWindowAction() is called.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39614 a95241bf-73f2-0310-859d-f6bbb57e9c96
last click and reset the click count, if so. Fixes a regression introduced in
r39602 (left-click after right-click was recognized as double-click).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39609 a95241bf-73f2-0310-859d-f6bbb57e9c96
into newly introduced state classes.
* Fixed the right-click-while dragging behavior, I broke in r39602.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39608 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implement OPTION_OVERLOAD support in dhcp_message::NextOption(). Untested.
* Comment out an ASSERT which don't compile in DEBUG mode (and make no sense for me, BTW)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39607 a95241bf-73f2-0310-859d-f6bbb57e9c96
RegionAt() just gets a point and returns which region was hit. This is in
order to move behavioral code to [Default]WindowBehaviour. I'm not happy
with this solution either, but to do it properly one would have to break the
Decorator interface into separate look and feel interfaces and reorganize the
interaction with WindowBehaviour. A task for the so-inclined reader. :-)
* Adjusted the Decorators implementations, but really tested only the default
one.
* DefaultWindowBehaviour:
- Replaced _ActionFor() method by a _RegionFor() which interprets the region
returned by Decorator::RegionAt() and converts it to a "functional" region,
i.e. combines cases we handle the same way.
- MouseDown():
- Handle the click region cases more in detail, disentangling the mouse
button cases. With the following effects:
- The middle mouse button has no effect anymore.
- Left and right mouse buttons no longer share common behavior. A right
click on a decorator button will send the window to the back.
- The window key window management modifier combo does now have precedence,
i.e. Cmd-Ctrl-click on the decorator buttons will have the same effect as
clicking anywhere in the window.
- When modifiers change between the clicks, reset the click count. Prevents
a standard click in the window followed by a Cmd-Ctrl-click from being
recognized as a double-click.
- Mouse*(): Introduced a fMinimizeCheckOnMouseUp which works similar to
fActivateOnMouseUp, just for double-clicks. The decision whether a
double-click minimizes the window is postponed until releasing the mouse
button. After moving the mouse sufficiently far or waiting half a second
without moving the mouse the window will no longer be minimized. Fixes
#6868.
- MouseUp(): Moved the primary mouse button check without the
"decorator != NULL" block. I suppose this fixes issues with the Cmd-Ctrl
actions and decoratorless windows (if those actually exist).
I can't wait to hear what things I've broken. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39602 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Extended app_server_debug command to be able to send it, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39599 a95241bf-73f2-0310-859d-f6bbb57e9c96
This makes the code much cleaner and simpler.
* Completely untested, though (will do that next).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39595 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Add communication part to restore and save S&T groups.
- Fix call of GetDecoratorSettings listener hook.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39534 a95241bf-73f2-0310-859d-f6bbb57e9c96
the syslog/serial output.
* Added app_server_debug command that currently just sends this command to the
specified teams.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39441 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Only use min size constraints now. If there is a clash between a window with a max size and another window with a min size the max size is ignored and the size is enlarged if needed. When removing this window from a S&T group the old size limit is restored.
Same is done for none resizeable windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39432 a95241bf-73f2-0310-859d-f6bbb57e9c96
in Deskbar (registrar is a background application). Fixes ticket
#6809.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39385 a95241bf-73f2-0310-859d-f6bbb57e9c96
and moved it from folder bin to servers.
The print_server uses print_addon_server now to
execute printer driver add-ons.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39357 a95241bf-73f2-0310-859d-f6bbb57e9c96
by the print_server to run a printer driver add-on.
This makes the print_server
1) resistant to add-on crashes
2) and memory leaks in add-ons
3) license of an add-on cannot influence the
license of the print_server since it does not
directly load the add-on anymore; might be
an issue with GPL printer drivers like Gutenprint
Transport add-ons directly loaded by the print_server
should be moved outside the print_server too.
Right now I am not aware that the transport add-ons
in the repository have any of the issues.
The Gutenprint driver has 2 + 3 that was the main
motivation to implement that now.
Disabled for now until the launch issue is resolved.
BRoster does not find the application by its
signature until it is opened in Tracker once.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39346 a95241bf-73f2-0310-859d-f6bbb57e9c96
invocation code from class Printer into new class
PrinterDriverAddOn.
Refactored code a little bit.
* Removed duplicate code from class PrintServerApp
and use methods from class Printer instead.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39319 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Use BAutolock class.
- Write the correct sync time in micro seconds.
- Fix the event dispatching in the worker thread.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39171 a95241bf-73f2-0310-859d-f6bbb57e9c96
which triggers waiting on the retrace semaphore in app_server
just before drawing the bitmap. This potentially removes any
additional delay when doing this client side. Completely untested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39097 a95241bf-73f2-0310-859d-f6bbb57e9c96
recognizes a double click as double click if the action didn't change.
* This fixes bug #6699.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39064 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use layout API in preview printer add-on.
* Use layout API in some dialogs in PDF Writer.
* Removed unused class PrinterSetupWindow from PDF Writer.
* Improved layout in print_server configuration dialog.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38986 a95241bf-73f2-0310-859d-f6bbb57e9c96
passed to the pixel format methods. Don't use a dummy color
for drawing dots. (Untested, but should fix Clockwerk time
line objects drawing)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38955 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Make sure that turning off anti-aliased font rendering
also works when subpixel-anti-aliasing is used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38831 a95241bf-73f2-0310-859d-f6bbb57e9c96
the ServerPicture calls those itself from SetOwner().
Since there are asserts in ServerPicture about fOwner,
it was easiest to fix the code by using *only* SetOwner()
from within ServerApp to add or remove pictures.
* SetOwner() was broken, since it called a method which
potentially removed the last reference and then still
accessed memory of the now free'd ServerPicture instance.
The easiest fix is to just increase the reference count
temporarily.
* SetOwner() wrongly returned false when the new owner was NULL.
* NestPicture() should simply add it's own reference. There
are two places where it is called, and only one of them
added the extra reference. The other one only acquired the
implicit reference that the ServerApp owns, but pictures
that remove nested children remove a reference from them.
This could leave stale pointers around of course.
* Added more asserts about fOwner.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38484 a95241bf-73f2-0310-859d-f6bbb57e9c96
to avoid someone drawing into it at the same time. In a debug
build, this avoids hitting an ASSERT.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38478 a95241bf-73f2-0310-859d-f6bbb57e9c96
message loop more clear, both in the code and also via
comments. I get the occasional drop into the debugger
because MultiLocker says the Readlock has been acquired
twice. I don't see how it is possible from the code and
it could be another bug in the MultiLocker debugging
facilities, but the code should be clearer now anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38477 a95241bf-73f2-0310-859d-f6bbb57e9c96
the same mechanism needs to be applied as for Decoders,
so that user add-ons are always found before system
add-ons.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38360 a95241bf-73f2-0310-859d-f6bbb57e9c96
to return false. This happened when searching decoders in
/boot/common/add-ons/media/plugins, which does not exist on a default image
and thus broke finding *any* decoder, it only worked when you had some in
/boot/home/config/add-ons/media/plugins... sorry and thanks Alex Wilson
for the heads up!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38347 a95241bf-73f2-0310-859d-f6bbb57e9c96
we need to remove its globally registered formats
from the FormatManager.
* When searching decoders for a given format, we need
to search by add-on directory, since the decoder
list will not stay sorted once some have been removed
or added after the initial add-on scan.
These fixes make it finally possible to rebuild media
plugins and have the media_server pick up the changes
without needing a restart.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38338 a95241bf-73f2-0310-859d-f6bbb57e9c96
missing any way to remove previously registered formats.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38337 a95241bf-73f2-0310-859d-f6bbb57e9c96
The fWriterThread and fWriterStackBase were reset in WriteUnlock()
without holding any lock. While running a DEBUG compile of app_server,
I ran repeatedly into an assertion in the mouse event thread, that
it was not the write lock holder anymore when calling WriteUnlock().
My theory (also discussed with Axel, thanks!) is as this: Some random
thread holds the write-lock. The mouse event thread is allowed to run
when that thread releases the write-lock, but the thread is rescheduled
before it resets the write-lock-holder values (B_DO_NOT_RESCHEDULE only
means rescheduling is not forced, but it may happen anyway). Then the
mouse thread runs, acquires the write-lock, sometime later the original
thread continues to run, and completes WriteUnlock() with resetting the
holder values. When the mouse thread continues to run and eventually
calls WriteUnlock(), the holder values do not match anymore. The theory
is further confirmed by the fact, that fWriterThread was always -1 in the
assert and not some random other thread.
As mentioned, only affected DEBUG builds of app_server, in release builds,
another lock protects the holder values.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38331 a95241bf-73f2-0310-859d-f6bbb57e9c96
to BEntry and back to entry_ref. This ommits a check to
BEntry::InitCheck(), but AddOnMonitor should pass us only valid
entry_refs.
* Removed no longer valid TODO.
TODO: There is still some problem with reloading add-ons, once they have
been reloaded, they fail to instantiate properly, as if the entry_ref
is pointing to the wrong node.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38328 a95241bf-73f2-0310-859d-f6bbb57e9c96
It unloads any media_format mappings when an add-on
becomes unavailable, and consequently reloads the
supported formats and similar when the same add-on
becomes available again. Previously it would only
load previously unkown add-ons by node-monitor
events (unkown name). What also works is that user
add-ons shadow/hide system add-ons when installed,
and the system add-on will become effective immediately
when removing the user add-on again. One thing to
note is that certain IDs will not stay consistent.
I am not aware of an application for which it could
be a problem, most should rememeber codecs by name.
In any case, I only tested add-on events a lot, and
not so much the effects of unstable media_file_format
IDs, so it's possible there are regressions, though
only when installing new versions of add-ons, which
previously mostly required a media_server restart
anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38282 a95241bf-73f2-0310-859d-f6bbb57e9c96
* make BDADDR_* macros refer to value types instead of addresses
* adjust all interfaces using bdaddr_t* to use (mostly const) refs instead,
which IMHO makes the interface & code clearer
* that got rid of a couple of const incorrectness casts
* some cleanup along the way
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38265 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Don't acquire the read-lock in WindowForClientLooperPort,
since MultiLocker does not support nested read-locks.
Use an assert instead, however the method does not appear
to be used anywhere at the moment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38224 a95241bf-73f2-0310-859d-f6bbb57e9c96
had several problems: First of all it duplicated the FontCacheEntry
retrieval and locking code. Second it was really slow to do the whole
lookup for every single glyph. Third is used the FontManager without
locking, which could result to app_server crashes, mostly at startup,
while the FontManager thread was scanning the fonts and the glyph
layout was already using it. Forth it dereferenced a FontStyle
pointer without checking it against NULL. And lastly it didn't use
the font size of the original font for the fallback font.
The new algorithm addresses not only these, but also puts the glyphs
which are unsupported by a font and retrieved from the alternative
font, into the FontCacheEntry of the original font, so that the
HasGlyphs() check succeeds the next time around and does not need to
use the fallback algorithm anymore. There is also less manual management
of locking and FontCacheEntry recycling, this is now taking care of by
FontCacheReference objects on the stack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38154 a95241bf-73f2-0310-859d-f6bbb57e9c96
which can do an alternative lookup of the glyphCode to glyphIndex
and who's FontEngine is used to retrieve the GlyphCache object.
The glyph however is inserted into the Cache of the original entry.
* GlyphCache objects are no longer looked up by index, but by charCode,
which should not be a functional change, but allows to lookup glyphs
from the cache for which the underlying FontEngine does not have
a code to index mapping.
* Fixed an operator precedence bug in the signature generation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38153 a95241bf-73f2-0310-859d-f6bbb57e9c96
- First unregister listener reload decorators and then register new listener.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38070 a95241bf-73f2-0310-859d-f6bbb57e9c96
the window. This closes ticket #6429.
* Got rid of useless _Extract*() methods. Also removed the _ActionFor() variant
that only took a message.
* Removed unused "invalidate" variable in MouseUp().
* Coding style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37998 a95241bf-73f2-0310-859d-f6bbb57e9c96
"clicks" field of the mouse message as everywhere else.
* Renamed Decorator::Clicked() to MouseAction().
* Minor style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37996 a95241bf-73f2-0310-859d-f6bbb57e9c96
from ticket #6415: the drawing offset of a BPicture
becomes the new drawing origin.
* This should also close ticket #6008.
* Also the Preview printer does the clipping now correctly
outside the "printable rectangle".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37939 a95241bf-73f2-0310-859d-f6bbb57e9c96
a second click on the right mouse button will raise the window again.
* Desktop::SendWindowBehind() now locks a bit earlier, as some of the things
it did shouln't really be done without holding a lock (depending from where
it was called).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37922 a95241bf-73f2-0310-859d-f6bbb57e9c96
- First reload decorators and then the listeners. (my SAT listener caches the decorator when it is registered so the new one should already be loaded)
- Make the Desktop all window list accessible, help full when a listener is registered and want to iterate over the existing windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37912 a95241bf-73f2-0310-859d-f6bbb57e9c96
* It feels much better, but maybe raising the window should only happen on the
second click instead?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37894 a95241bf-73f2-0310-859d-f6bbb57e9c96
desktop setting, following bug #6420.
* Now, only windows with the flag set have to implement their activate behaviour
itself (as Tracker does), the desktop setting no longer has an influence on
this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37885 a95241bf-73f2-0310-859d-f6bbb57e9c96
(using ConvertToScreenForDrawing()) before drawing a BPicture, both directly
and inside another BPicture. Restore the drawing origin when drawing a nested
BPicture (like we already do when drawing it directly).
Fixes#6008.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37824 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Reload all decorators when the decorator has changed in the DecorManager.
- Update copyrights.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37801 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Add a minimize method to desktop.
- Make _CurrentWindows public.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37800 a95241bf-73f2-0310-859d-f6bbb57e9c96
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
complete, though, InterfaceAddresses need to hold references to their
interface as well).
* There are two known regressions of this commit that I will fix later:
- you cannot remove interfaces anymore
- IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37794 a95241bf-73f2-0310-859d-f6bbb57e9c96
userland code to take this into account (the kernel would just cut off the
name).
* This closes ticket #6280.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37689 a95241bf-73f2-0310-859d-f6bbb57e9c96
* dstcheck : the generated catalog is now 'dstcheck.catkeys' instead of 'en.catkeys', so that it does not conflict with
other localized apps in the bin/ folder.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37617 a95241bf-73f2-0310-859d-f6bbb57e9c96
This has to be taken into account when fixing the other Decorators!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37529 a95241bf-73f2-0310-859d-f6bbb57e9c96
* FontCacheEntry will not use the "empty" glyph from fonts anymore, so squares are not drawn anymore
* GlyphLayoutEngine will try the VL Gothic font, if the requested font doesn't have any glyph fo the requested character. The
caching for the fallback is suboptimal, and the font choice quite limited, but this allows at least japanese text to display
properly on haiku out of the box.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37413 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Remove the old one from the locale librairy, with some cleanup
Known regressions :
* readonlybootprompt will no longer update the locale settings : the
method used messed with internal undocumented things
* external localized apps (webpositive for example) will not run
anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37336 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Added translation comment to paper sizes.
- Localized scripting comments.
- Improved localization of job info.
- Localized parts of about dialog text.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36963 a95241bf-73f2-0310-859d-f6bbb57e9c96
- No more manual memory management.
- Make it clear who keeps or releases ownership of arguments passed.
- Copy icon, arguments and entry_refs.
- Do not expose implementation details (What do the BLists contain?!).
- BRoster takes const BNotification& and bigtime_t timeout.
* BRoster::Notify():
- Proper error handling.
- Fixed documentation.
* Adjusted notify:
- Renamed fOk to fHasGoodArguments.
- The "const char*" members were really "char*" members (self-managed).
- free() is NULL-safe.
- fRefs contains BEntries, so passing void* to delete does no good.
- Adjustments to the changed API.
- Coding style fixes.
* notification_server:
- Adjustment to the new type for timeout.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36952 a95241bf-73f2-0310-859d-f6bbb57e9c96
#1245. There are some TODOs outlined in the ticket, but they will be much
easier to review as individual patches against trunk, versus as a new version
of the huge patch.
I've messed a lot with src/servers/notification/NotificationsView.cpp in order
to resolve a crash I was getting when testing this thing (rewrote line
wrapping). I've also replaced the icons with the one that zuMi did long ago.
Thanks, plfiorini, for working on this code as much as you did!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36949 a95241bf-73f2-0310-859d-f6bbb57e9c96
pressed even if there is nothing to do. This allows the Deskbar to be moved
with the window modifier keys held, finally, see #6029.
* Removed a superfluous (fDecorator != NULL) from the check to choose between
decorator and window modifier action - _ActionFor() can safely be called with
a NULL decorator, and it just made the logic look wrong (even though no harm
was done).
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36935 a95241bf-73f2-0310-859d-f6bbb57e9c96
be applied before pushing a drawing state, otherwise it is not preserved
throughout playing the picture data. I've added the comment and resetting the
drawing origin to the previous value. Fixes ticket #6070, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36933 a95241bf-73f2-0310-859d-f6bbb57e9c96
InterfaceDefs.h and corresponding implementation in the app_server. Thanks a
bunch! Closes ticket #5978.
A note to those using "update-all" with hybrid builds - the alternative GCC
system libs will not be updated this way, and this and Wim's last patch
change the libbe <-> app_server interface. You need to manually update the
respective libbe.so, or do a clean build, otherwise apps for the other GCC will
not start anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36830 a95241bf-73f2-0310-859d-f6bbb57e9c96
the current mouse position and pressed buttons. I've changed the return code
to status_t and added anal error checking, most of the rest of the file is not
doing it, though... :-) Thanks, Wim!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36811 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Don't traverse symlinks. Besides that this is not how the BeOS
implementation behaves it could also lead to undesired recursion in case of
symlinks to directories.
* Only process regular files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36613 a95241bf-73f2-0310-859d-f6bbb57e9c96
* DefaultManager: added a lock around rescan thread start and exit:
this should fix the possible race condition spotted by Ingo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36588 a95241bf-73f2-0310-859d-f6bbb57e9c96
way.
* Use that newly exposed feature of taking the focus window to the new workspace
when using the Ctrl-Alt-Shift-Arrow shortcut.
* This fixes#5675.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36585 a95241bf-73f2-0310-859d-f6bbb57e9c96
* erase the defaults settings file when writing it, previous content still existed at the end of the file.
* don't save an empty defaults settings file when node information is not available, this should mean the add on server is already gone.
* added some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36452 a95241bf-73f2-0310-859d-f6bbb57e9c96
was to expire in a couple of minutes, but not, seems to stay forever.
- Implement a Disconnect button in prefrences&kit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36450 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Handle all events invovled in the authentication
- LinkKey requests -> reply always negative due the lack a a local linkey database
- LinkKey Notification
- Handle Completed number of packets for future control flow
- Allow clients to issue a command without having to expect an event
- Fix: LocalDevice Handler was stopping the search once the opcode expected did not match
- Cleanup debug window
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36446 a95241bf-73f2-0310-859d-f6bbb57e9c96
driver, and that driver is using the raw_key_info structure as well.
* Renamed kb_mouse_driver.h to keyboard_mouse_driver.h.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36267 a95241bf-73f2-0310-859d-f6bbb57e9c96
via exit() (the calling thread will drop into the debugger instead).
* The DebugServer now uses this flag by default.
* Added TODO comment: the default debugger should already be able to set a flag
like this in order to close a race condition between dropping a thread into
the debugger and setting the flag.
* Cleaned up the debug_server sources a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36265 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed superfluous package rules.
* 80 character per line cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36257 a95241bf-73f2-0310-859d-f6bbb57e9c96
added a TODO about using kMaxWorkspaces in ScreenMode.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36242 a95241bf-73f2-0310-859d-f6bbb57e9c96
* When moving a window to another workspace (using the mouse or the keyboard),
the fLastWorkspaceFocus array of the old workspace could still point to that
window.
* This could also lead to a stale pointer and might have caused crashes in
SetFocusWindow(). This should fix#5124, and its duplicates #5294, and #5688.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36165 a95241bf-73f2-0310-859d-f6bbb57e9c96
belongs (with a few changes by myself). Thanks!
* This closes ticket #5636.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36135 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Add handling of local features to know about the role and encryption capabilities
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36024 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Renamed parameter "appName" to "target".
* Replaced parameter "generatedCatalog" by "sourceLanguage" and made it
optional. Default is "en".
* Removed the no longer needed parameter from the DoCatalogs invocations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36016 a95241bf-73f2-0310-859d-f6bbb57e9c96
set to fullscreen (since that code checks for a Screen object, and is null in
that case). So we also call ResizeToFullScreen() in ServerWindow::_Show(),
if needed. Fix ticket #4456.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35959 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Cleaned up some style issues introduced by Hugo a while back.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35957 a95241bf-73f2-0310-859d-f6bbb57e9c96
and clarified the TODO comments. resolv.conf is written again once per
_ParseOptions(), with the DHCP_ACK messages providing the final data.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35954 a95241bf-73f2-0310-859d-f6bbb57e9c96
name servers, but DHCP_ACK didn't (probably unlikely, but who knows...), then
if DCHP_ACK contained the domain, the name server entries in resolv.conf would
be lost. Now DHCPClient maintains whether resolv.conf should be rewritten and
does so once per _Negotiate() session.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35941 a95241bf-73f2-0310-859d-f6bbb57e9c96
trickery.
* Rewrite resolv.conf once per invokation of _ParseOptions() (as before), while
solving the problem that OPTION_DOMAIN_NAME_SERVER and OPTION_DOMAIN_NAME may
appear in arbitrary order.
* Added TODO about how it should be handled eventually. After the changes in
r35938, it should now work as before. The only remaining problem is that if
OPTION_DOMAIN_NAME appears in DHCP_OFFER, but not in DHCP_ACK, the domain
information is lost.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35940 a95241bf-73f2-0310-859d-f6bbb57e9c96
Network settings and setting the domain if received by DHCP.
Thanks a lot, closes#5619.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35938 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Repurposed the FollowLink cursor as CreateLink cursor.
* Created a new FollowLink cursor based on a design by Justin Stressman, thanks!
It compiles and I proof-read the commit, otherwise I didn't test, yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35922 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added BShape::ArcTo() and BShapeIterator::IterateArcTo(), using a previously
unused virtual slot. (Added the symbols for binary compatibility for GCC2
and GCC4.)
* Added operator=(), operator==() and operator!=() to BShape.
* Added BShape::BezierTo() version taking three points, which is sometimes
more convenient.
* Added the four new shape data ops OP_LARGE_ARC_TO_CW, OP_LARGE_ARC_TO_CCW,
OP_SMALL_ARC_TO_CW and OP_SMALL_ARC_TO_CCW. For a single arc, provided the
radius is large enough, there are four possibilities to draw the arc, these
are controlled by the two boolean flags to ArcTo() and mapped to the new
commands accordingly.
* Some style cleanup in Shape.cpp (sorry for mixing it up, but it gets
worse below...)
* Added ShapeTest to src/tests/servers/app.
* Changed the way BShapes are transformed from view to screen space in the
app_server. For arcs, it would be nontrivial to apply a proper transformation,
it's much easier to let AGG take care of it. This affects ServerPicture as
well.
* Wrapped iterating the BShape into try/catch blocks in ShapeIterator. But
I really don't understand the purpose of the class in the first place.
Maybe it can now be dropped, since coordinates don't have to be transformed
in place anymore.
* Refactored copy&paste shape iteration code in Painter. The transformation
to screen space happens there.
* Since RemoteDrawingEngine needed to be adopted anyway, I also updated
it for the new DrawString() with offsets version. But the client still needs
to be adapted.
* Style cleanup in Painter.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35905 a95241bf-73f2-0310-859d-f6bbb57e9c96
of locations, one for each glyph.
* Added a test for the new functionality.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35865 a95241bf-73f2-0310-859d-f6bbb57e9c96
* CopyRegion should not need the HWInterface to be exclusive locked.
* BitmapDrawingInterface does not need to be locked at all, since
it doesn't use a shared HWInterface instance.
* Window and Desktop should lock the HWInterface appropriately
before invoking CopyRegion() on the DrawingEngine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35822 a95241bf-73f2-0310-859d-f6bbb57e9c96
takes such an id.
* Reused the existing mechanism to to have hardcoded tokens for the system
cursors, i.e. removed cursor_which enumeration from ServerProtocol.h and
used BCursorID where cursor_which was previously used.
* Reworked CursorManager.h and CursorSet.h accordingly and removed some methods
that where intended to replace system cursors with client cursors, since
those would break the reference counting and forget to maintain the cursor
list.
* Replaced the cursors in CursorData.h/cpp with the new ones I just designed.
* Removed HaikuSystemCursor.h and HaikuLogo.h from the source, as those are/were
no longer used.
I hope I will not get too much beating for this one... :-) I know the new
default cursor is slightly larger, but I believe the old one was just too small.
Also I noticed that the cursor may be slightly too dark, at least the old one
seems noticeably brighter when compared side by side (the new one has a slight
gradient). That is something I may correct at least. Otherwise I hope nothing
is broken, I've tested in QEMU and so far everything works as intended.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35782 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Add constants for the length of the resize area on a window border and for
the size of the resize knob on document windows.
* Clarify some comments.
* Change instances of thumb to knob in reference to the resize knob. It was
called knob in some places and thumb in others.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35706 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added German translation. Again feel free to improve it.
Updated copyright year in About dialog.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35639 a95241bf-73f2-0310-859d-f6bbb57e9c96
be better, though).
* This might help further with #4709.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35548 a95241bf-73f2-0310-859d-f6bbb57e9c96
are now removed from the maps as soon as the client deletes them. This also
makes the "client reference" mechanism superfluous I introduced earlier.
* ServerApp::SetCurrentCursor() must always call Desktop::SetCursor(), since it
is also called whenever the current application changes. This fixes the cursor
almost never changing.
* Renamed ServerPicture::Usurp()/StepDown() to PushPicture(), and PopPicture().
* Also, they now acquire a reference to the picture in question (ie. the picture
you get from PopPicture() also owns a reference you need to free).
* ServerApp::CreatePicture() may fail, too. This case is now handled in the code
that calls it.
* Previously, the ServerWindow tried to process up to 70 messages in one go.
That obviously caused bug #4709. Now, we have the additional requirement to
not hold the desktop lock for longer than 25 ms. I haven't tested it with
Kaleidoscope yet, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35472 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Remove no longer necessary support functions.
* The new version uses a single BString as input/output parameter and only
modifies that one by removing non-fitting chars and inserting the ellipsis
where appropriate, so avoids copying around bytes/chars/strings in a few
places. It uses the new Chars functions of BString so also no need for manual
multibyte handling.
* Adjusted the BFont and ServerFont usage of truncate_string() which are both
simplified by using the single BString. It avoids a lot of temprary
allocations and string copying. The char * version of BFont
GetTruncatedStrings() now uses the BString version and not the other way
around anymore which requires us to allocate temporary BString objects, it's
not worse than before though.
* This fixes a bunch of problems with the previous functions like always
prepending the ellipsis for B_TRUNCATE_BEGINNING, crashing on short enough
widths, violating the width in the B_TRUNCATE_END case when the width was
short enough, non-optimal truncation in a few cases and sometimes truncation
where none would've been needed. Also fixes#4128 which was a symptom of the
broken B_TRUNCATE_BEGINNING.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35381 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Renamed DEC_MOVETOBACK to CLICK_MOVE_TO_BACK, and DEC_SLIDETAB to
CLICK_SLIDE_TAB.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35259 a95241bf-73f2-0310-859d-f6bbb57e9c96
obviously differentiates from BeOS behaviour, but I think it makes much more
sense this way.
* Simplified DefaultDecorator::Clicked() by eliminating the "clicked" variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35258 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The media_addon_server before unloading addons need to be sure the nodes are deleted.
For instance, applications could keep references on global nodes, thus preventing deletion.
To release all references, the media_addon server uses a new method BMediaRosterEx::ReleaseNodeAll().
* Quit the MediaRoster looper when quitting media_addon server before unloading addons.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35133 a95241bf-73f2-0310-859d-f6bbb57e9c96
* I had to reverse the addons iteration when quitting, the mixer wasn't releasing correctly if released last.
* use IncrementAddonFlavorInstancesCount on autostarted flavors.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35121 a95241bf-73f2-0310-859d-f6bbb57e9c96
Switched strings to sentence case in servers and kits. This is the
case-servers+kits.diff applied from #5169. Couldn't spot any possibly
problematic changes.
Thanks a lot!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35044 a95241bf-73f2-0310-859d-f6bbb57e9c96
-Some updates to the DecoratorManager to try to make it working. The add-on is not identified properly but I can't find out why...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34749 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Don't watch for moved entries
* Ask the network stack to delete the named interface
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34648 a95241bf-73f2-0310-859d-f6bbb57e9c96
* monitors /dev/net for added or removed devices and handles events
by configuring or unconfiguring interfaces. When plugged a usb
network device, it now appears correcly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34642 a95241bf-73f2-0310-859d-f6bbb57e9c96
usual structures.
* Also, they now use the QueryServer()/SendToServer() functions instead of
duplicating them.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34596 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed at least two reference counting problems, but nodes from killed teams
still remain alive (will look into this at a later point).
* GetLiveNodes() is now using transfer_area() as well.
* Made all sizes in the SendTo*() and Query*() functions size_t.
* Replaced reinterpret_casts with static_casts when casting void pointers.
* Ordered the request/reply structures by target.
* Tried to consolidate the use of add_on vs. addon.
* More cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34591 a95241bf-73f2-0310-859d-f6bbb57e9c96
MediaFilesManager; the client protocol implementation is still missing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34564 a95241bf-73f2-0310-859d-f6bbb57e9c96
one.
* Also renamed the settings file to "MediaFiles" which I had previously already
renamed accidently.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34562 a95241bf-73f2-0310-859d-f6bbb57e9c96
commands used a mix of old and new transfer_area() semantics, which didn't work
out too well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34558 a95241bf-73f2-0310-859d-f6bbb57e9c96
look into this now.
* Renamed the MMediaFilesManager to MediaFilesManager.
* Got rid of its Map usage, we're using std::map now instead.
* The media_server is using an unsafe method to transfer areas from the server
to the client. I've changed this for the BMediaFiles API to use Haiku's new
transfer_area() function. However, this seems to cause the above mentioned
problems.
* Improved naming and data exchange structures used for the BMediaFiles API.
* Fixed BMediaFiles leaking its lists.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34554 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Renamed global variable _DormantNodeManager to gDormantNodeManager.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34538 a95241bf-73f2-0310-859d-f6bbb57e9c96
AddOnMonitorHandler solution, instead of doing its own thing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34512 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed COMPILE_FOR_R5 support.
* No need for the distribution files any longer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34510 a95241bf-73f2-0310-859d-f6bbb57e9c96
into smaller parts:
media_addon_server:
* Removed (broken) use of (broken and inefficient) home-brewn Map, and List
classes. This also fixes a crash on shutdown when used with the malloc_debug
implementation. It's using stl::vector, and stl::map now instead.
_shared_buffer_list:
* Renamed _shared_buffer_list to SharedBufferList, and put it into the BPrivate
namespace. Also, made a class out of it.
* Separated shared buffer list creation from cloning.
* Enlarged maximum number of buffers to something that is not that evil, but
actually uses the space it has (ie. is a useful multiple of
shared_buffer_info that fills a multiple of B_PAGE_SIZE as much as possible).
* No longer drops into the debugger if the
* The list that is currently used is very inefficient for the features it
provides though (no change there).
_buffer_id_cache:
* Renamed to BufferCache, and put it into the private namespace
* It now deletes its buffers on deletion; since the BBufferConsumer will be
gone, too, at this point, there is little chance that there are still buffers
in use.
* Also, it's now using std::map instead of the (see above) Map class.
BBuffer:
* Got rid of the fBufferID member.
Misc.:
* Got rid of the global "team" variable; the media kit is now using the
private app kit's current_team() now.
* Added a lot of missing error checks (mostly memory allocations).
* Renamed fields like "flavorid" to flavor_id, renamed "dfi_*" fields to
something more detailed.
* Moved ServerInterface.h from src/servers/media/ to headers/private/media.
* Notifications.h was not self contained.
* Added missing licenses.
* Lots of cleanups, and coding style fixes.
What this doesn't fix:
* Bug #4954 which started all this (this comes next, though)
* Deinitialization is broken, as the PortPool is uninitialized too early, and
still used afterwards.
* The strange add-on monitoring code in the media_addon_server
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34500 a95241bf-73f2-0310-859d-f6bbb57e9c96
mode. This fixes focus issues as describen in bug #5020.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34456 a95241bf-73f2-0310-859d-f6bbb57e9c96
* This should improve the reliability in case drivers cannot send a packet when
they are still negotiating the line speed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34454 a95241bf-73f2-0310-859d-f6bbb57e9c96
B_NOT_MINIMIZABLE; it should still be possible to hide an application
programmatically.
* The decorators now honor this flag, though.
* And the Deskbar overrides BWindow::Minimize() to ignore all minimize requests.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34404 a95241bf-73f2-0310-859d-f6bbb57e9c96
* be_clipboard is no longer created at libbe initialization time. The
BApplication creates it as done in BeOS. This requires manual
initialization in the registrar to avoid a deadlock on shutdown.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34388 a95241bf-73f2-0310-859d-f6bbb57e9c96
as this fixes some more incorrect minimizations on the app_server side.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34361 a95241bf-73f2-0310-859d-f6bbb57e9c96
object is lost outside its scope.
Now vector data is copied instead.
Spotted by Pete Goodeve, thanks!
This should close#4562.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34358 a95241bf-73f2-0310-859d-f6bbb57e9c96
the B_NOT_MINIMIZABLE flag. It should more properly fix#4337.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34351 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Replaced some DBG(OUT) debug output with the registrar's global one.
* Cleanup, mostly whitespace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34305 a95241bf-73f2-0310-859d-f6bbb57e9c96
we should make that team accountable, not the one we waited for. This should
not have been a real problem, but this is more correct anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34299 a95241bf-73f2-0310-859d-f6bbb57e9c96
* When the user presses Cancel or Kill in the Shutdown progress window, in no
event will the "Application X aborted the shutdown process" be displayed.
* When the shutdown process already entered the waiting for a possibly blocked
app, and the app aborts the shutdown then, the "Application X aborted..."
alert will be displayed (issue not mentioned in ticket).
Fixes#3863 for real.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34261 a95241bf-73f2-0310-859d-f6bbb57e9c96
Canceling the shutdown process will not blame the application that happened
to be asked to quit at the time.
Thanks a lot! (Fixes#3863)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34253 a95241bf-73f2-0310-859d-f6bbb57e9c96
It's typed as B_VECTOR_ICON_TYPE, which is only known under Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34231 a95241bf-73f2-0310-859d-f6bbb57e9c96
incompatible releases, and makes sure clients using the old libbe.so will be
rejected.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34210 a95241bf-73f2-0310-859d-f6bbb57e9c96
windows visible on more than one workspace destroy the FFM experience (ie.
restoring the last window that had focus on a workspace switch).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34207 a95241bf-73f2-0310-859d-f6bbb57e9c96
clients can no longer release more references than they own.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34130 a95241bf-73f2-0310-859d-f6bbb57e9c96
event.
* This allows applications to listen to keys independent to their dead key
status.
* The app_server keyboard filter now also check for B_UNMAPPED_KEY_DOWN.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34112 a95241bf-73f2-0310-859d-f6bbb57e9c96
which window to give focus, it already does the right thing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34110 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added shortcuts ctrl-alt-F to get a window to front, and ctrl-alt-b to move it
to the back.
* Updated the user guide with these shortcuts, and also explained the missing
"single click to bring window to front" behaviour.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34108 a95241bf-73f2-0310-859d-f6bbb57e9c96
this flag isn't even set, yet, anyway, so nothing changed for real.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34000 a95241bf-73f2-0310-859d-f6bbb57e9c96
Mikhail Panasyuk: since worker threads often end up with B_NORMAL_PRIORITY,
it might be a good idea to give system threads a higher priority.
* Minor cleanup (mostly automatic whitespace).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33961 a95241bf-73f2-0310-859d-f6bbb57e9c96
on it unconditionally is not a good idea. This fixes bug #4904.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33935 a95241bf-73f2-0310-859d-f6bbb57e9c96
roling its own solution.
* Also removed BitmapManager::DeleteBitmap() - you only call
ServerBitmap::RemoveReference(), and that one will notify the manager if
needed.
* Some more cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33878 a95241bf-73f2-0310-859d-f6bbb57e9c96
concurrency as well as reference counting, causing occasional crashes and
memory corruption.
* ServerPicture now subclasses Referenceable, and will notify its owner when
it's going to be deleted. This might bring some regressions, although I
couldn't spot anything wrong yet.
* ServerBitmap will now also notify its owner when it's going to be deleted as
well.
* Switched from the former picture/bitmap lists to a std::map. This also solves
the issue of not checking whether or not the bitmap/picture actually belongs
to the ServerApp (before, all apps could access and delete all
pictures/bitmaps)
* Introduced a new fMapLocker that guards the new maps.
* ServerWindow now uses GetBitmap()/GetPicture(), and gives up its reference
after use.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33876 a95241bf-73f2-0310-859d-f6bbb57e9c96
The stack & tile feature developement & fixes would be done in
branches/features/stack-and-tile branch, until it's ready enough to be merge
into trunk.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33840 a95241bf-73f2-0310-859d-f6bbb57e9c96
survives a reboot.
* The target directory is now created if needed.
* Relocated/renamed the settings file to
~/config/settings/system/registrar/RosterSettings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33827 a95241bf-73f2-0310-859d-f6bbb57e9c96
Closing usb_midi now wake up midi_server port reader, as expected.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33782 a95241bf-73f2-0310-859d-f6bbb57e9c96
(might cause some regressions in FFM)
* made accept first click user configurable
* updated the Mouse preflet to use the layout kit
* removed the warp and instant warp modes from the Mouse preflet
* changed internal representation of mouse modes (warp modes moved)
* coding style fixes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33732 a95241bf-73f2-0310-859d-f6bbb57e9c96
added to the window list without considering its frontmost window. That caused
problems with all feels that were always on top, like
B_ALL_WINDOW_FLOATING_FEEL. This was causing bug #4700.
* Disabled the "previous window keep keyboard focus" heuristic - it doesn't
really work that well. There should be a central mechanism that detects active
typing that could also be used to disable touchpads.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33697 a95241bf-73f2-0310-859d-f6bbb57e9c96
anymore).
* Added interface to get the current settings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33486 a95241bf-73f2-0310-859d-f6bbb57e9c96
a dedicated mount server. This is pretty much a straight copy from the
AutoMounter code from Tracker, except
* the eject on unmount setting has been added (in Tracker, it's part of the
general settings, not the mount specific ones),
* scripting features have been added, such that it becomes possible to trigger
mounting the previoulsy mounted volumes from the outside, and most
importantly block until the operation is done (waiting for the reply).
TODO:
* Change Tracker to not run it's own AutoMounter, but send messages to the
new server.
* Move the eject when unmounting setting to the mount settings window.
* Enable the mount_server in the Bootscript.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33484 a95241bf-73f2-0310-859d-f6bbb57e9c96
to still receive keyboard events. This is now used for menu windows (before,
the menu feel alone would trigger that behaviour).
* This also fixes bug #4691, as tool tip windows use the menu feel as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33481 a95241bf-73f2-0310-859d-f6bbb57e9c96
I.e. you need to hold down exactly Ctrl+Alt for the server side window
modifiers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33459 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Trigger server side window modifiers only if exactly those modifiers are
pressed.
* Add the new window flags defined in Window.h to what the server considers
valid flags. Otherwise the new flags important to the server (only
B_NO_SERVER_SIDE_WINDOW_MODIFIERS) get filtered out.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33458 a95241bf-73f2-0310-859d-f6bbb57e9c96
Otherwise libnetwork.so needs to be dragged in, which has some issues.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33454 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Declaring the structs doesn't work so well for the libbe_test target.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33452 a95241bf-73f2-0310-859d-f6bbb57e9c96
primitives by providing a RemoteDrawingEngine and a RemoteHWInterface.
Not really optimized yet, still a bit WIP.
* Adding corresponding infrastructure like a blocking ring buffer and network
sender/receiver that are attached to the buffers to feed/drain them as well
as a RemoteMessage helper that provides a message based interface.
* Adding target screen concept to request an app to be run on a specific screen.
It's controlled by the TARGET_SCREEN environment variable which is added on
the app side and sent to the app_server.
* Right now only remote target screens are supported, in which case a new
RemoteHWInterface is created that tries to connect to the given host:port.
* Fix shape bounds when drawing, they need to be translated by the pen position
and converted to screen like the points as well. Wasn't visible though as the
bounds weren't used in the normal DrawingEngine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33417 a95241bf-73f2-0310-859d-f6bbb57e9c96
* check the path is NOT a directory or a symlink to a directory.
regular or char/block device are considered both valid path to read
from and write to.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33257 a95241bf-73f2-0310-859d-f6bbb57e9c96
from the current directory. The code was already there but commented out.
This fixes launching the media_addon_server from the liveCD. There was
a ticket, I think, but I can't find it right now.
Also reordered includes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33208 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Check that path is indeed a file, not a directory
* Contrary to what BeBook say, we can't delete BLocalMidi* endpoints,
but only Release() them like all others endpoints. Avoid midi_server to
panic when a device is removed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33202 a95241bf-73f2-0310-859d-f6bbb57e9c96
swallow SysEx end byte (F7) when it's the expected one.
Should fix#4445.
* Implement device remove handling.
Which should fix#4053.
Please test it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33159 a95241bf-73f2-0310-859d-f6bbb57e9c96
* F0 start bytes is not part of the content sprayed anymore
* Realtime byte are now supported during a SysEx, as it's the only
event that could be interleaved between a SySEx F0 .... F7 sequence.
* Orphelin SysEx F7 end byte is passed on *AS IS*.
Please test (no support midi port to do it myself).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33127 a95241bf-73f2-0310-859d-f6bbb57e9c96
at startup. WIP, as the removing case is not yet handled.
Plus vector icon support should be added to Midi kit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33118 a95241bf-73f2-0310-859d-f6bbb57e9c96
as a result failed DHPC-requests will no longer result in bogus static
configurations (but an auto-config IP-address will be picked instead)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33049 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Remove some unused members.
* Avoid initializing the mouse position to non-integer coordinates.
* The frame right/bottom are width/height - 1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32979 a95241bf-73f2-0310-859d-f6bbb57e9c96
Otherwise the focus cannot be changed to another window. In one case this could
have a severe sideeffect: When a window is quit it is hidden to remove focus and
remove it from screen. If this didn't work due to the focus lock, the fFocus
member would become a stale pointer after the window was quit and deleted. The
app_server would crash or corrupt memory on the next focus change. Easily seen
when moderately quickly clicking away a few alert windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32929 a95241bf-73f2-0310-859d-f6bbb57e9c96
On detaching the views remove themselves from the app local token space. Since
the ServerApp only waits for all ServerWindows to be removed from the window
list and not for their actual destruction, it can happen that the ServerApp is
deleted before the window destruction and hence the view detaching has finished.
The views would then access a stale ServerApp pointer and try to remove their
token from the deleted token space. To avoid that we set the ServerApp pointer
to NULL when the window is removed from the app (as after that the app can be
gone any time) and check for that case when detaching.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32927 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Desktop::{Move|Resize}WindowBy() could be called with zeros in which case it
doesn't have to do anything.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32775 a95241bf-73f2-0310-859d-f6bbb57e9c96
BDirectWindow::SetFullScreen() before the window is shown.
The app_server didn't like this, since in that case, Window::Screen() is
NULL. I added a check to ServerWindow::_ResizeToFullScreen() to handle
that case. +alphabranch
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32774 a95241bf-73f2-0310-859d-f6bbb57e9c96
workspace activation message was asynchronous, whether or not the
BWindowScreen stopped drawing in time was pure luck (this also caused crashes
with the VESA driver, as that one unmaps its frame buffer during mode switch).
Introduced a new AS_DIRECT_SCREEN_LOCK protocol for this.
* In the long term, we should let BWindowScreen use the same mechanism as
BDirectWindows, though.
* Removed superfluous locking in BDirectWindow::_InitData().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32746 a95241bf-73f2-0310-859d-f6bbb57e9c96