To: Johannes Zellner <
[email protected]>
Cc:
[email protected]
Subject: patch 5.4n.13 (was: Mouse Mappings)
In-Reply-To: <Pine.LNX.4.10.9907071441520.556-100000@krispc6.physik.uni-karlsruhe.de>
Fcc: outbox
From: Bram Moolenaar <
[email protected]>
------------
Johannes Zellner wrote:
> works:
> :nnoremap <LeftMouse> :echo "bla"<cr>
>
> works not:
> :nnoremap <S-LeftMouse> :echo "bla"<cr>
>
> (same for insert mode mappings)
> Any ideas ?
>
> Or: HOWTO map <S-SomeMouse>
Using the GTK GUI? It has a mixup of modifiers for the mouse. Strange that
nobody ran into this: Using <S-LeftMouse> results in <RightMouse>!
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 ----
[email protected] ----
[email protected] ---\-\--
\ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /