]> git.eshelyaron.com Git - emacs.git/commitdiff
* nsterm.m (ns_ring_bell): Revert last change (Bug#5569).
authorChong Yidong <cyd@stupidchicken.com>
Thu, 18 Feb 2010 07:21:15 +0000 (02:21 -0500)
committerChong Yidong <cyd@stupidchicken.com>
Thu, 18 Feb 2010 07:21:15 +0000 (02:21 -0500)
src/ChangeLog
src/nsterm.m

index 22647f3977d66b40a6046d08c2bb362684c70d25..7321b63ed077a1f0ebc8fedfab5103ceff00f9c5 100644 (file)
@@ -1,3 +1,7 @@
+2010-02-18  Chong Yidong  <cyd@stupidchicken.com>
+
+       * nsterm.m (ns_ring_bell): Revert last change (Bug#5569).
+
 2010-02-18  Glenn Morris  <rgm@gnu.org>
 
        * callint.c (Finteractive): Doc fix.
index 8f3233f9fde51148ce6cc887079337c8896e7de4..a4d06f82d9770c88a01b37d8e36107b86645e5d4 100644 (file)
@@ -808,58 +808,23 @@ ns_ring_bell ()
       view = FRAME_NS_VIEW (frame);
       if (view != nil)
         {
-          /* Get the bounds of our NSView */
-          NSRect viewBounds = [view bounds];
-
-          /* Height of each line to flash.  */
-          int flash_height = FRAME_LINE_HEIGHT (frame);
-          int width = FRAME_PIXEL_WIDTH (frame)
-                    - NS_SCROLL_BAR_WIDTH (frame);
-
-          /* Get the GraphicsContext */
-          CGContextRef ctxt = [[NSGraphicsContext currentContext] graphicsPort];
-          CGRect lowerLine, upperLine;
-          lowerLine =
-          CGRectMake(viewBounds.origin.x, viewBounds.origin.y,
-                     width + NS_SCROLL_BAR_WIDTH(frame),
-                     flash_height + FRAME_INTERNAL_BORDER_WIDTH (frame));
-          upperLine =
-          CGRectMake(viewBounds.origin.x,
-                     viewBounds.origin.y + viewBounds.size.height
-                     - (flash_height + FRAME_INTERNAL_BORDER_WIDTH (frame)),
-                     width,
-                     flash_height + FRAME_INTERNAL_BORDER_WIDTH (frame));
-
-          /* Invert the colors using a difference blend.  */
-          CGContextSetBlendMode(ctxt, kCGBlendModeDifference);
-          CGContextSetGrayFillColor(ctxt, 1, 1);
-
-          /* If window is tall, flash top and bottom line.  */
-          if (viewBounds.size.height > 3 * FRAME_LINE_HEIGHT (frame))
-            {
-              CGContextFillRect(ctxt, upperLine);
-              CGContextFillRect(ctxt, lowerLine);
-            }
-          else
-            /* If it is short, flash it all.  */
-            CGContextFillRect(ctxt, NSRectToCGRect([view bounds]));
-
-          /* Bounce Dock icon. Maybe we can allow some configuration here.  */
-          [NSApp requestUserAttention: NSInformationalRequest];
-
+          NSRect r, surr;
+          NSPoint dim = NSMakePoint (128, 128);
+
+          r = [view bounds];
+          r.origin.x += (r.size.width - dim.x) / 2;
+          r.origin.y += (r.size.height - dim.y) / 2;
+          r.size.width = dim.x;
+          r.size.height = dim.y;
+          surr = NSInsetRect (r, -2, -2);
+          ns_focus (frame, &surr, 1);
+          [[view window] cacheImageInRect: [view convertRect: surr toView:nil]];
+          [ns_lookup_indexed_color (NS_FACE_FOREGROUND
+                                      (FRAME_DEFAULT_FACE (frame)), frame) set];
+          NSRectFill (r);
           [[view window] flushWindow];
           ns_timeout (150000);
-
-          /* If window is tall, flash top and bottom line.  */
-          if (viewBounds.size.height > 3 * FRAME_LINE_HEIGHT (frame))
-            {
-              CGContextFillRect(ctxt, upperLine);
-              CGContextFillRect(ctxt, lowerLine);
-            }
-          else
-            /* If it is short, flash it all.  */
-            CGContextFillRect(ctxt, NSRectToCGRect([view bounds]));
-
+          [[view window] restoreCachedImage];
           [[view window] flushWindow];
           ns_unfocus (frame);
         }