[haiku-appserver] Re: [Haiku-commits] r14131 - haiku/trunk/src/servers/app
- From: Adi Oanca <adioanca@xxxxxxxxx>
- To: haiku-commits@xxxxxxxxxx
- Date: Thu, 08 Sep 2005 23:12:43 +0300
Hi Stephan,
Stephan AÃmus wrote:
Hi Adi,
I see a problem with this concept, which is that under R5, messages generated
by an input_server device get through to the window with all the "custom"
fields that the device has put into the message.
I did not address this part in this small redesign, but I am very glad
that you, the graphic artist, realized there's something wrong with
input message. :-)
A good example of this is a tablet driver.
Yup. I guess you use such a thing, isn't it?
I am absolutely sure, that whatever information the tablet
driver decides to add to the message is received by the client window.
Yup. I looked into BeBook, it's confirmed.
By
extracting specific information from the input_server message to create a
PointerEvent in the app_server, then later creating a new message that is
sent to the client, any additional information is "filtered out".
Yes, bad!
Another problem with the current code is that the message is send to the
client in the RootLayer thread. This should be re-designed so that the actual
sending is done by the ServerWindow thread. The RootLayer should rather put
the event messages into a queue maintained by the ServerWindow. This way, it
would also be possible to drop less important messages in the ServerWindow
thread. Suppose you have two different clients registered for the same input
events. One is fast, responsive and generally well-behaving, the other is
slow as a dog (sorry dogs) and takes for ever to process messages. You would
want to send less messages to the slow client. Therefor it would be best to
send messages by the ServerWindow thread in the pace that the client can keep
up with.
You are right, this problem should be resolved. But I not sure the
solution you proposed is good. That's because messages that come from
input_server are BMessages and the ones that come to ServerWindow are
PortLink messages. And you can't use the same queue to receive both
types of messages.
I think we need another thread that should receive BMessages from
input_server, handle them, drop some of them if required by the pointed
BView, then forward to the appropriate BWindow-BView.
Opinions?
P.S. And sorry I cannot contribute code myself right now...
That's OK, we all know about those times. :-)
bye,
Adi.
- Follow-Ups:
Other related posts:
- » [haiku-appserver] Re: [Haiku-commits] r14131 - haiku/trunk/src/servers/app
- » [haiku-appserver] Re: [Haiku-commits] r14131 - haiku/trunk/src/servers/app
Hi Adi,
I see a problem with this concept, which is that under R5, messages generated by an input_server device get through to the window with all the "custom" fields that the device has put into the message.
Yup. I guess you use such a thing, isn't it?
Yup. I looked into BeBook, it's confirmed.
Yes, bad!
That's OK, we all know about those times. :-)
bye, Adi.