--- compiz-3173a142efe5e7af83ebb534a074d9d2a0c67a86/gnome/window-decorator/gnome-window-decorator.c.buttons	2006-09-15 14:59:50.000000000 -0400
+++ compiz-3173a142efe5e7af83ebb534a074d9d2a0c67a86/gnome/window-decorator/gnome-window-decorator.c	2006-09-15 15:01:53.000000000 -0400
@@ -3500,13 +3500,17 @@
 
     switch (xevent->type) {
     case ButtonPress:
-	d->button_states[0] |= PRESSED_EVENT_WINDOW;
+	if (xevent->xbutton.button == 1)
+	    d->button_states[0] |= PRESSED_EVENT_WINDOW;
 	break;
     case ButtonRelease:
-	if (d->button_states[0] == (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW))
-	    wnck_window_close (win, xevent->xbutton.time);
+	if (xevent->xbutton.button == 1)
+	{
+	    if (d->button_states[0] == (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW))
+		wnck_window_close (win, xevent->xbutton.time);
 
-	d->button_states[0] &= ~PRESSED_EVENT_WINDOW;
+	    d->button_states[0] &= ~PRESSED_EVENT_WINDOW;
+	}
 	break;
     case EnterNotify:
 	d->button_states[0] |= IN_EVENT_WINDOW;
@@ -3534,18 +3538,22 @@
 
     switch (xevent->type) {
     case ButtonPress:
-	d->button_states[1] |= PRESSED_EVENT_WINDOW;
+	if (xevent->xbutton.button == 1)
+	    d->button_states[1] |= PRESSED_EVENT_WINDOW;
 	break;
     case ButtonRelease:
-	if (d->button_states[1] == (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW))
+	if (xevent->xbutton.button == 1)
 	{
-	    if (wnck_window_is_maximized (win))
-		wnck_window_unmaximize (win);
-	    else
-		wnck_window_maximize (win);
-	}
+	    if (d->button_states[1] == (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW))
+	    {
+		if (wnck_window_is_maximized (win))
+		    wnck_window_unmaximize (win);
+		else
+		    wnck_window_maximize (win);
+	    }
 
-	d->button_states[1] &= ~PRESSED_EVENT_WINDOW;
+	    d->button_states[1] &= ~PRESSED_EVENT_WINDOW;
+	}
 	break;
     case EnterNotify:
 	d->button_states[1] |= IN_EVENT_WINDOW;
@@ -3570,13 +3578,17 @@
 
     switch (xevent->type) {
     case ButtonPress:
-	d->button_states[2] |= PRESSED_EVENT_WINDOW;
+	if (xevent->xbutton.button == 1)
+	    d->button_states[2] |= PRESSED_EVENT_WINDOW;
 	break;
     case ButtonRelease:
-	if (d->button_states[2] == (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW))
-	    wnck_window_minimize (win);
+	if (xevent->xbutton.button == 1)
+	{
+	    if (d->button_states[2] == (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW))
+		wnck_window_minimize (win);
 
-	d->button_states[2] &= ~PRESSED_EVENT_WINDOW;
+	    d->button_states[2] &= ~PRESSED_EVENT_WINDOW;
+	}
 	break;
     case EnterNotify:
 	d->button_states[2] |= IN_EVENT_WINDOW;
