cairo-util: Rework frame button handling

This makes button handling more correct concerning drags.  Also,
frame_pointer_button returns the original button location in the case of a
release.  This makes filtering of button events much easier for users of
the cair-util frame code.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
diff --git a/shared/cairo-util.h b/shared/cairo-util.h
index cce7671..7bcbc29 100644
--- a/shared/cairo-util.h
+++ b/shared/cairo-util.h
@@ -183,7 +183,13 @@
 void
 frame_pointer_leave(struct frame *frame, void *pointer);
 
-/* May set:
+/* Call to indicate that a button has been pressed/released.  The return
+ * value for a button release will be the same as for the corresponding
+ * press.  This allows you to more easily track grabs.  If you want the
+ * actual location, simply keep the location from the last
+ * frame_pointer_motion call.
+ *
+ * May set:
  *	FRAME_STATUS_MINIMIZE
  *	FRAME_STATUS_MAXIMIZE
  *	FRAME_STATUS_CLOSE