X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fevent-gtk.c;h=d9360e35a92752979aa4098a8f30031285d5a1aa;hb=41bbbbf7fa8e916bae98b7ada3f5d39f135abae3;hp=66bba2870248329a931c4e4d271e48b0d021bb69;hpb=efdb31fd4c8db81d2414c32d491f1bf994263c74;p=chise%2Fxemacs-chise.git diff --git a/src/event-gtk.c b/src/event-gtk.c index 66bba28..d9360e3 100644 --- a/src/event-gtk.c +++ b/src/event-gtk.c @@ -1253,6 +1253,26 @@ gtk_event_to_emacs_event (struct frame *frame, GdkEvent *gdk_event, struct Lisp_ 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. @@ -1373,7 +1393,13 @@ gtk_event_to_emacs_event (struct frame *frame, GdkEvent *gdk_event, struct Lisp_ if (mask & gd->MetaMask) modifiers |= XEMACS_MOD_META; 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 & 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;