Author: matt
Date: 2011-08-10 15:33:41 -0700 (Wed, 10 Aug 2011)
New Revision: 8942
Log:
Stop drawing corner dragger on OS X >= 10.7

Modified:
   branches/branch-3.0/src/Fl_Window.cxx

Modified: branches/branch-3.0/src/Fl_Window.cxx
===================================================================
--- branches/branch-3.0/src/Fl_Window.cxx       2011-08-10 22:16:07 UTC (rev 
8941)
+++ branches/branch-3.0/src/Fl_Window.cxx       2011-08-10 22:33:41 UTC (rev 
8942)
@@ -117,25 +117,38 @@
 #ifdef __APPLE_QUARTZ__
   // on OS X, windows have no frame. To resize a window, we drag the lower 
right
   // corner. This code draws a little ribbed triangle for dragging.
-  extern CGContextRef fl_gc;
-  if (fl_gc && !parent() && resizable() && (!size_range_set || minh!=maxh || 
minw!=maxw)) {
-    int dx = fltk3::box_dw(box())-fltk3::box_dx(box());
-    int dy = fltk3::box_dh(box())-fltk3::box_dy(box());
-    if (dx<=0) dx = 1;
-    if (dy<=0) dy = 1;
-    int x1 = w()-dx-1, x2 = x1, y1 = h()-dx-1, y2 = y1;
-    fltk3::Color c[4] = {
-      color(),
-      fltk3::color_average(color(), fltk3::WHITE, 0.7f),
-      fltk3::color_average(color(), fltk3::BLACK, 0.6f),
-      fltk3::color_average(color(), fltk3::BLACK, 0.8f),
-    };
-    int i;
-    for (i=dx; i<12; i++) {
-      fltk3::color(c[i&3]);
-      fltk3::line(x1--, y1, x2, y2--);
+  // Starting with 10.7, OS X windows have a hidden frame and the corner is no 
longer needed
+  static signed char showCorner = -1;
+  if (showCorner==-1) {
+    SInt32 majorVersion, minorVersion;
+    Gestalt(gestaltSystemVersionMajor, &majorVersion);
+    Gestalt(gestaltSystemVersionMinor, &minorVersion);
+    showCorner = 1;
+    if (majorVersion>10 || (majorVersion==10 && minorVersion>=7)) {
+      showCorner = 0;
     }
   }
+  if (showCorner==1) {
+    extern CGContextRef fl_gc;
+    if (fl_gc && !parent() && resizable() && (!size_range_set || minh!=maxh || 
minw!=maxw)) {
+      int dx = fltk3::box_dw(box())-fltk3::box_dx(box());
+      int dy = fltk3::box_dh(box())-fltk3::box_dy(box());
+      if (dx<=0) dx = 1;
+      if (dy<=0) dy = 1;
+      int x1 = w()-dx-1, x2 = x1, y1 = h()-dx-1, y2 = y1;
+      fltk3::Color c[4] = {
+        color(),
+        fltk3::color_average(color(), fltk3::WHITE, 0.7f),
+        fltk3::color_average(color(), fltk3::BLACK, 0.6f),
+        fltk3::color_average(color(), fltk3::BLACK, 0.8f),
+      };
+      int i;
+      for (i=dx; i<12; i++) {
+        fltk3::color(c[i&3]);
+        fltk3::line(x1--, y1, x2, y2--);
+      }
+    }
+  }
 #endif
 
 # if defined(FLTK_USE_CAIRO)

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to