History log of /haiku/src/servers/input/InputServer.cpp
Revision Date Author Comments
# 81f9c26a 18-Jun-2022 PulkoMandy <pulkomandy@pulkomandy.tk>

Input server: remove some dead code

This does nothing, keep the TODO but remove the useless code.

Change-Id: I14611289e1153e406ff7dec93729bceedef7d9af
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5384
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 12340679 03-Mar-2021 CodeforEvolution <secundaja@gmail.com>

input_server: Properly implement watch_input_devices() & add documentation

Allow for multiple programs to watch for changes in the state
of input devices connected to the system. Previously only one program
at a time could watch input devices. While this functionality was not
implemented in BeOS R5, it was at least documented in the BeBook.

Also added some API documentation where necessary for the function
and related constants.

Change-Id: Icd927998cffcab212bb63bcf10c64c620e9da9a2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3872
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 9aea709d 03-Sep-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Input prefs: handle errors

Various error handling cases were missing, which would lead to corrupt
settings and crashes. Add the missing error checks and make sure we
always revert to sane settings in case of problems.

Change-Id: Ib72621d6e4974345f5f6ee88e01a918cbf09d7ea
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3069
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 02ad22d6 04-Aug-2020 Preetpal Kaur <preetpalok123@gmail.com>

Input: declare BString to get the Mouse Name

Change-Id: I3476f58839202a6fd8c93e325a15045963a9b7b2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3125
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 68c67d9c 05-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

input_server: manage settings for multiple mouses

Change-Id: Ib879ab30057e365cf96e4b9e6295489b8aa1199a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3128
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 5b98fa06 25-Jul-2020 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

input server and preferences: fix debug build


# 696d127d 21-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Live update of Input preferences device list

- Implement watch_input_devices in input_server, as it was TODO. For
now, only one watcher is allowed at a time.
- Use it in Input preferences to get notified about added and removed
devices and update the device list accordingly.

Change-Id: I52018af53738e68271d6d63b5bea31fd7cab1b3b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2041
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# b9d9c282 24-Aug-2019 Simon South <simon@simonsouth.net>

input_server: Notify apps of new key map

Define a new message, B_KEY_MAP_LOADED, that is broadcast to applications by
the Input Server each time a key map is loaded. This allows apps that cache
key-map data to know when their copy has become stale.

Change InputServer::HandleGetSetKeyMap() so it returns an error in the event
loading even the system (fallback) key map fails.

Change-Id: Icc6c884f695ca59c687d83c680bb2fb467dd90cc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1741
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 05f730b0 11-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

More WriteAttr -> WriteAttrString cleanup across the tree.

Some of these were correct as they were ... but most weren't.
There are a variety of other correct ones I didn't change over yet
that someone else probably should (GCI task?).


# 69da4f60 13-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

input_server: Delete useless functions.

As far as I can tell, these functions were "added" because they appear
in a symbols dump from R5. Nothing calls them, they don't do anything,
and they do not appear in R5 headers.


# d5b6133b 09-Jan-2017 John Scipione <jscipione@gmail.com>

App Server: style fixes

80 char limit
spaces => tabs
fix spelling/grammar problems in comment


# 96f94789 23-Oct-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

input_server: fix debug build.


# bdf0418f 20-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

input_server: Fix handling of received -q argument.

BApplication::ArgvReceived() is called in the already running app in
case of a silent relaunch. It is therefore enough to just post a quit
message.


# 91e3b801 01-Nov-2014 Michael Lotz <mmlr@mlotz.ch>

{app|input}_server: Provide app_server team id to input_server.

For cases where a BMessage is passed by area, the remote team id needs
to be passed into BMessage::_SendMessage() so it can transfer the area
to the target team. It falls back to detecting the port owner if said
information is missing. However, since the input_server owns the port
in this situation, the remote team needs to be specified explicitly.
Add the app_server team id to the input acquire message, so input_server
gets the needed info.

As messages that exceed the pass by area threshold are rather rare in
general and shouldn't happen at all in this situation, this does not
fix any immediate problem.


# 3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 916be2df 16-Oct-2013 John Scipione <jscipione@gmail.com>

Consolidate adding add-on directories

This builds off of hrev46243 adding add-on directories all in one place
in AddOnMonitorHandler instead of repeating the code 3 times in
IndexServer, AddOnManager, and MediaAddOnServer.

The safe mode checking in InputServer is now redundant since it all
gets funneled into AddOnMonitorHandler::AddAddOnDirectories()
and the safe mode flags are checked there.

We should probably remove the InputServer::SafeMode() method, but,
I didn't want to break anything that depended on it so I left it.


# c618b6cc 28-Aug-2012 Jérôme Duval <jerome.duval@gmail.com>

input_server: use a generated cookie instead of pointer

* fixed #8831


# 57ab0395 04-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit fixes for input_server.


# 3cee15aa 28-Mar-2012 John Scipione <jscipione@gmail.com>

Keymap changes from recent activity. No AltGr yet.

Below is a mostly complete summary of the changes in this commit.

* Set the DeadKeys for the US-International Keymap to use the Option map.
* Rename American keymap to US
* Update the US, US-International, and United-Kingdom keymaps to take
out unneeded spaces in the option layer. Also updated the dead keys
and some other keys on the US-International keyboard to use UTF-8
characters rather than there ASCII equivalents when different.
* Make the Option key fall-through when there is no mapping in the Option
table. Option is for special characters, if none, print the regular one.
This is mostly meant for the US keymap which has an empty option map. But
also so that you don't have to repeat the normal, shift, and caps maps in
the option map needlessly. Although the keymaps are still not empty in
some cases that it could be like numpad keys and space.
* Update the /bin/keymap app to use fputs() instead of printf() when there
is no actual formatting taking place. I've gotten into trouble for doing
this before and it is faster to not process the string unnecessarily.
* Also several 80-char limit style fixes and updated comments.
* In Keymap class Reorder the modifier keys to match the keymap files.
Put B_CONTROL_KEY check above B_OPTION_KEY. Neither change has any effect,
they are purely aesthetic.
* Update DumpKeymap() method to use the abbreviated modifier letters so it
will fit in your 80-char wide terminal.
* Tiny style fix in InputServer
* 80-char limit style fix in BWindow and add a comment that the shortcut
gets eaten in the case of Cmd+Q
* Implement IndexForModifier() in KeyboardLayout, although I am not using it.
* Take Caps Lock out of the Modifier keys window because I couldn't get
it to work the way I wanted it to.
* Move key roles to the left column, and the key label on the left. Add column
header labels. Thanks Rimas!
* Add validation and improve marking menu options. Add a 'Disabled' option
to control, option, and command menus to disable the key. Make the key
role text grey if the key roles is disabled. Validation ensures that you
cannot repeat the same key twice in the Modifier keys window since that
won't work. You can't define 2 sets of option keys even if you really want
to. You can disable your control, option, and command keys if you
want, but that is not recommended.
* Rename kUpdateModifiers to kUpdateModifierKeys message to differetiate
it from kUpdateModifier.
* Add shift key to Modifier keys window, use the stop icon instead of the
warning icon to indicate conflicts.
* Allow the Layout system to control the size of the Modifier keys window
again, set the width's of the key role lables to the widest, set the width
of the menu fields to take up the rest of the space minus room for the
conflict views. I didn't like it that the Modifier keys window would change
size based on what options you had selected in the menu fields. Now it
doesn't, but, the layout system still makes it all fit.


# 00670f08 21-Jan-2012 czeidler <haiku@clemens-zeidler.de>

Reconnect imput server.


# 77697df4 31-Oct-2011 François Revol <revol@free.fr>

Remove leftover debug code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43038 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fa3181d 31-Oct-2011 François Revol <revol@free.fr>

Implemented the patch on #7963 in a different way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43037 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98e30c67 08-Aug-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed style violation (tab before '{' that Jérôme already mentioned), and
merged the two ifs.
* Automatic white space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3eb02f08 01-Aug-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Style fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42533 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1ac525d 31-Jul-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Don't eat alt+space if there is only one input method available (the shortcut is meant to switch input methods)
Makes it useable in applications and less confusing. Fixes #6468.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b617e8da 20-Jun-2011 Michael Lotz <mmlr@mlotz.ch>

A blast from the past: r15048 from way back removed the wrong boolean parameter
causing the message to be sent with a timeout of "true" (getting converted to 1)
instead of the intended 0 meaning no/infinite timeout. This caused the message
sending to be aborted due to the timeout if it was blocking on a full port for
example. Since the return value is never checked noone noticed.
It's possible that this was the cause of some lost input messages (mouse,
keyboard) when the system was under heavy enough load for either the port heap
to be exhausted (unlikely) or the input_server <-> app_server port to run full
(quite possible).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42271 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 915a7b8c 19-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

Make BObjectList<> publically available:
* cleaned up ObjectList.h
* switched several uses of new() to new(std::nothrow)
* moved ugly AsBList() hack into BObjectList<>::Private class and
adjusted all callers accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40252 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ea8a421c 05-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Run the AddOnManager after having loaded add-ons on the InputServer
thread. After fixing the internal locking of AddOnMonitorHandler in
r38235, running the AddOnManager before scanning add-ons could lead
to a dead-lock in case devices appeared while the input_server was
still initializing. This hopefully fixes #6760 and possibly also
#6819. I've tested in both qemu and on real hardware (quad-core with
3 mice, one tablet and 3 keyboards connected). I've also tested
hot-plugging devices, which still works as expected. The problem may
have already been fixed in the preceding changeset, by elliminating
an extra involved looper. Since node monitor messages were actually
received on the wrong looper, using the looper lock in AddOnManager
did not have the intended effects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c494653 14-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the at_kbd_io and AT keyboard stuff; this is now done within the PS/2
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


# efb527ca 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed BeOS drop-in support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34511 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0439d88 09-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Adjusted thread priorities of several system services based on a mail from
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


# 156b8d5d 06-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

* Initialize member variables.
* 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


# b0375001 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by Shinta: The key code was misnamed. Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30599 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0b6b0df 24-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

* Refactored _SanitizeEvents() a bit to remove small bits of duplicate code.
* 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


# 01b17870 04-Feb-2009 Axel Dörfler <axeld@pinc-software.de>

* The input_server now updates its internal state only from the messages that
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


# 2bbb8288 14-Dec-2008 Jérôme Duval <korli@users.berlios.de>

added get_modifier_key() as proposed by Olivier Cortes. Thanks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28812 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc7290d0 12-Dec-2008 Jérôme Duval <korli@users.berlios.de>

fix noticed by Olivier Cortes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28805 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 393f282c 27-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* Mark InputDeviceListItems only as running if calling Start() for the
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


# 0d2fb32f 27-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

As pointed out by Axel, this TODO is invalid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28341 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 740d8990 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* InputDeviceListItem::fDevice was not maintaining it's own memory for the
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


# 23debb05 19-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote InputServerDevice.h header.
* 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


# 8f2be9ef 18-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 212426b0 03-Sep-2008 Jérôme Duval <korli@users.berlios.de>

fix warnings
white space cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27311 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c08e99ef 03-Sep-2008 Jérôme Duval <korli@users.berlios.de>

print errors when starting devices


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27308 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65e6fe82 23-Aug-2008 Jérôme Duval <korli@users.berlios.de>

better check the size of the chars table for keymaps. this avoids crashing in #2659.
dunno why the keymap is invalid though


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97686ecc 22-Aug-2008 Jérôme Duval <korli@users.berlios.de>

also sanitize events added by filters, to be checked with methods too.
this fixes bug #2611


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27162 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 264df957 08-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

All input device add-ons should already do this, but make sure that
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


# e4ddc13a 07-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Revert the bad part of my previous change. Wasn't supposed to exchange
the modifier key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25849 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f01a858 06-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

* Check return code.
* Make check slightly more readable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25846 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b202f4e 13-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new header directory headers/private/system which is supposed
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


# 07a62869 10-May-2008 Jérôme Duval <korli@users.berlios.de>

B_ZENKAKU_HANKAKU doesn't need B_COMMAND_KEY (I misunderstood the patch).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25421 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba64d892 09-May-2008 Jérôme Duval <korli@users.berlios.de>

* added B_KATAKANA_HIRAGANA and B_ZENKAKU_HANKAKU (used in Japanese keymap)
* 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


# cea151dc 06-May-2008 Jérôme Duval <korli@users.berlios.de>

B_SAFEMODE_DISABLE_USER_ADD_ONS is also a safe mode we now honor


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25327 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1174007c 12-Apr-2008 Rene Gollent <anevilyak@gmail.com>

Modified bin/keymap's -h option to write a variable to the generated header
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


# f2879f52 29-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* The mouse message now also contains the x/y delta, if available, in the
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


# ddb44fda 19-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

Fixed the log file output when DEBUG=2. PRINT() is called from global
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


# d57634f7 16-Jul-2007 Jérôme Duval <korli@users.berlios.de>

the keymap is now saved when key locks or key modifiers are changed
this fixes bug #1282


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ce678aa 29-May-2007 Stephan Aßmus <superstippi@gmx.de>

* implement conversion of absolute mouse coordinates (0..1) in device
messages to normal screen coordinates



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21274 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2617d83e 26-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Damn, forgot to include these two in r19968. This should fix the build again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19973 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ca64e48 05-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19712 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6ead041 13-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Removed some debugging lines.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19510 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 252f4767 12-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Added some needed stdio.h includes. I don't know what magic was used to compile
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


# 499aacdd 15-Nov-2006 Ryan Leavengood <leavengood@gmail.com>

Fixed bugs #177 and #180 by adding code to notify the input_server that the
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


# 158893b9 29-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

The input_server now removes all B_INPUT_METHOD_EVENTS when the target view is
not input method aware.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b735e46d 25-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Extended input method protocol a bit: you can now set "be:inline_only" to true, which
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


# 7ee49d9f 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87036968 07-Jul-2006 Jérôme Duval <korli@users.berlios.de>

input_server saves its settings on change, sending itself a 'Save' request message


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18052 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43d3560b 03-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* As the generated SystemKeymap source is used as a header, I renamed the
generated file from SystemKeymap.cpp to SystemKeymap.h.
* The keymap was even compiled into the input_server twice, as it was also
listed as source file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17711 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8467d6b 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* Further improved error handling in class Keymap.
* Improved header output, it now looks a lot nicer.
* Fixed style issues of that header, too: replaced "s" prefix with the
correct "k" prefix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17690 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bdbd1cb4 11-Mar-2006 Michael Lotz <mmlr@mlotz.ch>

Removing the USING_MESSAGE4 define.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16710 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 059b7150 08-Mar-2006 Jérôme Duval <korli@users.berlios.de>

