bug-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Text Input Management System


From: Kazunobu Kuriyama
Subject: Text Input Management System
Date: Mon, 28 Jul 2003 18:54:04 +0900
User-agent: Mozilla/5.0 (X11; U; Linux i686; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1

WARNING: This is under development and thus for experimental use only.
        Before trying it, please read the following intensively.

This is an effort to fully implement the Cocoa text input management system (TIMS)
in GNUstep:
http://developer.apple.com/documentation/Cocoa/Conceptual/InputManager/index.html

The implementation I put forward is far from practical use. Nonetheless, I'd like to put forward it to you to hear your opinions before going ahead. Rather, I absolutely need your opinions to make up my mind to go ahead or do away with such an effort, because, once GNUstep decides to adopt the Cocoa text input management system, the current implementations of text editable objects plus NSResponder probably need to be modified a little bit so that they can interact with a running input server. Without a consensus of the community and supports from the development team, my project is likely to be
in vain.

To try the new TIMS, you need to reinstall -gui and install the input server program GSInputServer. After applying the patch gui.patch to the whole -gui source tree, do a usual build and installation procedure. The input server program can be installed in a usual way; it will be installed in GNUSTEP_USER_ROOT/Applications. Then, say,
   $ openapp GSInputServer
   $ openapp Ink
to see how it works.

Before playing with it, make sure you can recover the genuine -gui at any time. I can't guarantee the patched -gui always works fine. Again, that is for experimental use only. In fact, the current implementation doesn't understanding even simple key
bindings such as Control-h (This is one of the TODOs).

The following are TODOs I recognize. If someone could suggest me how to fix them,
I'd greatly appreciate it.

(1) According to the Cocoa document, an input server program should be put under Library/InputManagers, not under Applications. I don't know how to do this with -make. (If I do this with hand-crafted Makefile, is it possible to invoke
   an input server program with openapp?)
(2) Keyboard's autorepeating causes a segmentation fault. I guess this is due to my naive server-client programming because separate keystrokes look safe. (3) Elaborate the implementation of NSInputServer so that it can deal with multiple
   clients in a safer way.

By the way, when I invoked Ink, I got a lot of messages like 'Ink[PID] autorelease is called without pool for object (address) of class NS* in thread <NSThread: address)' It conceivably relates to the IPC between the client and the input server. On the other hand, not all applications show this phenomena. Does anyone know how to fix this?

Thank you.

Attachment: gui.patch.gz
Description: application/gzip

Attachment: GSInputServer.tar.gz
Description: application/gzip


reply via email to

[Prev in Thread] Current Thread [Next in Thread]