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;