Patch from barber (part of bug #141):
better handling of method events


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fbe9b0b6 13-Feb-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

This fixes bug #149.
Input server now saves keyboard typematic settings whenever they are modified,
instead of wating until it is shutdown (which never happens, either the
system will crash, or the input_server will stay active after a normal shut down)
Same problems might apply to mouse and keymap settings.
Input server shutdown handling should be reviewed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36077365 11-Feb-2006 Jérôme Duval <korli@users.berlios.de>

also copy modifiers and state in SanitizeEvents as we need them there
change MethodizeEvents to actually handle the method queue


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d0b5dc1 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fix debug build
avoid allocating a BMessage in InitKeyboardMouse, as reported in bug #140


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16346 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10214ec4 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

hopefully taken B_INPUT_METHOD_STOPPED into account


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16325 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3ea345d 28-Nov-2005 Jérôme Duval <korli@users.berlios.de>

starting a running device or stopping a stopped device isn't allowed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b64aa64 28-Nov-2005 Jérôme Duval <korli@users.berlios.de>

hopefully fixed iroster behavior


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26b02ddc 26-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

The input_server is now notified when the screen resolution is changed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4c57bd57 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Fix for compilation with the new messaging code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15048 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a67c93f 17-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Turns out B_RELEASE_ALL just works as expected - it was a deadlock by design; when the
cursor thread didn't call acquire_sem() fast enough, it would never get released by
B_RELEASE_ALL (as that only releases all waiting threads), and thus, waited forever
for the semaphore to be released again.
On the other side, the input_server didn't call release_sem() anymore, since the
cursor thread still didn't read out the data after the last release...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15014 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b120ea9 18-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Turns out there were a couple of problems:
* RootLayer still set the mouse cursor...
* mixed up "x" and "y" in the cursor thread
* but that didn't get noticed, as B_RELEASE_ALL doesn't seem to work
(will look into that next)!

The cursor finally works as good as expected in Qemu :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7598223 18-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* the new input event dispatcher is now actually used, although it doesn't
distribute any messages to the clients yet.
* removed the working thread from RootLayer - for now, its event handlers are
still called using input filters in the new event dispatcher, though (to
get things started).
* ServerApp is now using a BMessenger to identify its client, and no longer
stores the port/token separately.
* the input_server handshake is a bit simpler now, as it can now just reply
to the app_server message, removed unused code from ServerProtocol.h
* calmed down the MultiLocker (it always printed thread statistics on startup,
because it's compiled in debug mode).
* removed the cursor thread stuff from AppServer.cpp
* the new event dispatcher now uses a cursor thread when supported (only in
native mode, not in the test environment), although it improves cursor
movement under Qemu, the effect is not as good as expected - this might
need some more investigations (might just be a thread priority problem).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15012 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d5caf59 16-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed gcc 4 build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14973 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 128ddaa3 16-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Some work on the input_server:
* Rewrote event handling: instead of writing every single device message to
the event port, they are just queued in a list, and the event loop is only
notified if necessary (ie. if a notification has been sent already, new
events are just queued up until the input_server found the time to process
them).
* This also fixed a big memory leak: every message processed by EnqueueDeviceMessage()
(IOW every key or mouse event) was leaked!
* no longer abuses gInputMethodListLocker to lock the method event queue
(it now uses the standard event queue lock).
* removed the completely superfluous, weird and decelerating event caching mechanism
* tried to find a better distribution of work between _SanitizeEvents(),
_MethodizeEvents(), and _DispatchEvents().
* HandleSetMousePosition() now only does what it's supposed to do (this currently
causes the mouse to jump at the start, though).
* now uses the "Message4" for message sending if available.
* fixed "kb_mouse_settings.h" to include all headers it needs.
* some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14966 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c17d025 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Introduced a new handshake between input_server and app_server, and some
temporary handling code in the app_server.
* RootLayer no longer creates the input_server messaging port - this is now
the responsibility of the input_server.
* Moved AS_CREATE_[OFFSCREEN_]WINDOW from ServerApp::_MessageLooper() to
_DispatchMessage().
* The RootLayer thread is now started as soon as the input_server is there.
* removed or disabled any input_server stuff in the AppServer class.
* removed old message commmands to the app_server.
* Removed the R5_CURSOR_COMM and HAIKU_APPSERVER_COMM definitions: the
input_server is now automatically built correctly depending on the target.
* InputServer::EventLoop() plays now safe and checks for error conditions.
* InputServer::EnqueueDeviceMessage() seems to leak memory, added TODO about
this.
* InputServer event loop messaging uses ports for inner-app communication - why?
* The InputServer event loop thread is no longer killed on exit, it just quits
when its port is gone.
* Minor cleanup in input_server.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a512a89b 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed some memory leaks, fChars was never freed.
Now uses (nothrow) for fChars and checks if the allocation succeeded.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9514d2e5 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* introduced a global gInputServer object, so that you don't need to cast the
be_app object anymore.
* fixed some missing locks for the input device list.
* moved the input device list into the InputServer object - didn't make a lot
of sense the way it was done before. Also moved registering/unregistering
into the InputerServer class.
* Made the InputDeviceListItem class a bit more useful and encapsulated.
* cleanup, removed empty function documentation stubs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14946 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec12c6fe 04-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Don't let ifdef's confuse the editor's function lookup.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14693 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e5b79a7 25-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Send BMessages to Haiku's app_server instead of PortLink ones. This is untested, but should work fine.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c495f81a 06-Oct-2005 Jérôme Duval <korli@users.berlios.de>

added some debug PRINT
inited fChars to null


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14326 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b39b6ee5 13-Jul-2005 Jérôme Duval <korli@users.berlios.de>

DispatchEvent is now using when field from input message instead of real_time_clock()
Also watchs B_UNMAPPED_KEY_DOWN for Alt+Space (input method change)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13656 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd10337f 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f04728a 28-Apr-2005 Jérôme Duval <korli@users.berlios.de>

Reworked different build modes
Uncomment in Jamfile "#APPSERVER_TEST_MODE = 1 ;" to test app_server with input_server
Uncomment in InputServer.h "//#define R5_CURSOR_COMM" to enable cursor comm when appserver BPortlink comm is used
Default mode is R5 comm if TARGET != haiku
and appserver BPortLink comm when TARGET = haiku

For APPSERVER_TEST_MODE, make sure to change the ViewInputDevice path in AddOnManager.cpp
To test with app_server, enable LaunchCursorThread() in AppServer.cpp and uncomment "#define INPUTSERVER_TEST_MODE 1" in ViewHWInterface.cpp
Also make sure to change the input_server path in AppServer.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12493 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd5ac83a 16-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Use one BPortLink (fAppServerLink) instead of always creating a new one to send events to the app_server.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12427 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ccce0700 12-Apr-2005 Jérôme Duval <korli@users.berlios.de>

As Haiku BScreen::Frame() doesn't work in our current state, we use a fake Frame
input_server now sends well filled BMessages in Haiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 68820418 26-Mar-2005 Adi Oanca <adioanca@nowhere.fake>

No need to send string length on B_KEY_DOWN/UP

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12015 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1530ab8 25-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

When sending native keydown/keyup events the delivery of the string was broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12009 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a5e88b 10-Feb-2005 Jérôme Duval <korli@users.berlios.de>

introduced a R5 style communication flag


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a77de570 28-Jan-2005 Jérôme Duval <korli@users.berlios.de>

useful pieces of code


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11107 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4e9b6a7 25-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

The input_server now works on R5 and on Haiku (depending on COMPILE_FOR_R5).
Fixed two minor warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11063 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d641431 25-Jan-2005 Jérôme Duval <korli@users.berlios.de>

added code for a bottom line window, not working


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1c75e39 13-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Fixed EnqueueMethodMessage() so that Eventloop port is released
WatchPort process adapted to this behavior :
we go through message processing without messages. in fact method messages musn't be processed as device messages.
Even if buggy, Canna method is now working with StyledEdit (with Input Method aware views typically).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10712 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3c78ade 10-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Added input method key switching (alt+space)
Added code to enable deskbar replicant loading after input_server is started


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91f83005 10-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Add some method switching support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10656 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 034a4d2e 07-Jan-2005 Jérôme Duval <korli@users.berlios.de>

we now keep a copy of modifiers and key_states around to be able to fill incomplete messages and get_key_info requests
because of this, 4th bug from axeld is fixed, and R5 Keymap preferences is now working correctly


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10613 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a056136c 20-Nov-2004 shatty <shatty@nowhere.fake>

address compiler warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10078 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 215b876d 28-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Improved method support : method replicant is working
Readding of replicant or reset of method replicant menu still to be done


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3937704 26-Oct-2004 Jérôme Duval <korli@users.berlios.de>

fixed devices showed as stopped when they were running


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f40fc44e 22-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added initial method addons support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9445 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ddf8a114 13-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Fixed restart problem


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90c2fee9 07-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Fixed events filtering


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9252 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a279d91 06-Oct-2004 Jérôme Duval <korli@users.berlios.de>

changed signature to original, needed for compatibility
change AddOnManager deletion


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9226 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca75e4d0 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added a looper to handle devices related requests
Before it was deadlocking when an addon asks for a new keymap on a notification message


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a813abd 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Changed some printf to PRINT macro
Now uses BScreen to constrain mouse cursor
Now handles gracefully screen resolution changes
Yeah it works!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9213 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6ec7f99 03-Oct-2004 Jérôme Duval <korli@users.berlios.de>

removed unused field


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9174 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 963e8ab1 03-Oct-2004 Jérôme Duval <korli@users.berlios.de>

added support for R5 app_server communication


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 549360d8 01-Oct-2004 Jérôme Duval <korli@users.berlios.de>

i don't even wonder why i have to do this, i simply do it


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9150 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bc892a8 01-Oct-2004 Jérôme Duval <korli@users.berlios.de>

added some support for R5 app_server communication


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33140fa0 29-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added file debug output for daemon mode
added some R5 app_server communication init


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9112 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32787580 26-Sep-2004 Jérôme Duval <korli@users.berlios.de>

change field name of mouse position
change device message handling a bit


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9065 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0548f831 02-Sep-2004 Jérôme Duval <korli@users.berlios.de>

complete register and unregister


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8807 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83589f89 02-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added BInputDevice server side
added set_modifier_key server side
now changes locks in the current keymap, it can then be reloaded


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1706cd2 31-Aug-2004 Jérôme Duval <korli@users.berlios.de>

minor fix


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8755 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dbf6aa56 31-Aug-2004 Jérôme Duval <korli@users.berlios.de>

integration of the system keymap, loaded when settings one loading fails


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8752 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f907d729 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

now only system addons are loaded when safemode is true


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8720 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6346dac0 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

implemented safemode info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8719 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 00740cc5 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Integrated MouseSettings and KeyboardSettings
update license info
clean up
removed node monitoring messages handling
fixed several message handlers


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8710 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97c19e92 27-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Complete DeviceManager, need testing though.
Fix crash with TeamMonitor when quitting.
Moved app signature to a common place


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6e6fa57f 26-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added a device manager for devices monitoring


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cba20309 26-Aug-2004 Jérôme Duval <korli@users.berlios.de>

minor debug info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6c0b53d 23-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added filtering. Commented now former unused addon code.
We now load and manage device and filter addons successfully.
Tested with nervous and InputRecorder devices and InputRecorder filter.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c78e2a47 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added support for COMPILE_FOR_R5 flag, it enables to launch input_server without libopenbeos.so


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8612 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bcacea13 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

messages reply with status


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 173f7185 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

AddOnManager improved, initializations, message handling improved


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8610 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5359f0d4 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

added an addon manager directly from our media server, not finalized


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de79eb2a 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

code clean up, added addon monitoring code from storage kit


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8608 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 407d7a9a 18-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Clean up, added missing message handlers


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a9fed59 11-Aug-2004 DarkWyrm <darkwyrm@gmail.com>

I hate forgetting to check in files. :(


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8552 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b2445b2 29-Jul-2004 Jérôme Duval <korli@users.berlios.de>

input_server messages ids are shared : they go to private headers
#include fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8506 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2cd26ed9 18-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Changes to integrate with app_server:
Added code to send more than just mouse move messages
Removed the input_server's dependency on local PortLink sources
Broke the BeIDE project by removing the PortLink dependency (oh well) -- see me for a fix if you run into problems building locally


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5089 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5894646a 30-Sep-2002 Michael Phipps <michaelphipps@nowhere.fake>

Per Jason.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1314 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f85924fe 12-Aug-2002 Michael Phipps <michaelphipps@nowhere.fake>

This fleshes out the HandleSetMousePosition() and the input_server now tracks the current position of the mouse cursor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@729 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e9a5e3f5 22-Jul-2002 Michael Phipps <michaelphipps@nowhere.fake>

Change per Jason Vandermark.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2296a4d6 17-Jul-2002 Michael Phipps <michaelphipps@nowhere.fake>

Here is the modified InputServer.cpp file which includes the casting
change for the DispatchEvent() function. This will allow the input_server
to work with the current proto6 code in the cvs tree. It may even work
with the existing proto5.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@297 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c8b733d 17-Jul-2002 Michael Phipps <michaelphipps@nowhere.fake>

Checkin, per Jason Vandermark.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@294 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bdf0418f5c4a59274131bc199da558547be87935 20-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

input_server: Fix handling of received -q argument.

BApplication::ArgvReceived() is called in the already running app in
case of a silent relaunch. It is therefore enough to just post a quit
message.


# 91e3b80197cfa6b624c216ce61298ce1463ba4f8 01-Nov-2014 Michael Lotz <mmlr@mlotz.ch>

{app|input}_server: Provide app_server team id to input_server.

For cases where a BMessage is passed by area, the remote team id needs
to be passed into BMessage::_SendMessage() so it can transfer the area
to the target team. It falls back to detecting the port owner if said
information is missing. However, since the input_server owns the port
in this situation, the remote team needs to be specified explicitly.
Add the app_server team id to the input acquire message, so input_server
gets the needed info.

As messages that exceed the pass by area threshold are rather rare in
general and shouldn't happen at all in this situation, this does not
fix any immediate problem.


# 3aeed6607cd07762c0e709633c012b3a632dbad9 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 916be2df3c26f589bd422d22230f921e51e69bae 16-Oct-2013 John Scipione <jscipione@gmail.com>

Consolidate adding add-on directories

This builds off of hrev46243 adding add-on directories all in one place
in AddOnMonitorHandler instead of repeating the code 3 times in
IndexServer, AddOnManager, and MediaAddOnServer.

The safe mode checking in InputServer is now redundant since it all
gets funneled into AddOnMonitorHandler::AddAddOnDirectories()
and the safe mode flags are checked there.

We should probably remove the InputServer::SafeMode() method, but,
I didn't want to break anything that depended on it so I left it.


# c618b6ccb1149daf91b89725e018ceab1175199d 28-Aug-2012 Jérôme Duval <jerome.duval@gmail.com>

input_server: use a generated cookie instead of pointer

* fixed #8831


# 57ab0395ad31761e27ef6d5aa3af68cc3e4d71b2 04-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit fixes for input_server.


# 3cee15aac2ef8c6ae8975d9add34c36aa4224c29 28-Mar-2012 John Scipione <jscipione@gmail.com>

Keymap changes from recent activity. No AltGr yet.

Below is a mostly complete summary of the changes in this commit.

* Set the DeadKeys for the US-International Keymap to use the Option map.
* Rename American keymap to US
* Update the US, US-International, and United-Kingdom keymaps to take
out unneeded spaces in the option layer. Also updated the dead keys
and some other keys on the US-International keyboard to use UTF-8
characters rather than there ASCII equivalents when different.
* Make the Option key fall-through when there is no mapping in the Option
table. Option is for special characters, if none, print the regular one.
This is mostly meant for the US keymap which has an empty option map. But
also so that you don't have to repeat the normal, shift, and caps maps in
the option map needlessly. Although the keymaps are still not empty in
some cases that it could be like numpad keys and space.
* Update the /bin/keymap app to use fputs() instead of printf() when there
is no actual formatting taking place. I've gotten into trouble for doing
this before and it is faster to not process the string unnecessarily.
* Also several 80-char limit style fixes and updated comments.
* In Keymap class Reorder the modifier keys to match the keymap files.
Put B_CONTROL_KEY check above B_OPTION_KEY. Neither change has any effect,
they are purely aesthetic.
* Update DumpKeymap() method to use the abbreviated modifier letters so it
will fit in your 80-char wide terminal.
* Tiny style fix in InputServer
* 80-char limit style fix in BWindow and add a comment that the shortcut
gets eaten in the case of Cmd+Q
* Implement IndexForModifier() in KeyboardLayout, although I am not using it.
* Take Caps Lock out of the Modifier keys window because I couldn't get
it to work the way I wanted it to.
* Move key roles to the left column, and the key label on the left. Add column
header labels. Thanks Rimas!
* Add validation and improve marking menu options. Add a 'Disabled' option
to control, option, and command menus to disable the key. Make the key
role text grey if the key roles is disabled. Validation ensures that you
cannot repeat the same key twice in the Modifier keys window since that
won't work. You can't define 2 sets of option keys even if you really want
to. You can disable your control, option, and command keys if you
want, but that is not recommended.
* Rename kUpdateModifiers to kUpdateModifierKeys message to differetiate
it from kUpdateModifier.
* Add shift key to Modifier keys window, use the stop icon instead of the
warning icon to indicate conflicts.
* Allow the Layout system to control the size of the Modifier keys window
again, set the width's of the key role lables to the widest, set the width
of the menu fields to take up the rest of the space minus room for the
conflict views. I didn't like it that the Modifier keys window would change
size based on what options you had selected in the menu fields. Now it
doesn't, but, the layout system still makes it all fit.


# 00670f08efe7a7b3d3ebd071e21faed8284d3993 21-Jan-2012 czeidler <haiku@clemens-zeidler.de>

Reconnect imput server.


# 77697df4cf1aa0e84f9ff91976b50dfe198bbbe6 31-Oct-2011 François Revol <revol@free.fr>

Remove leftover debug code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43038 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fa3181d95582cdf165a9f9e1cfb08ab5bad158f 31-Oct-2011 François Revol <revol@free.fr>

Implemented the patch on #7963 in a different way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43037 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98e30c67df0bd2224c3c2b136f14be4f63f52181 08-Aug-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed style violation (tab before '{' that Jérôme already mentioned), and
merged the two ifs.
* Automatic white space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3eb02f08d9cec7c674f931ab56c40e2b3deae78d 01-Aug-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Style fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42533 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1ac525ddff37e7aedf656334d97f1708bbad926 31-Jul-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Don't eat alt+space if there is only one input method available (the shortcut is meant to switch input methods)
Makes it useable in applications and less confusing. Fixes #6468.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b617e8daff059ecac1df1ca58514fafaeb7dc515 20-Jun-2011 Michael Lotz <mmlr@mlotz.ch>

A blast from the past: r15048 from way back removed the wrong boolean parameter
causing the message to be sent with a timeout of "true" (getting converted to 1)
instead of the intended 0 meaning no/infinite timeout. This caused the message
sending to be aborted due to the timeout if it was blocking on a full port for
example. Since the return value is never checked noone noticed.
It's possible that this was the cause of some lost input messages (mouse,
keyboard) when the system was under heavy enough load for either the port heap
to be exhausted (unlikely) or the input_server <-> app_server port to run full
(quite possible).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42271 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 915a7b8c247e1ed9182bd561df3e9856307e750c 19-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

Make BObjectList<> publically available:
* cleaned up ObjectList.h
* switched several uses of new() to new(std::nothrow)
* moved ugly AsBList() hack into BObjectList<>::Private class and
adjusted all callers accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40252 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ea8a421c0c471377ffbbfa24075573ed4f9ac09f 05-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Run the AddOnManager after having loaded add-ons on the InputServer
thread. After fixing the internal locking of AddOnMonitorHandler in
r38235, running the AddOnManager before scanning add-ons could lead
to a dead-lock in case devices appeared while the input_server was
still initializing. This hopefully fixes #6760 and possibly also
#6819. I've tested in both qemu and on real hardware (quad-core with
3 mice, one tablet and 3 keyboards connected). I've also tested
hot-plugging devices, which still works as expected. The problem may
have already been fixed in the preceding changeset, by elliminating
an extra involved looper. Since node monitor messages were actually
received on the wrong looper, using the looper lock in AddOnManager
did not have the intended effects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c4946532910e3cc9f66a92228a2334098e6de49 14-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the at_kbd_io and AT keyboard stuff; this is now done within the PS/2
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


# efb527ca96d70e9c0ff12cc6067354202382e981 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed BeOS drop-in support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34511 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0439d88df9202e0a5aea9fbe587a1eaf88dd348 09-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Adjusted thread priorities of several system services based on a mail from
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


# 156b8d5d2de1e5eda589c2d2200a8294b5522b24 06-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

* Initialize member variables.
* 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


# b037500155720ae322f27feafb715da89fe63e95 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by Shinta: The key code was misnamed. Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30599 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0b6b0dff601a1a113ac8948aa0b1377f5cd6a16 24-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

* Refactored _SanitizeEvents() a bit to remove small bits of duplicate code.
* 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


# 01b178700fda86f7e728fc8fd5e311b22a4114a2 04-Feb-2009 Axel Dörfler <axeld@pinc-software.de>

* The input_server now updates its internal state only from the messages that
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


# 2bbb828870b7394d876930766f208ea8ef5ea785 14-Dec-2008 Jérôme Duval <korli@users.berlios.de>

added get_modifier_key() as proposed by Olivier Cortes. Thanks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28812 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc7290d08ddc20972e594e46a472c7ac2de26a53 12-Dec-2008 Jérôme Duval <korli@users.berlios.de>

fix noticed by Olivier Cortes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28805 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 393f282c79633a272e3f3da5c50551405fe43fb8 27-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* Mark InputDeviceListItems only as running if calling Start() for the
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


