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
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
* 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
* Renamed _BDeviceAddOn_ to DeviceAddOn, and put it into the BPrivate namespace.
* Moved the DeviceManager functionality into the AddOnManager - this also
solves a locking issue, as BInputServerDevice::Control() was called in the
context of the DeviceManager before.
* The AddOnManager now uses the BPathMonitor to monitor the devices that
BInputServerDevices ask for - this greatly simplifies the code.
* Got rid of TList.h, and use ObjectList.h instead.
* Added PathList class that has a list of paths with reference count, used by
DeviceAddOn and the AddOnManager.
* DeviceAddOn got an actual implementation that lives in InputServerDevice.cpp.
* Added an experimental BInputServerDevice::AddDevices() that could be used
instead of recursing over devices manually. It replaces the functionality
that was found in the DeviceManager before (this was done implicitely for
all monitored devices).
* Greatly cleaned up and simplified the AddOnManager.
* Also fixed lots of potential errors/leaks when things go wrong.
* Removed the extra locker in AddOnManager - its BLooper lock is now used
instead.
* Replaced PRINT()/PRINTERR() macros in the AddOnManager with TRACE(), and
ERROR(), both now use debug_printf().
* Hopefully this fixes the problem that I don't have keyboard under VirtualBox
from time to time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28241 a95241bf-73f2-0310-859d-f6bbb57e9c96
mouse messages have a "when" field with the event system time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26328 a95241bf-73f2-0310-859d-f6bbb57e9c96
to contain headers shared by kernel and userland (mainly libroot).
* Moved quite a few private kernel headers to the new location. Split
several kernel headers into a shared part and one that is still kernel
private. Adjusted all affected Jamfiles and source in the standard x86
build accordingly. The build for other architectures and for test code
may be broken.
* Quite a bit of userland code still includes private kernel headers.
Mostly those are <util/*> headers. The ones that aren't strictly
kernel-only should be moved to some other place (maybe
headers/private/shared/util).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25486 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Patch by Shinta: switch between input methods are now not only done with Alt+Space but Alt+Zenkaku/Hankaku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25416 a95241bf-73f2-0310-859d-f6bbb57e9c96
indicating the name of the keymap. Correspondingly, modified input_server
to use the aforementioned variable in order to write the name attribute
to ~/config/Key_map. This allows Keymap prefs to correctly recognize the name
of the default keymap on a fresh build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24951 a95241bf-73f2-0310-859d-f6bbb57e9c96
int32 fields "be:delta_x", and "be:delta_y".
* This way, you can discover if the mouse is moved against an edge or corner
of the screen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24662 a95241bf-73f2-0310-859d-f6bbb57e9c96
initializers before sLogFile was created in the InputServer constructor.
Even moving the log file creation to a global initializer didn't help,
since the order is not guaranteed. So I changed the code to create the
log file on the fly in the PRINT method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24014 a95241bf-73f2-0310-859d-f6bbb57e9c96
now checks if the fOwner allocation went fine (and returns B_NO_MEMORY
in case it didn't). Since it can fail, inherited classes should call it
as well (I modified MouseInputDevice's and KeyboardInputDevice's
versions for now)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23106 a95241bf-73f2-0310-859d-f6bbb57e9c96
these for other people, but they wouldn't compile for me when building the
app_server test environment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19479 a95241bf-73f2-0310-859d-f6bbb57e9c96
system is shutting down.
For the protocol between the Registrar and input_server I decided to just
re-use the message constant already defined in the input server headers
(SYSTEM_SHUTTING_DOWN.)
The code in the input server to notify the InputServerDevices about the
shutdown was pretty trivial.
For the code in the Registrar I'll let some gurus review it to make sure it
fits in with the rest of the code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19289 a95241bf-73f2-0310-859d-f6bbb57e9c96
means that no bottomline window will be opened in case the current view is not input
method aware.
Instead, only the confirmed B_INPUT_METHOD_CHANGE event will be translated to a message
the view will understand - this message must be part of the event in the "be:translated"
member.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19116 a95241bf-73f2-0310-859d-f6bbb57e9c96
I've done all preferences apps for now, and some related.
* Some other related cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19090 a95241bf-73f2-0310-859d-f6bbb57e9c96