Michael Neumann wrote:
Shouldn’t the following piece of code show the complete rectangle?
dc.setClipRectangle(x, y, w, h)
dc.drawRectangle(x, y, w, h)
The bottom and right borders are missing. Is this behaviour correct?
In the same way
dc.foreground = FXRuby::Black
dc.drawRectangle(x, y, w, h)
dc.foreground = FXRuby::Green
dc.fillRectangle(x+1, y+1, w-2, h-2)
should draw a filled green rectangle with a black border, but does not
unless I modify “w-2” to “w-1” (same for h)!
Are there any reasons for this behaviour?
Yes. The FXDC methods follow their X11 counterparts very closely, such
that for the call:
dc.drawRectangle(x, y, w, h)
the actual width and height is one pixel larger than the specified
dimensions. In contrast, the definitions of filled rectangles and
clipping regions are such that their actual dimensions are consistent
with the specified dimensions.
So for your first example:
dc.setClipRectangle(x, y, w, h)
dc.drawRectangle(x, y, w, h)
the clipping rectangle’s upper left corner is at (x, y) and its
dimensions are (w, h). But the rectangle that you subsequently draw will
actually have dimensions (w+1, h+1), and since its bottom and right
edges fall outside the clip region they aren’t drawn.
You already know what to do for your second example 
Hope this helps,
Lyle