# 0d2fb32f12a6d478d050bb70a30f5fdb270914c1 27-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

As pointed out by Axel, this TODO is invalid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28341 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 740d899004c043491beee363479dd9b47606d4f3 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* InputDeviceListItem::fDevice was not maintaining it's own memory for the
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


# 23debb05d034dcc04cd6cb0735189609abe8e2d3 19-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote InputServerDevice.h header.
* 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


# 8f2be9ef82ab0bab66b8e686a2ef379374d3ee7f 18-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 212426b00e1bba643bb7c00180e4c38b55ff2b12 03-Sep-2008 Jérôme Duval <korli@users.berlios.de>

fix warnings
white space cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27311 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c08e99ef4022bd091eb25c8cc46333d410585b19 03-Sep-2008 Jérôme Duval <korli@users.berlios.de>

print errors when starting devices


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27308 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65e6fe82ad72f7d1586eebfe950f81284942024f 23-Aug-2008 Jérôme Duval <korli@users.berlios.de>

better check the size of the chars table for keymaps. this avoids crashing in #2659.
dunno why the keymap is invalid though


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97686ecc7aa61554f563002dd43b2ef8b3b3da76 22-Aug-2008 Jérôme Duval <korli@users.berlios.de>

also sanitize events added by filters, to be checked with methods too.
this fixes bug #2611


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27162 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 264df95726db19d9f7c7f3627cb9bc3f354d76c0 08-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

All input device add-ons should already do this, but make sure that
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


# e4ddc13a401fc23c07fac3a0f394c764cc6e574d 07-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Revert the bad part of my previous change. Wasn't supposed to exchange
the modifier key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25849 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f01a858b2a5e8030d68f782f5ba4a35659bc7af 06-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

* Check return code.
* Make check slightly more readable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25846 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b202f4e3da73d4c131355fcd82b792d153f84f6 13-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new header directory headers/private/system which is supposed
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


# 07a6286989fa8bb1f9fab151799815e5cad3a74b 10-May-2008 Jérôme Duval <korli@users.berlios.de>

B_ZENKAKU_HANKAKU doesn't need B_COMMAND_KEY (I misunderstood the patch).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25421 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba64d8928a8d7232cbea08357cf6d18d2bd1cf53 09-May-2008 Jérôme Duval <korli@users.berlios.de>

* added B_KATAKANA_HIRAGANA and B_ZENKAKU_HANKAKU (used in Japanese keymap)
* 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


# cea151dc3e14dfc97777297f0ed53c33cc86697b 06-May-2008 Jérôme Duval <korli@users.berlios.de>

B_SAFEMODE_DISABLE_USER_ADD_ONS is also a safe mode we now honor


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25327 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1174007caf16a1da0e3369b6955f427b8e0d41b5 12-Apr-2008 Rene Gollent <anevilyak@gmail.com>

Modified bin/keymap's -h option to write a variable to the generated header
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


# f2879f52a35d1def73091f1fa8a7271e11780293 29-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* The mouse message now also contains the x/y delta, if available, in the
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


# ddb44fda2c846e118436ee572f9587b11a22c2b8 19-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

Fixed the log file output when DEBUG=2. PRINT() is called from global
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


# d57634f732be41fbe05490df36e2c7510c260d0d 16-Jul-2007 Jérôme Duval <korli@users.berlios.de>

the keymap is now saved when key locks or key modifiers are changed
this fixes bug #1282


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ce678aa5f6bc1acc255cb029f3b91fbe1fbfa3e 29-May-2007 Stephan Aßmus <superstippi@gmx.de>

* implement conversion of absolute mouse coordinates (0..1) in device
messages to normal screen coordinates



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21274 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2617d83e7672c22fb7ca2ab7ec31d4af2950f07c 26-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Damn, forgot to include these two in r19968. This should fix the build again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19973 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ca64e48861582e4abcb85af81a069c89e1e3ec6 05-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19712 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6ead04161d2200fbe8e6a2506ad913da76134e1 13-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Removed some debugging lines.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19510 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 252f4767828ef4564f9fcedca981234e26e7bd32 12-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Added some needed stdio.h includes. I don't know what magic was used to compile
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


# 499aacdd0a020783a81e0d15a21bb2a4be4abeea 15-Nov-2006 Ryan Leavengood <leavengood@gmail.com>

Fixed bugs #177 and #180 by adding code to notify the input_server that the
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


# 158893b903a189d911cafc4ada75808672f0b6b0 29-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

The input_server now removes all B_INPUT_METHOD_EVENTS when the target view is
not input method aware.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b735e46de3a1b11341c8b52f283f07b7e9a9b34c 25-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Extended input method protocol a bit: you can now set "be:inline_only" to true, which
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


# 7ee49d9f646112a845e1a512b9231682be4e81c8 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8703696801ccb3ca38a27466a22c67dbcc2ccd4e 07-Jul-2006 Jérôme Duval <korli@users.berlios.de>

input_server saves its settings on change, sending itself a 'Save' request message


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18052 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43d3560b2582ab3c13766d432e2cd16bebf76eec 03-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* As the generated SystemKeymap source is used as a header, I renamed the
generated file from SystemKeymap.cpp to SystemKeymap.h.
* The keymap was even compiled into the input_server twice, as it was also
listed as source file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17711 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8467d6ba1214f36708f6339fde811de6045e45e 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* Further improved error handling in class Keymap.
* Improved header output, it now looks a lot nicer.
* Fixed style issues of that header, too: replaced "s" prefix with the
correct "k" prefix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17690 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bdbd1cb4412cb21b5c6ddbec72bd7f151d3f09cf 11-Mar-2006 Michael Lotz <mmlr@mlotz.ch>

Removing the USING_MESSAGE4 define.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16710 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 059b715043eb9beaa0f9683f133aeb6ef5639026 08-Mar-2006 Jérôme Duval <korli@users.berlios.de>

