All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans-Georg Thien <1682-600@onlinehome.de>
To: linux-kernel@vger.kernel.org
Cc: Alan Cox <alan@redhat.com>
Subject: Re: [RFC][PATCH] "Disable Trackpad while typing" on Notebooks withh a  PS/2 Trackpad
Date: Tue, 06 May 2003 00:48:13 +0200	[thread overview]
Message-ID: <3EB6EA2D.9050208@onlinehome.de> (raw)
In-Reply-To: <3EB19625.6040904@onlinehome.de.suse.lists.linux.kernel>

Hans-Georg Thien <1682-600@onlinehome.de> writes:

> The short story
> ---------------
> Apple MacIntosh iBook Notebooks computers have a nice feature that
> prevents unintended trackpad input while typing on the keyboard. There
> are no mouse-moves or mouse-taps for a short period of time after each
> keystroke. I wanted to have this feature on my i386 notebook ...

I have eliminated the use of a timer. The patch has been simple before, 
and now it is even more simple :)


diff -urN -X /tmp/dontdiff 
/usr/src/linux-2.4.20/Documentation/Configure.help 
/usr/src/linux/Documentation/Configure.help
--- /usr/src/linux-2.4.20/Documentation/Configure.help	Fri Nov 29 
00:53:08 2002
+++ /usr/src/linux/Documentation/Configure.help	Thu May  1 02:12:04 2003
@@ -17752,6 +17752,16 @@
    <ftp://gnu.systemy.it/pub/gpm/>) solves this problem, or you can get
    the "mconv2" utility from <ftp://ibiblio.org/pub/Linux/system/mouse/>.

+Disable trackpad while typing
+CONFIG_DISABLE_TRACKPAD_WHILE_TYPING
+  For people with a notebook that have a build in PS/2 trackpad.
+
+  It prevents unintended mouse moves and mouse taps while typing on
+  the notebook keyboard.
+
+  The majority of notebooks on the market have a PS/2 trackpad.
+  So you will probably say "Y" if you have a notebook with a trackpad.
+
  C&T 82C710 mouse port support (as on TI Travelmate)
  CONFIG_82C710_MOUSE
    This is a certain kind of PS/2 mouse used on the TI Travelmate. If
diff -urN -X /tmp/dontdiff /usr/src/linux-2.4.20/drivers/char/Config.in 
/usr/src/linux/drivers/char/Config.in
--- /usr/src/linux-2.4.20/drivers/char/Config.in	Fri Nov 29 00:53:12 2002
+++ /usr/src/linux/drivers/char/Config.in	Thu May  1 02:30:45 2003
@@ -170,6 +170,13 @@
  tristate 'Mouse Support (not serial and bus mice)' CONFIG_MOUSE
  if [ "$CONFIG_MOUSE" != "n" ]; then
     bool '  PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
+
+   if [ "$CONFIG_PSMOUSE" = "y" ]
+   then
+     bool '    Disable Trackpad while typing on Notebooks' 
CONFIG_DISABLE_TRACKPAD_WHILE_TYPING
+   fi
+
+
     tristate '  C&T 82C710 mouse port support (as on TI Travelmate)' 
CONFIG_82C710_MOUSE
     tristate '  PC110 digitizer pad support' CONFIG_PC110_PAD
     tristate '  MK712 touch screen support' CONFIG_MK712_MOUSE
diff -urN -X /tmp/dontdiff /usr/src/linux-2.4.20/drivers/char/pc_keyb.c 
/usr/src/linux/drivers/char/pc_keyb.c
--- /usr/src/linux-2.4.20/drivers/char/pc_keyb.c	Fri Nov 29 00:53:12 2002
+++ /usr/src/linux/drivers/char/pc_keyb.c	Tue May  6 02:07:27 2003
@@ -13,6 +13,11 @@
   * Code fixes to handle mouse ACKs properly.
   * C. Scott Ananian <cananian@alumni.princeton.edu> 1999-01-29.
   *
+ * Implemented the "disable trackpad while typing" feature. This prevents
+ * unintended mouse moves and mouse taps while typing on the keyboard on
+ * notebooks with a PS/2 trackpad.
+ * Hans-Georg Thien <1682-600@onlinehome.de> 2003-04-30.
+ *
   */

  #include <linux/config.h>
@@ -67,6 +72,11 @@
  static void aux_write_ack(int val);
  static void __aux_write_ack(int val);
  static int aux_reconnect = 0;
+
+#ifdef CONFIG_DISABLE_TRACKPAD_WHILE_TYPING
+static int last_kbd_event = 0; /* used to hold timestamp of last kbd 
event */
+#endif
+
  #endif

  #ifndef kbd_controller_present
@@ -430,6 +440,7 @@
  }


+
  static inline void handle_mouse_event(unsigned char scancode)
  {
  #ifdef CONFIG_PSMOUSE
@@ -449,6 +460,11 @@
  		return;
  	}

+#ifdef CONFIG_DISABLE_TRACKPAD_WHILE_TYPING
+        /* do nothing if time since last kbd event is less then 1Sec */
+        if ( abs(jiffies - last_kbd_event) < HZ ) return;
+#endif
+
  	prev_code = scancode;
  	add_mouse_randomness(scancode);
  	if (aux_count) {
@@ -467,8 +483,14 @@

  static unsigned char kbd_exists = 1;

+
  static inline void handle_keyboard_event(unsigned char scancode)
  {
+
+#ifdef CONFIG_DISABLE_TRACKPAD_WHILE_TYPING
+        last_kbd_event = jiffies;
+#endif
+
  #ifdef CONFIG_VT
  	kbd_exists = 1;
  	if (do_acknowledge(scancode))



  parent reply	other threads:[~2003-05-05 22:33 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3EB19625.6040904@onlinehome.de.suse.lists.linux.kernel>
2003-05-01 22:29 ` [RFC][PATCH] "Disable Trackpad while typing" on Notebooks withh a PS/2 Trackpad Andi Kleen
2003-05-05 22:48 ` Hans-Georg Thien [this message]
2003-05-06  9:04   ` Alex Riesen
     [not found] ` <mailman.1052174881.22701.linux-kernel2news@redhat.com>
2003-05-06  3:24   ` Pete Zaitcev
     [not found] <fa.pum5p2l.umu1r1@ifi.uio.no>
     [not found] ` <fa.ianmvqa.8le6bo@ifi.uio.no>
2003-05-02 11:44   ` Hans-Georg Thien
2003-05-02  9:41 Hans-Georg Thien
  -- strict thread matches above, loose matches on Subject: below --
2003-05-01 21:48 Hans-Georg Thien
2003-05-01 22:13 ` Måns Rullgård
2003-05-06  9:29 ` wwp
2003-05-06 11:27   ` Hans-Georg Thien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3EB6EA2D.9050208@onlinehome.de \
    --to=1682-600@onlinehome.de \
    --cc=alan@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.