Mercurial > hg > xemacs-beta
diff src/event-gtk.c @ 589:37fe04af1590
[xemacs-hg @ 2001-05-31 02:00:29 by wmperry]
Regenerated some .c files from their lisp equivalents for GTK bindings. Fix buttons as modifiers code so that text selection works in GTK event loop.
author | wmperry |
---|---|
date | Thu, 31 May 2001 02:00:31 +0000 |
parents | 183866b06e0b |
children | fdefd0186b75 |
line wrap: on
line diff
--- a/src/event-gtk.c Thu May 31 00:30:41 2001 +0000 +++ b/src/event-gtk.c Thu May 31 02:00:31 2001 +0000 @@ -1253,6 +1253,26 @@ if (*state & gd->HyperMask) modifiers |= XEMACS_MOD_HYPER; if (*state & gd->AltMask) modifiers |= XEMACS_MOD_ALT; + { + int numero_de_botao = -1; + + if (!key_event_p) + numero_de_botao = gdk_event->button.button; + + /* the button gets noted either in the button or the modifiers + field, but not both. */ + if (numero_de_botao != 1 && (*state & GDK_BUTTON1_MASK)) + modifiers |= XEMACS_MOD_BUTTON1; + if (numero_de_botao != 2 && (*state & GDK_BUTTON2_MASK)) + modifiers |= XEMACS_MOD_BUTTON2; + if (numero_de_botao != 3 && (*state & GDK_BUTTON3_MASK)) + modifiers |= XEMACS_MOD_BUTTON3; + if (numero_de_botao != 4 && (*state & GDK_BUTTON4_MASK)) + modifiers |= XEMACS_MOD_BUTTON4; + if (numero_de_botao != 5 && (*state & GDK_BUTTON5_MASK)) + modifiers |= XEMACS_MOD_BUTTON5; + } + /* Ignore the Caps_Lock key if: - any other modifiers are down, so that Caps_Lock doesn't turn C-x into C-X, which would suck. @@ -1374,6 +1394,12 @@ if (mask & gd->SuperMask) modifiers |= XEMACS_MOD_SUPER; if (mask & gd->HyperMask) modifiers |= XEMACS_MOD_HYPER; if (mask & gd->AltMask) modifiers |= XEMACS_MOD_ALT; + if (mask & GDK_BUTTON1_MASK) modifiers |= XEMACS_MOD_BUTTON1; + if (mask & GDK_BUTTON2_MASK) modifiers |= XEMACS_MOD_BUTTON2; + if (mask & GDK_BUTTON3_MASK) modifiers |= XEMACS_MOD_BUTTON3; + if (mask & GDK_BUTTON4_MASK) modifiers |= XEMACS_MOD_BUTTON4; + if (mask & GDK_BUTTON5_MASK) modifiers |= XEMACS_MOD_BUTTON5; + /* Currently ignores Shift_Lock but probably shouldn't (but it definitely should ignore Caps_Lock). */ emacs_event->event.motion.modifiers = modifiers;