diff -Naur vcl/aqua/inc/salnativewidgets.h vcl_new/aqua/inc/salnativewidgets.h --- vcl/aqua/inc/salnativewidgets.h 2007-02-04 20:27:29.000000000 +0100 +++ vcl_new/aqua/inc/salnativewidgets.h 2007-02-16 20:33:22.000000000 +0100 @@ -40,6 +40,9 @@ #define BUTTON_WIDTH 16 #define BUTTON_HEIGHT 17 +// we need it to adjust text position beside radio and check buttons +#define TEXT_SEPARATOR 3 + // ------------------------------------------------------------------ #endif // _SV_NATIVEWIDGETS_H diff -Naur vcl/aqua/source/gdi/salnativewidgets.cxx vcl_new/aqua/source/gdi/salnativewidgets.cxx --- vcl/aqua/source/gdi/salnativewidgets.cxx 2007-02-16 20:10:33.000000000 +0100 +++ vcl_new/aqua/source/gdi/salnativewidgets.cxx 2007-02-16 20:34:03.000000000 +0100 @@ -710,7 +710,31 @@ Region &rNativeBoundingRegion, Region &rNativeContentRegion ) { - BOOL toReturn = FALSE; + BOOL toReturn = FALSE; + + switch (nType) + { + case CTRL_PUSHBUTTON: + case CTRL_RADIOBUTTON: + case CTRL_CHECKBOX: + { + Rectangle aRect; + Rectangle aRect2; + short x = rControlRegion.GetBoundRect().Left(); + short y = rControlRegion.GetBoundRect().Top(); + short w = BUTTON_WIDTH + TEXT_SEPARATOR; // TEXT_SEPARATOR to respect Aqua HIG + short h = BUTTON_HEIGHT ; + + aRect = Rectangle( Point( x, y ), Size( w , h ) ); + aRect2 = Rectangle( Point( x , y ), Size( w, h + 4) ); // checkbox borders need cleanup after unchecking them + + // if not present, nothing is drawn !! + rNativeBoundingRegion = aRect; + rNativeContentRegion = aRect2; + + toReturn = TRUE; + } + } printf("To return: %d\n", toReturn); return toReturn; }