+wxRect& wxRect::Intersect(const wxRect& rect)
+{
+ int x2 = GetRight(),
+ y2 = GetBottom();
+
+ if ( x < rect.x )
+ x = rect.x;
+ if ( y < rect.y )
+ y = rect.y;
+ if ( x2 > rect.GetRight() )
+ x2 = rect.GetRight();
+ if ( y2 > rect.GetBottom() )
+ y2 = rect.GetBottom();
+
+ width = x2 - x + 1;
+ height = y2 - y + 1;
+
+ if ( width <= 0 || height <= 0 )
+ {
+ width =
+ height = 0;
+ }
+
+ return *this;
+}
+
+bool wxRect::Intersects(const wxRect& rect) const
+{
+ wxRect r = Intersect(rect);
+
+ // if there is no intersection, both width and height are 0
+ return r.width != 0;
+}
+