⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 003_wheel_000

📁 gpm-1.20.0.tar.gz
💻
字号:
diff -ruN -x Makefile -x configure -x config.cache -x config.h -x *.[178] -x gpm.info -x gpmdoc.ps -x gpmdoc.txt -x gpm-root.c -x stamp-h -x *.elc gpm-1.19.5.orig/src/gpm.c gpm-1.19.5/src/gpm.c--- gpm-1.19.5.orig/src/gpm.c	Thu Oct  4 23:33:48 2001+++ gpm-1.19.5/src/gpm.c	Thu Oct  4 23:33:37 2001@@ -446,6 +446,7 @@   else     {     event->dx=event->dy=0;+    event->wdx=event->wdy=0;      nEvent.modifiers = 0; /* some mice set them */     FD_ZERO(&fdSet); FD_SET(fd,&fdSet); i=0;@@ -488,6 +489,10 @@         event->dx = (nEvent.x) - (event->x);         event->dy = (nEvent.y) - (event->y); 	}++      /* propagate wheel */+      event->wdx += nEvent.wdx;+      event->wdy += nEvent.wdy;        select(fd+1,&fdSet,(fd_set *)NULL,(fd_set *)NULL,&timeout/* zero */);       }diff -ruN -x Makefile -x configure -x config.cache -x config.h -x *.[178] -x gpm.info -x gpmdoc.ps -x gpmdoc.txt -x gpm-root.c -x stamp-h -x *.elc gpm-1.19.5.orig/src/headers/gpm.h gpm-1.19.5/src/headers/gpm.h--- gpm-1.19.5.orig/src/headers/gpm.h	Wed Sep 12 17:07:34 2001+++ gpm-1.19.5/src/headers/gpm.h	Thu Oct  4 23:33:37 2001@@ -115,6 +115,7 @@   unsigned char buttons, modifiers;  /* try to be a multiple of 4 */   unsigned short vc;   short dx, dy, x, y;+  short wdx, wdy;   enum Gpm_Etype type;   int clicks;   enum Gpm_Margin margin;diff -ruN -x Makefile -x configure -x config.cache -x config.h -x *.[178] -x gpm.info -x gpmdoc.ps -x gpmdoc.txt -x gpm-root.c -x stamp-h -x *.elc gpm-1.19.5.orig/src/mice.c gpm-1.19.5/src/mice.c--- gpm-1.19.5.orig/src/mice.c	Thu Oct  4 23:33:48 2001+++ gpm-1.19.5/src/mice.c	Thu Oct  4 23:33:37 2001@@ -359,16 +359,49 @@ /* m$ 'Intellimouse' (steveb 20/7/97) */ static int M_ms3(Gpm_Event *state,  unsigned char *data) {+  state->wdx = state->wdy = 0;+   state->buttons= ((data[0] & 0x20) >> 3)	/* left */ 		| ((data[3] & 0x10) >> 3)	/* middle */ 		| ((data[0] & 0x10) >> 4);	/* right */   state->dx=      (signed char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F));   state->dy=      (signed char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F));-  /* wheel (dz??) is (data[3] & 0x0f) */++  switch (data[3] & 0x0f) {+    case 0x0e: state->wdx = +1; break;+    case 0x02: state->wdx = -1; break;+    case 0x0f: state->wdy = +1; break;+    case 0x01: state->wdy = -1; break;+  }    return 0; } +static int R_ms3(Gpm_Event *state, int fd)+{+  char buf[4] = {0, 0, 0, 0};++  buf[0] |= 0x40;++  buf[0] |= ((state->buttons & GPM_B_LEFT) ? 0x20 : 0);+  buf[3] |= ((state->buttons & GPM_B_MIDDLE) ? 0x10 : 0);+  buf[0] |= ((state->buttons & GPM_B_RIGHT) ? 0x10 : 0);++  buf[1] = state->dx & ~0xC0;+  buf[0] |= (state->dx & 0xC0) >> 6;++  buf[2] = state->dy & ~0xC0;+  buf[0] |= (state->dy & 0xC0) >> 4;++  if (state->wdy > 0)+    buf[3] |= 0x0f;+  else if (state->wdy < 0)+    buf[3] |= 0x01;++  return write(fd,buf,4);+}++ /* M_brw is a variant of m$ 'Intellimouse' the middle button is different */ static int M_brw(Gpm_Event *state,  unsigned char *data) {@@ -499,6 +532,39 @@   return 0; } +static int M_imps2(Gpm_Event *state,  unsigned char *data)+{+  static int tap_active=0;     // there exist glidepoint ps2 mice+  state->wdx = state->wdy = 0; // Clear them..++  state->dx = state->dy = state->wdx = state->wdy = 0;++  state->buttons= ((data[0] & 1) << 2) // left+    | ((data[0] & 6) >> 1); // middle and right++  if (data[0]==0 && opt_glidepoint_tap) // by default this is false+    state->buttons = tap_active = opt_glidepoint_tap;+  else if (tap_active) {+    if (data[0]==8)+      state->buttons = tap_active = 0;+    else state->buttons = tap_active;+  }++  // Standard movement..+  state->dx = (data[0] & 0x10) ? data[1] - 256 : data[1];+  state->dy = (data[0] & 0x20) ? -(data[2] - 256) : -data[2];++  // The wheels..+  switch (data[3] & 0x0f) {+    case 0x0e: state->wdx = +1; break;+    case 0x02: state->wdx = -1; break;+    case 0x0f: state->wdy = +1; break;+    case 0x01: state->wdy = -1; break;+  }++  return 0;+}+ static int M_netmouse(Gpm_Event *state,  unsigned char *data) {   /* Avoid this beasts if you can.  They connect to normal PS/2 port,@@ -2096,14 +2162,14 @@            "", M_bare, I_pnp, CS7 | STD_FLG,                                 {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0},   {"imps2","Microsoft Intellimouse (ps2) - autodetect 2/3 buttons,wheel unused",-           "", M_ps2, I_imps2, STD_FLG,+           "", M_imps2, I_imps2, STD_FLG,                                 {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0},   {"exps2",   "IntelliMouse Explorer (ps2) - 3 buttons, wheel unused",            "ExplorerPS/2", M_ps2, I_exps2, STD_FLG,                                 {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0},   {"ms3", "Microsoft Intellimouse (serial) - 3 buttons, wheel unused",            "", M_ms3, I_pnp, CS7 | STD_FLG,-                                {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, 0},+                                {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, R_ms3},   {"netmouse",  "Genius NetMouse (ps2) - 2 buttons and 2 buttons 'up'/'down'.",             "", M_netmouse, I_netmouse, CS7 | STD_FLG,                                 {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0},

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -