To: Johannes Zellner Cc: vim-dev@vim.org Subject: patch 5.4n.13 (was: Mouse Mappings) In-Reply-To: Fcc: outbox From: Bram Moolenaar ------------ Johannes Zellner wrote: > works: > :nnoremap :echo "bla" > > works not: > :nnoremap :echo "bla" > > (same for insert mode mappings) > Any ideas ? > > Or: HOWTO map Using the GTK GUI? It has a mixup of modifiers for the mouse. Strange that nobody ran into this: Using results in ! Patch 5.4n.13 Problem: GTK: Using modifiers with the mouse didn't work. Solution: Use MOUSE_SHIFT/CTRL/ALT instead of MOD_MASK_SHIFT/CTRL/ALT, three times. Files: src/gui_gtk_x11. *** ../vim-5.4n/src/gui_gtk_x11.c Sun Jul 4 20:35:52 1999 --- src/gui_gtk_x11.c Wed Jul 7 18:26:03 1999 *************** *** 2541,2551 **** vim_modifiers = 0x0; if (event->state & GDK_SHIFT_MASK) ! vim_modifiers |= MOD_MASK_SHIFT; if (event->state & GDK_CONTROL_MASK) ! vim_modifiers |= MOD_MASK_CTRL; if (event->state & GDK_MOD1_MASK) ! vim_modifiers |= MOD_MASK_ALT; gui_send_mouse_event(button, x, y, repeated_click, vim_modifiers); if (gtk_main_level() > 0) --- 2549,2559 ---- vim_modifiers = 0x0; if (event->state & GDK_SHIFT_MASK) ! vim_modifiers |= MOUSE_SHIFT; if (event->state & GDK_CONTROL_MASK) ! vim_modifiers |= MOUSE_CTRL; if (event->state & GDK_MOD1_MASK) ! vim_modifiers |= MOUSE_ALT; gui_send_mouse_event(button, x, y, repeated_click, vim_modifiers); if (gtk_main_level() > 0) *************** *** 2617,2627 **** vim_modifiers = 0x0; if (event->state & GDK_SHIFT_MASK) ! vim_modifiers |= MOD_MASK_SHIFT; if (event->state & GDK_CONTROL_MASK) ! vim_modifiers |= MOD_MASK_CTRL; if (event->state & GDK_MOD1_MASK) ! vim_modifiers |= MOD_MASK_ALT; gui_send_mouse_event(MOUSE_RELEASE, x, y, FALSE, vim_modifiers); if (gtk_main_level() > 0) --- 2625,2635 ---- vim_modifiers = 0x0; if (event->state & GDK_SHIFT_MASK) ! vim_modifiers |= MOUSE_SHIFT; if (event->state & GDK_CONTROL_MASK) ! vim_modifiers |= MOUSE_CTRL; if (event->state & GDK_MOD1_MASK) ! vim_modifiers |= MOUSE_ALT; gui_send_mouse_event(MOUSE_RELEASE, x, y, FALSE, vim_modifiers); if (gtk_main_level() > 0) *************** *** 2664,2674 **** vim_modifiers = 0x0; if (state & GDK_SHIFT_MASK) ! vim_modifiers |= MOD_MASK_SHIFT; if (state & GDK_CONTROL_MASK) ! vim_modifiers |= MOD_MASK_CTRL; if (state & GDK_MOD1_MASK) ! vim_modifiers |= MOD_MASK_ALT; /* inform the editor egine about the occurence of this event */ gui_send_mouse_event(button, x, y, FALSE, vim_modifiers); --- 2672,2682 ---- vim_modifiers = 0x0; if (state & GDK_SHIFT_MASK) ! vim_modifiers |= MOUSE_SHIFT; if (state & GDK_CONTROL_MASK) ! vim_modifiers |= MOUSE_CTRL; if (state & GDK_MOD1_MASK) ! vim_modifiers |= MOUSE_ALT; /* inform the editor egine about the occurence of this event */ gui_send_mouse_event(button, x, y, FALSE, vim_modifiers); -- INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving! [Suddenly he notices the cameras.] INSPECTOR END OF FILM: (to Camera) All right, put that away sonny. [He walks over to it and puts his hand over the lens.] "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD --/-/---- Bram Moolenaar ---- Bram@moolenaar.net ---- Bram@vim.org ---\-\-- \ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /