#
057c8708 |
|
26-Oct-2013 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
Move B_MOUSE_IDLE generation to app_server. * BWindow used to generate the B_MOUSE_IDLE events by sending a delayed message with a one-shot BMessageRunner to itself. Every creation and deletion of BMessageRunners causes synchronous messaging between the application under the mouse cursor and the registrar. This creates large amounts of calls to set_port_owner() in the kernel whenever moving the mouse. * Now, B_MOUSE_IDLE is sent by the cursor loop inside the app_server instead. When the mouse wasn't moved for the tooltip delay time, it inserts a B_MOUSE_IDLE message into the event stream. * The tooltip delay thus becomes a system-wide constant and is not configurable per-application anymore (no code currently in the Haiku repo makes use of that anyhow).
|
#
95530739 |
|
17-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Reworked EventDispatcher::SendFakeMouseMoved() after an idea by Stephan that solves most app_server locking headaches: it now works asynchronously, and therefore doesn't need to lock the EventDispatcher anymore. * EventStreams now allow to inject messages into the stream to allow the above functionality. * InputServerStream::GetNextEvent() no longer returns when there is no event. * Desktop::ActivateWindow() now locks all windows before checking the workspaces of the windows, fixing a race condition that could lead to Window::Foremost() being called for a window that isn't on the current workspace, leading to a crash. * I currently cannot access Trac, but I recall there should be an open bug report about this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28224 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
92b292f5 |
|
10-Jan-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented B_NO_POINTER_HISTORY. Window moving/resizing uses this mechanism as well now, and makes quite a difference in Qemu. Not tested for standard BViews, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15907 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
|
#
ae3ba51f |
|
20-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some minor fixes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15042 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
|
#
08f35604 |
|
17-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The basics of the new event handling - not yet connected to anything, and therefore neither used nor tested. It's not even complete yet (support for Set[Mouse]EventMask() is missing), but it will get there :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14990 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
057c8708f216514c6874b7c49f6ca170760b3cf0 |
|
26-Oct-2013 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
Move B_MOUSE_IDLE generation to app_server. * BWindow used to generate the B_MOUSE_IDLE events by sending a delayed message with a one-shot BMessageRunner to itself. Every creation and deletion of BMessageRunners causes synchronous messaging between the application under the mouse cursor and the registrar. This creates large amounts of calls to set_port_owner() in the kernel whenever moving the mouse. * Now, B_MOUSE_IDLE is sent by the cursor loop inside the app_server instead. When the mouse wasn't moved for the tooltip delay time, it inserts a B_MOUSE_IDLE message into the event stream. * The tooltip delay thus becomes a system-wide constant and is not configurable per-application anymore (no code currently in the Haiku repo makes use of that anyhow).
|
#
955307393fad754aaff5d372cb1cc139e6c4159c |
|
17-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Reworked EventDispatcher::SendFakeMouseMoved() after an idea by Stephan that solves most app_server locking headaches: it now works asynchronously, and therefore doesn't need to lock the EventDispatcher anymore. * EventStreams now allow to inject messages into the stream to allow the above functionality. * InputServerStream::GetNextEvent() no longer returns when there is no event. * Desktop::ActivateWindow() now locks all windows before checking the workspaces of the windows, fixing a race condition that could lead to Window::Foremost() being called for a window that isn't on the current workspace, leading to a crash. * I currently cannot access Trac, but I recall there should be an open bug report about this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28224 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
92b292f540c9d73b8fe35519a82ad2b86f8974ab |
|
10-Jan-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented B_NO_POINTER_HISTORY. Window moving/resizing uses this mechanism as well now, and makes quite a difference in Qemu. Not tested for standard BViews, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15907 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
|
#
ae3ba51fc108483e85d62ebc08f102c63df7d329 |
|
20-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some minor fixes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15042 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
|
#
08f35604b00adf5e47a170f586fa91ee5d53c4a5 |
|
17-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The basics of the new event handling - not yet connected to anything, and therefore neither used nor tested. It's not even complete yet (support for Set[Mouse]EventMask() is missing), but it will get there :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14990 a95241bf-73f2-0310-859d-f6bbb57e9c96
|