diff options
| author | Eli Zaretskii | 2000-07-31 06:38:19 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 2000-07-31 06:38:19 +0000 |
| commit | 8f190436eaf7b7b8eaabb2c7ca4ac31fd581159c (patch) | |
| tree | e9fabcd7cca76f3a0bd79d7138532ee01c27c3f2 | |
| parent | 16425c4a98ba4be9d7bc624d554b40785bdf7613 (diff) | |
| download | emacs-8f190436eaf7b7b8eaabb2c7ca4ac31fd581159c.tar.gz emacs-8f190436eaf7b7b8eaabb2c7ca4ac31fd581159c.zip | |
(Fmsdos_set_mouse_buttons, syms_of_msdos): New functions.
(syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
| -rw-r--r-- | src/msdos.c | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/src/msdos.c b/src/msdos.c index 64e6c3cd2b0..e0154a7f7ce 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -168,6 +168,38 @@ mouse_off () | |||
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | static void | 170 | static void |
| 171 | mouse_setup_buttons (int n_buttons) | ||
| 172 | { | ||
| 173 | if (n_buttons == 3) | ||
| 174 | { | ||
| 175 | mouse_button_count = 3; | ||
| 176 | mouse_button_translate[0] = 0; /* Left */ | ||
| 177 | mouse_button_translate[1] = 2; /* Middle */ | ||
| 178 | mouse_button_translate[2] = 1; /* Right */ | ||
| 179 | } | ||
| 180 | else /* two, what else? */ | ||
| 181 | { | ||
| 182 | mouse_button_count = 2; | ||
| 183 | mouse_button_translate[0] = 0; | ||
| 184 | mouse_button_translate[1] = 1; | ||
| 185 | } | ||
| 186 | } | ||
| 187 | |||
| 188 | DEFUN ("msdos-set-mouse-buttons", Fmsdos_set_mouse_buttons, Smsdos_set_mouse_buttons, | ||
| 189 | 1, 1, "NSet number of mouse buttons to: ", | ||
| 190 | "Set the number of mouse buttons to use by Emacs.\n | ||
| 191 | This is useful with mice that report the number of buttons inconsistently,\n | ||
| 192 | e.g., if the number of buttons is reported as 3, but Emacs only sees 2 of\n | ||
| 193 | them. This happens with wheeled mice on Windows 9X, for example.") | ||
| 194 | (nbuttons) | ||
| 195 | Lisp_Object nbuttons; | ||
| 196 | { | ||
| 197 | CHECK_NUMBER (nbuttons, 0); | ||
| 198 | mouse_setup_buttons (XINT (nbuttons)); | ||
| 199 | return Qnil; | ||
| 200 | } | ||
| 201 | |||
| 202 | static void | ||
| 171 | mouse_get_xy (int *x, int *y) | 203 | mouse_get_xy (int *x, int *y) |
| 172 | { | 204 | { |
| 173 | union REGS regs; | 205 | union REGS regs; |
| @@ -4517,20 +4549,7 @@ dos_ttraw () | |||
| 4517 | { | 4549 | { |
| 4518 | have_mouse = 1; /* enable mouse */ | 4550 | have_mouse = 1; /* enable mouse */ |
| 4519 | mouse_visible = 0; | 4551 | mouse_visible = 0; |
| 4520 | 4552 | mouse_setup_buttons (outregs.x.bx); | |
| 4521 | if (outregs.x.bx == 3) | ||
| 4522 | { | ||
| 4523 | mouse_button_count = 3; | ||
| 4524 | mouse_button_translate[0] = 0; /* Left */ | ||
| 4525 | mouse_button_translate[1] = 2; /* Middle */ | ||
| 4526 | mouse_button_translate[2] = 1; /* Right */ | ||
| 4527 | } | ||
| 4528 | else | ||
| 4529 | { | ||
| 4530 | mouse_button_count = 2; | ||
| 4531 | mouse_button_translate[0] = 0; | ||
| 4532 | mouse_button_translate[1] = 1; | ||
| 4533 | } | ||
| 4534 | mouse_position_hook = &mouse_get_pos; | 4553 | mouse_position_hook = &mouse_get_pos; |
| 4535 | mouse_init (); | 4554 | mouse_init (); |
| 4536 | } | 4555 | } |
| @@ -5224,6 +5243,7 @@ nil means don't delete them until `list-processes' is run."); | |||
| 5224 | defsubr (&Smsdos_long_file_names); | 5243 | defsubr (&Smsdos_long_file_names); |
| 5225 | defsubr (&Smsdos_downcase_filename); | 5244 | defsubr (&Smsdos_downcase_filename); |
| 5226 | defsubr (&Smsdos_remember_default_colors); | 5245 | defsubr (&Smsdos_remember_default_colors); |
| 5246 | defsubr (&Smsdos_set_mouse_buttons); | ||
| 5227 | } | 5247 | } |
| 5228 | 5248 | ||
| 5229 | #endif /* MSDOS */ | 5249 | #endif /* MSDOS */ |