Patch from barber (part of bug #141):
better handling of method events


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fbe9b0b6eb99b277ef1afc5d54340437d375d847 13-Feb-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

This fixes bug #149.
Input server now saves keyboard typematic settings whenever they are modified,
instead of wating until it is shutdown (which never happens, either the
system will crash, or the input_server will stay active after a normal shut down)
Same problems might apply to mouse and keymap settings.
Input server shutdown handling should be reviewed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36077365d1937b14e83635aff89fce55602cb9e8 11-Feb-2006 Jérôme Duval <korli@users.berlios.de>

also copy modifiers and state in SanitizeEvents as we need them there
change MethodizeEvents to actually handle the method queue


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d0b5dc1608518f0b61e4c4eabc602cb135ceb12 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fix debug build
avoid allocating a BMessage in InitKeyboardMouse, as reported in bug #140


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16346 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10214ec48fd8c9cf1798d7178be668826a4b1da5 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

hopefully taken B_INPUT_METHOD_STOPPED into account


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16325 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3ea345d207303c00111a9b498e250ea40eda138 28-Nov-2005 Jérôme Duval <korli@users.berlios.de>

starting a running device or stopping a stopped device isn't allowed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b64aa64721fbedc3c3a354778d259aecf9d4389 28-Nov-2005 Jérôme Duval <korli@users.berlios.de>

hopefully fixed iroster behavior


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26b02ddc808ad610a35d4666fb694a3b3ce4b997 26-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

The input_server is now notified when the screen resolution is changed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4c57bd573ee8a40d198e78d6cd42cbcd5e212bec 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Fix for compilation with the new messaging code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15048 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a67c93f8e92bfbac8fd786831e0d75d3e7796c3 17-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Turns out B_RELEASE_ALL just works as expected - it was a deadlock by design; when the
cursor thread didn't call acquire_sem() fast enough, it would never get released by
B_RELEASE_ALL (as that only releases all waiting threads), and thus, waited forever
for the semaphore to be released again.
On the other side, the input_server didn't call release_sem() anymore, since the
cursor thread still didn't read out the data after the last release...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15014 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b120ea94a183163116326c5243719ba2c6798de 18-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Turns out there were a couple of problems:
* RootLayer still set the mouse cursor...
* mixed up "x" and "y" in the cursor thread
* but that didn't get noticed, as B_RELEASE_ALL doesn't seem to work
(will look into that next)!

The cursor finally works as good as expected in Qemu :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7598223274c44c551f1ed581030e6ed5268fe68 18-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* the new input event dispatcher is now actually used, although it doesn't
distribute any messages to the clients yet.
* removed the working thread from RootLayer - for now, its event handlers are
still called using input filters in the new event dispatcher, though (to
get things started).
* ServerApp is now using a BMessenger to identify its client, and no longer
stores the port/token separately.
* the input_server handshake is a bit simpler now, as it can now just reply
to the app_server message, removed unused code from ServerProtocol.h
* calmed down the MultiLocker (it always printed thread statistics on startup,
because it's compiled in debug mode).
* removed the cursor thread stuff from AppServer.cpp
* the new event dispatcher now uses a cursor thread when supported (only in
native mode, not in the test environment), although it improves cursor
movement under Qemu, the effect is not as good as expected - this might
need some more investigations (might just be a thread priority problem).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15012 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d5caf598e7d101043a8022c69a29562bbe7d403 16-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed gcc 4 build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14973 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 128ddaa3e3ee40b5c8f74b1bdd816bacdd00f272 16-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Some work on the input_server:
* Rewrote event handling: instead of writing every single device message to
the event port, they are just queued in a list, and the event loop is only
notified if necessary (ie. if a notification has been sent already, new
events are just queued up until the input_server found the time to process
them).
* This also fixed a big memory leak: every message processed by EnqueueDeviceMessage()
(IOW every key or mouse event) was leaked!
* no longer abuses gInputMethodListLocker to lock the method event queue
(it now uses the standard event queue lock).
* removed the completely superfluous, weird and decelerating event caching mechanism
* tried to find a better distribution of work between _SanitizeEvents(),
_MethodizeEvents(), and _DispatchEvents().
* HandleSetMousePosition() now only does what it's supposed to do (this currently
causes the mouse to jump at the start, though).
* now uses the "Message4" for message sending if available.
* fixed "kb_mouse_settings.h" to include all headers it needs.
* some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14966 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c17d025516c9c1a271394f8ef618d842e68c716 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Introduced a new handshake between input_server and app_server, and some
temporary handling code in the app_server.
* RootLayer no longer creates the input_server messaging port - this is now
the responsibility of the input_server.
* Moved AS_CREATE_[OFFSCREEN_]WINDOW from ServerApp::_MessageLooper() to
_DispatchMessage().
* The RootLayer thread is now started as soon as the input_server is there.
* removed or disabled any input_server stuff in the AppServer class.
* removed old message commmands to the app_server.
* Removed the R5_CURSOR_COMM and HAIKU_APPSERVER_COMM definitions: the
input_server is now automatically built correctly depending on the target.
* InputServer::EventLoop() plays now safe and checks for error conditions.
* InputServer::EnqueueDeviceMessage() seems to leak memory, added TODO about
this.
* InputServer event loop messaging uses ports for inner-app communication - why?
* The InputServer event loop thread is no longer killed on exit, it just quits
when its port is gone.
* Minor cleanup in input_server.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a512a89b27c432abfcfccec78c5067ff45eb089b 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed some memory leaks, fChars was never freed.
Now uses (nothrow) for fChars and checks if the allocation succeeded.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9514d2e5e6d5f285d06e3628b0062ea945ee6d21 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* introduced a global gInputServer object, so that you don't need to cast the
be_app object anymore.
* fixed some missing locks for the input device list.
* moved the input device list into the InputServer object - didn't make a lot
of sense the way it was done before. Also moved registering/unregistering
into the InputerServer class.
* Made the InputDeviceListItem class a bit more useful and encapsulated.
* cleanup, removed empty function documentation stubs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14946 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec12c6fe6f0ea739675b1a299958b5606b0cd6ba 04-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Don't let ifdef's confuse the editor's function lookup.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14693 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e5b79a7c6cc0dc4556d9aa580171318568a56d0 25-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Send BMessages to Haiku's app_server instead of PortLink ones. This is untested, but should work fine.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c495f81aab89a33e3fedbac4791c42987738af1c 06-Oct-2005 Jérôme Duval <korli@users.berlios.de>

added some debug PRINT
inited fChars to null


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14326 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b39b6ee51cb9da9e269bd81789c71855c2ee6a46 13-Jul-2005 Jérôme Duval <korli@users.berlios.de>

DispatchEvent is now using when field from input message instead of real_time_clock()
Also watchs B_UNMAPPED_KEY_DOWN for Alt+Space (input method change)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13656 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd10337fd005a67a4947714fdeecf2121485b91d 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f04728a75161798697cd374012fad4d60540bfe 28-Apr-2005 Jérôme Duval <korli@users.berlios.de>

Reworked different build modes
Uncomment in Jamfile "#APPSERVER_TEST_MODE = 1 ;" to test app_server with input_server
Uncomment in InputServer.h "//#define R5_CURSOR_COMM" to enable cursor comm when appserver BPortlink comm is used
Default mode is R5 comm if TARGET != haiku
and appserver BPortLink comm when TARGET = haiku

For APPSERVER_TEST_MODE, make sure to change the ViewInputDevice path in AddOnManager.cpp
To test with app_server, enable LaunchCursorThread() in AppServer.cpp and uncomment "#define INPUTSERVER_TEST_MODE 1" in ViewHWInterface.cpp
Also make sure to change the input_server path in AppServer.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12493 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd5ac83a1a6818c30c94cd570cdd09bac0942893 16-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Use one BPortLink (fAppServerLink) instead of always creating a new one to send events to the app_server.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12427 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ccce07004587a96d60f1a2ab782593acb8a784e8 12-Apr-2005 Jérôme Duval <korli@users.berlios.de>

As Haiku BScreen::Frame() doesn't work in our current state, we use a fake Frame
input_server now sends well filled BMessages in Haiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 688204180d4390895edf1a57d5542b77f50df96a 26-Mar-2005 Adi Oanca <adioanca@nowhere.fake>

No need to send string length on B_KEY_DOWN/UP

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12015 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1530ab8e8a40063102aa9b45e563dab5cc0976e 25-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

When sending native keydown/keyup events the delivery of the string was broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12009 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a5e88b50193b76128acc6ba4ed629d85e74f65 10-Feb-2005 Jérôme Duval <korli@users.berlios.de>

introduced a R5 style communication flag


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a77de570a2eb8569a65e3d16e153745ce3d57348 28-Jan-2005 Jérôme Duval <korli@users.berlios.de>

useful pieces of code


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11107 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4e9b6a7a418ab112a552ce68dabf93b4ec163ae 25-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

The input_server now works on R5 and on Haiku (depending on COMPILE_FOR_R5).
Fixed two minor warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11063 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d64143151359a79f229e5ba44113a7715284759 25-Jan-2005 Jérôme Duval <korli@users.berlios.de>

added code for a bottom line window, not working


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1c75e39b392cf0fb49b9513f9daf2d88f986ce3 13-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Fixed EnqueueMethodMessage() so that Eventloop port is released
WatchPort process adapted to this behavior :
we go through message processing without messages. in fact method messages musn't be processed as device messages.
Even if buggy, Canna method is now working with StyledEdit (with Input Method aware views typically).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10712 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3c78aded74b54ae683822c453d0a7989264e40f 10-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Added input method key switching (alt+space)
Added code to enable deskbar replicant loading after input_server is started


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91f83005367e8c286cde335523da6b5a68a7c552 10-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Add some method switching support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10656 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 034a4d2e0da6e6d962f3fd27b7079c2641bfa663 07-Jan-2005 Jérôme Duval <korli@users.berlios.de>

we now keep a copy of modifiers and key_states around to be able to fill incomplete messages and get_key_info requests
because of this, 4th bug from axeld is fixed, and R5 Keymap preferences is now working correctly


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10613 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a056136c4c9cff69098f41e2a389619968ae862f 20-Nov-2004 shatty <shatty@nowhere.fake>

address compiler warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10078 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 215b876d6ed58d8eae4e4207cb613854ed41b2e3 28-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Improved method support : method replicant is working
Readding of replicant or reset of method replicant menu still to be done


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c39377044471916bdc675bf3d19f9faa7cc0446e 26-Oct-2004 Jérôme Duval <korli@users.berlios.de>

fixed devices showed as stopped when they were running


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f40fc44ef4583ecfa08c45c6b02dacce687b7b00 22-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added initial method addons support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9445 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ddf8a114632dbcb87498e308fcbb3ad953865d3c 13-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Fixed restart problem


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90c2fee933c9ca839055f2f862874f6805f9e169 07-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Fixed events filtering


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9252 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a279d91afc46cb1ca2caab5971a1e2ea11c8c17 06-Oct-2004 Jérôme Duval <korli@users.berlios.de>

changed signature to original, needed for compatibility
change AddOnManager deletion


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9226 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca75e4d057d1ccc7b8cf60a0e7035bb30d59cd62 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added a looper to handle devices related requests
Before it was deadlocking when an addon asks for a new keymap on a notification message


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a813abdc948f9acea87374aecacead8e174bbaa 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Changed some printf to PRINT macro
Now uses BScreen to constrain mouse cursor
Now handles gracefully screen resolution changes
Yeah it works!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9213 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6ec7f99727c64e8a1dbf6deef0dd471a0348cc3 03-Oct-2004 Jérôme Duval <korli@users.berlios.de>

removed unused field


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9174 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 963e8ab1a9aa18cf28e34af39c64303053ad9113 03-Oct-2004 Jérôme Duval <korli@users.berlios.de>

added support for R5 app_server communication


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 549360d8220aecd0df87fd3df38ff43030efcc4b 01-Oct-2004 Jérôme Duval <korli@users.berlios.de>

i don't even wonder why i have to do this, i simply do it


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9150 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bc892a8da15a46a86ee816d7e36750a49d2127f 01-Oct-2004 Jérôme Duval <korli@users.berlios.de>

added some support for R5 app_server communication


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33140fa00143419ea8a525a6972fc62a376b8d9e 29-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added file debug output for daemon mode
added some R5 app_server communication init


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9112 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3278758030dd1ee0de6f4f9f6cc3803e7d5e0021 26-Sep-2004 Jérôme Duval <korli@users.berlios.de>

change field name of mouse position
change device message handling a bit


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9065 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0548f831d5ab3d5948d19a7b5d9e4ed760332eb1 02-Sep-2004 Jérôme Duval <korli@users.berlios.de>

complete register and unregister


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8807 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83589f8917e19335ee1cc176993d2115ee2242c5 02-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added BInputDevice server side
added set_modifier_key server side
now changes locks in the current keymap, it can then be reloaded


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1706cd270ceff8471b1165fb0bcfec2cd1a56b6 31-Aug-2004 Jérôme Duval <korli@users.berlios.de>

minor fix


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8755 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dbf6aa568b5236dfa032891867969431bf217a97 31-Aug-2004 Jérôme Duval <korli@users.berlios.de>

integration of the system keymap, loaded when settings one loading fails


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8752 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f907d7292af7f0247786148e2bb2ad559ee74267 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

now only system addons are loaded when safemode is true


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8720 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6346dac055801db556b07ffc552d3981d59e9968 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

implemented safemode info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8719 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 00740cc502b4158b05917e6773cf949f9514106f 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Integrated MouseSettings and KeyboardSettings
update license info
clean up
removed node monitoring messages handling
fixed several message handlers


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8710 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97c19e92aac7938131090f96904116c0d768d0ef 27-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Complete DeviceManager, need testing though.
Fix crash with TeamMonitor when quitting.
Moved app signature to a common place


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6e6fa57fb5940312dffc51461250f3b85b457cf3 26-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added a device manager for devices monitoring


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cba20309fd6353fad9e9938746e902bd58ccb183 26-Aug-2004 Jérôme Duval <korli@users.berlios.de>

minor debug info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6c0b53ddc2f5d877499395c9aa15b262339c67d 23-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added filtering. Commented now former unused addon code.
We now load and manage device and filter addons successfully.
Tested with nervous and InputRecorder devices and InputRecorder filter.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c78e2a47c0c760d8991907c09d62a4a98ec451b2 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added support for COMPILE_FOR_R5 flag, it enables to launch input_server without libopenbeos.so


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8612 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bcacea13ec16b2158231ff48f22db10dd17d3bc3 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

messages reply with status


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 173f7185f40ac1e71a48c1d0de9c5523afb993ff 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

AddOnManager improved, initializations, message handling improved


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8610 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5359f0d4ccab8979024dcbb7435ed6f272f2a677 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

added an addon manager directly from our media server, not finalized


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de79eb2a1ce7541b26c1b31826041b0fbe1660a4 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

code clean up, added addon monitoring code from storage kit


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8608 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 407d7a9aa9d74b0a77fb6e250ab13dd2b6ad601f 18-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Clean up, added missing message handlers


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a9fed59c3b7b1947ec5cafb2f6e71807563e784 11-Aug-2004 DarkWyrm <darkwyrm@gmail.com>

I hate forgetting to check in files. :(


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8552 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b2445b2ce7787f60b335cf8a46be8e1fd49a2c0 29-Jul-2004 Jérôme Duval <korli@users.berlios.de>

input_server messages ids are shared : they go to private headers
#include fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8506 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2cd26ed9417778f2dcc8ab130bf3dd515b421f36 18-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Changes to integrate with app_server:
Added code to send more than just mouse move messages
Removed the input_server's dependency on local PortLink sources
Broke the BeIDE project by removing the PortLink dependency (oh well) -- see me for a fix if you run into problems building locally


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5089 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5894646a95a923faafe4c3a5bd0fd9f07d4719a1 30-Sep-2002 Michael Phipps <michaelphipps@nowhere.fake>

Per Jason.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1314 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f85924fecf9a2c7e83d319c8aec5d1d4e80693f2 12-Aug-2002 Michael Phipps <michaelphipps@nowhere.fake>

This fleshes out the HandleSetMousePosition() and the input_server now tracks the current position of the mouse cursor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@729 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e9a5e3f5ccb21665cae246be40413eeb06df7ae2 22-Jul-2002 Michael Phipps <michaelphipps@nowhere.fake>

Change per Jason Vandermark.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2296a4d62e7e6e87ec781e91a1362769fc56b39b 17-Jul-2002 Michael Phipps <michaelphipps@nowhere.fake>

Here is the modified InputServer.cpp file which includes the casting
change for the DispatchEvent() function. This will allow the input_server
to work with the current proto6 code in the cvs tree. It may even work
with the existing proto5.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@297 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c8b733d03f81aa3ed7f85287d6ecfee9c7e1fef 17-Jul-2002 Michael Phipps <michaelphipps@nowhere.fake>

Checkin, per Jason Vandermark.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@294 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a380120846174213ccce9c4aab0dda17c72083 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96