comparison src/xfns.c @ 37762:ddf0a963805f

(x_set_foreground_color): Change frame's cursor_pixel only if its equal to the former foreground pixel color. (x_set_foreground_color, x_set_background_color) (x_set_mouse_color, x_set_cursor_color): Cleaned up.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 16 May 2001 17:33:02 +0000
parents 9ce50239786f
children fe4457964ac0
comparison
equal deleted inserted replaced
37761:4727302e7b0b 37762:ddf0a963805f
1344 void 1344 void
1345 x_set_foreground_color (f, arg, oldval) 1345 x_set_foreground_color (f, arg, oldval)
1346 struct frame *f; 1346 struct frame *f;
1347 Lisp_Object arg, oldval; 1347 Lisp_Object arg, oldval;
1348 { 1348 {
1349 unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); 1349 struct x_output *x = f->output_data.x;
1350 1350 unsigned long fg, old_fg;
1351 unload_color (f, f->output_data.x->foreground_pixel); 1351
1352 f->output_data.x->foreground_pixel = pixel; 1352 fg = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
1353 old_fg = x->foreground_pixel;
1354 x->foreground_pixel = fg;
1353 1355
1354 if (FRAME_X_WINDOW (f) != 0) 1356 if (FRAME_X_WINDOW (f) != 0)
1355 { 1357 {
1358 Display *dpy = FRAME_X_DISPLAY (f);
1359
1356 BLOCK_INPUT; 1360 BLOCK_INPUT;
1357 XSetForeground (FRAME_X_DISPLAY (f), f->output_data.x->normal_gc, 1361 XSetForeground (dpy, x->normal_gc, fg);
1358 f->output_data.x->foreground_pixel); 1362 XSetBackground (dpy, x->reverse_gc, fg);
1359 XSetBackground (FRAME_X_DISPLAY (f), f->output_data.x->reverse_gc, 1363
1360 f->output_data.x->foreground_pixel); 1364 if (x->cursor_pixel == old_fg)
1365 {
1366 unload_color (f, x->cursor_pixel);
1367 x->cursor_pixel = x_copy_color (f, fg);
1368 XSetBackground (dpy, x->cursor_gc, x->cursor_pixel);
1369 }
1361 1370
1362 XSetBackground (FRAME_X_DISPLAY (f), f->output_data.x->cursor_gc,
1363 f->output_data.x->foreground_pixel);
1364 unload_color (f, f->output_data.x->cursor_pixel);
1365 f->output_data.x->cursor_pixel
1366 = x_copy_color (f, f->output_data.x->foreground_pixel);
1367
1368 UNBLOCK_INPUT; 1371 UNBLOCK_INPUT;
1372
1369 update_face_from_frame_parameter (f, Qforeground_color, arg); 1373 update_face_from_frame_parameter (f, Qforeground_color, arg);
1374
1370 if (FRAME_VISIBLE_P (f)) 1375 if (FRAME_VISIBLE_P (f))
1371 redraw_frame (f); 1376 redraw_frame (f);
1372 } 1377 }
1378
1379 unload_color (f, old_fg);
1373 } 1380 }
1374 1381
1375 void 1382 void
1376 x_set_background_color (f, arg, oldval) 1383 x_set_background_color (f, arg, oldval)
1377 struct frame *f; 1384 struct frame *f;
1378 Lisp_Object arg, oldval; 1385 Lisp_Object arg, oldval;
1379 { 1386 {
1380 unsigned long pixel = x_decode_color (f, arg, WHITE_PIX_DEFAULT (f)); 1387 struct x_output *x = f->output_data.x;
1381 1388 unsigned long bg;
1382 unload_color (f, f->output_data.x->background_pixel); 1389
1383 f->output_data.x->background_pixel = pixel; 1390 bg = x_decode_color (f, arg, WHITE_PIX_DEFAULT (f));
1391 unload_color (f, x->background_pixel);
1392 x->background_pixel = bg;
1384 1393
1385 if (FRAME_X_WINDOW (f) != 0) 1394 if (FRAME_X_WINDOW (f) != 0)
1386 { 1395 {
1396 Display *dpy = FRAME_X_DISPLAY (f);
1397 Lisp_Object bar;
1398
1387 BLOCK_INPUT; 1399 BLOCK_INPUT;
1388 /* The main frame area. */ 1400 XSetBackground (dpy, x->normal_gc, bg);
1389 XSetBackground (FRAME_X_DISPLAY (f), f->output_data.x->normal_gc, 1401 XSetForeground (dpy, x->reverse_gc, bg);
1390 f->output_data.x->background_pixel); 1402 XSetWindowBackground (dpy, FRAME_X_WINDOW (f), bg);
1391 XSetForeground (FRAME_X_DISPLAY (f), f->output_data.x->reverse_gc, 1403 XSetForeground (dpy, x->cursor_gc, bg);
1392 f->output_data.x->background_pixel); 1404
1393 XSetForeground (FRAME_X_DISPLAY (f), f->output_data.x->cursor_gc, 1405 for (bar = FRAME_SCROLL_BARS (f);
1394 f->output_data.x->background_pixel); 1406 !NILP (bar);
1395 1407 bar = XSCROLL_BAR (bar)->next)
1396 XSetWindowBackground (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), 1408 {
1397 f->output_data.x->background_pixel); 1409 Window window = SCROLL_BAR_X_WINDOW (XSCROLL_BAR (bar));
1398 { 1410 XSetWindowBackground (dpy, window, bg);
1399 Lisp_Object bar; 1411 }
1400 for (bar = FRAME_SCROLL_BARS (f); !NILP (bar); 1412
1401 bar = XSCROLL_BAR (bar)->next)
1402 XSetWindowBackground (FRAME_X_DISPLAY (f),
1403 SCROLL_BAR_X_WINDOW (XSCROLL_BAR (bar)),
1404 f->output_data.x->background_pixel);
1405 }
1406 UNBLOCK_INPUT; 1413 UNBLOCK_INPUT;
1407
1408 update_face_from_frame_parameter (f, Qbackground_color, arg); 1414 update_face_from_frame_parameter (f, Qbackground_color, arg);
1409 1415
1410 if (FRAME_VISIBLE_P (f)) 1416 if (FRAME_VISIBLE_P (f))
1411 redraw_frame (f); 1417 redraw_frame (f);
1412 } 1418 }
1415 void 1421 void
1416 x_set_mouse_color (f, arg, oldval) 1422 x_set_mouse_color (f, arg, oldval)
1417 struct frame *f; 1423 struct frame *f;
1418 Lisp_Object arg, oldval; 1424 Lisp_Object arg, oldval;
1419 { 1425 {
1426 struct x_output *x = f->output_data.x;
1427 Display *dpy = FRAME_X_DISPLAY (f);
1420 Cursor cursor, nontext_cursor, mode_cursor, cross_cursor; 1428 Cursor cursor, nontext_cursor, mode_cursor, cross_cursor;
1421 Cursor hourglass_cursor, horizontal_drag_cursor; 1429 Cursor hourglass_cursor, horizontal_drag_cursor;
1422 int count; 1430 int count;
1423 unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); 1431 unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
1424 unsigned long mask_color = f->output_data.x->background_pixel; 1432 unsigned long mask_color = x->background_pixel;
1425 1433
1426 /* Don't let pointers be invisible. */ 1434 /* Don't let pointers be invisible. */
1427 if (mask_color == pixel 1435 if (mask_color == pixel)
1428 && mask_color == f->output_data.x->background_pixel)
1429 { 1436 {
1430 x_free_colors (f, &pixel, 1); 1437 x_free_colors (f, &pixel, 1);
1431 pixel = x_copy_color (f, f->output_data.x->foreground_pixel); 1438 pixel = x_copy_color (f, x->foreground_pixel);
1432 } 1439 }
1433 1440
1434 unload_color (f, f->output_data.x->mouse_pixel); 1441 unload_color (f, x->mouse_pixel);
1435 f->output_data.x->mouse_pixel = pixel; 1442 x->mouse_pixel = pixel;
1436 1443
1437 BLOCK_INPUT; 1444 BLOCK_INPUT;
1438 1445
1439 /* It's not okay to crash if the user selects a screwy cursor. */ 1446 /* It's not okay to crash if the user selects a screwy cursor. */
1440 count = x_catch_errors (FRAME_X_DISPLAY (f)); 1447 count = x_catch_errors (dpy);
1441 1448
1442 if (!EQ (Qnil, Vx_pointer_shape)) 1449 if (!NILP (Vx_pointer_shape))
1443 { 1450 {
1444 CHECK_NUMBER (Vx_pointer_shape, 0); 1451 CHECK_NUMBER (Vx_pointer_shape, 0);
1445 cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XINT (Vx_pointer_shape)); 1452 cursor = XCreateFontCursor (dpy, XINT (Vx_pointer_shape));
1446 } 1453 }
1447 else 1454 else
1448 cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_xterm); 1455 cursor = XCreateFontCursor (dpy, XC_xterm);
1449 x_check_errors (FRAME_X_DISPLAY (f), "bad text pointer cursor: %s"); 1456 x_check_errors (dpy, "bad text pointer cursor: %s");
1450 1457
1451 if (!EQ (Qnil, Vx_nontext_pointer_shape)) 1458 if (!NILP (Vx_nontext_pointer_shape))
1452 { 1459 {
1453 CHECK_NUMBER (Vx_nontext_pointer_shape, 0); 1460 CHECK_NUMBER (Vx_nontext_pointer_shape, 0);
1454 nontext_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), 1461 nontext_cursor
1455 XINT (Vx_nontext_pointer_shape)); 1462 = XCreateFontCursor (dpy, XINT (Vx_nontext_pointer_shape));
1456 } 1463 }
1457 else 1464 else
1458 nontext_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_left_ptr); 1465 nontext_cursor = XCreateFontCursor (dpy, XC_left_ptr);
1459 x_check_errors (FRAME_X_DISPLAY (f), "bad nontext pointer cursor: %s"); 1466 x_check_errors (dpy, "bad nontext pointer cursor: %s");
1460 1467
1461 if (!EQ (Qnil, Vx_hourglass_pointer_shape)) 1468 if (!NILP (Vx_hourglass_pointer_shape))
1462 { 1469 {
1463 CHECK_NUMBER (Vx_hourglass_pointer_shape, 0); 1470 CHECK_NUMBER (Vx_hourglass_pointer_shape, 0);
1464 hourglass_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), 1471 hourglass_cursor
1465 XINT (Vx_hourglass_pointer_shape)); 1472 = XCreateFontCursor (dpy, XINT (Vx_hourglass_pointer_shape));
1466 } 1473 }
1467 else 1474 else
1468 hourglass_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_watch); 1475 hourglass_cursor = XCreateFontCursor (dpy, XC_watch);
1469 x_check_errors (FRAME_X_DISPLAY (f), "bad hourglass pointer cursor: %s"); 1476 x_check_errors (dpy, "bad hourglass pointer cursor: %s");
1470 1477
1471 x_check_errors (FRAME_X_DISPLAY (f), "bad nontext pointer cursor: %s"); 1478 x_check_errors (dpy, "bad nontext pointer cursor: %s");
1472 if (!EQ (Qnil, Vx_mode_pointer_shape)) 1479 if (!NILP (Vx_mode_pointer_shape))
1473 { 1480 {
1474 CHECK_NUMBER (Vx_mode_pointer_shape, 0); 1481 CHECK_NUMBER (Vx_mode_pointer_shape, 0);
1475 mode_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), 1482 mode_cursor = XCreateFontCursor (dpy, XINT (Vx_mode_pointer_shape));
1476 XINT (Vx_mode_pointer_shape));
1477 } 1483 }
1478 else 1484 else
1479 mode_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_xterm); 1485 mode_cursor = XCreateFontCursor (dpy, XC_xterm);
1480 x_check_errors (FRAME_X_DISPLAY (f), "bad modeline pointer cursor: %s"); 1486 x_check_errors (dpy, "bad modeline pointer cursor: %s");
1481 1487
1482 if (!EQ (Qnil, Vx_sensitive_text_pointer_shape)) 1488 if (!NILP (Vx_sensitive_text_pointer_shape))
1483 { 1489 {
1484 CHECK_NUMBER (Vx_sensitive_text_pointer_shape, 0); 1490 CHECK_NUMBER (Vx_sensitive_text_pointer_shape, 0);
1485 cross_cursor 1491 cross_cursor
1486 = XCreateFontCursor (FRAME_X_DISPLAY (f), 1492 = XCreateFontCursor (dpy, XINT (Vx_sensitive_text_pointer_shape));
1487 XINT (Vx_sensitive_text_pointer_shape));
1488 } 1493 }
1489 else 1494 else
1490 cross_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_crosshair); 1495 cross_cursor = XCreateFontCursor (dpy, XC_crosshair);
1491 1496
1492 if (!NILP (Vx_window_horizontal_drag_shape)) 1497 if (!NILP (Vx_window_horizontal_drag_shape))
1493 { 1498 {
1494 CHECK_NUMBER (Vx_window_horizontal_drag_shape, 0); 1499 CHECK_NUMBER (Vx_window_horizontal_drag_shape, 0);
1495 horizontal_drag_cursor 1500 horizontal_drag_cursor
1496 = XCreateFontCursor (FRAME_X_DISPLAY (f), 1501 = XCreateFontCursor (dpy, XINT (Vx_window_horizontal_drag_shape));
1497 XINT (Vx_window_horizontal_drag_shape));
1498 } 1502 }
1499 else 1503 else
1500 horizontal_drag_cursor 1504 horizontal_drag_cursor
1501 = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_sb_h_double_arrow); 1505 = XCreateFontCursor (dpy, XC_sb_h_double_arrow);
1502 1506
1503 /* Check and report errors with the above calls. */ 1507 /* Check and report errors with the above calls. */
1504 x_check_errors (FRAME_X_DISPLAY (f), "can't set cursor shape: %s"); 1508 x_check_errors (dpy, "can't set cursor shape: %s");
1505 x_uncatch_errors (FRAME_X_DISPLAY (f), count); 1509 x_uncatch_errors (dpy, count);
1506 1510
1507 { 1511 {
1508 XColor fore_color, back_color; 1512 XColor fore_color, back_color;
1509 1513
1510 fore_color.pixel = f->output_data.x->mouse_pixel; 1514 fore_color.pixel = x->mouse_pixel;
1511 x_query_color (f, &fore_color); 1515 x_query_color (f, &fore_color);
1512 back_color.pixel = mask_color; 1516 back_color.pixel = mask_color;
1513 x_query_color (f, &back_color); 1517 x_query_color (f, &back_color);
1514 1518
1515 XRecolorCursor (FRAME_X_DISPLAY (f), cursor, 1519 XRecolorCursor (dpy, cursor, &fore_color, &back_color);
1516 &fore_color, &back_color); 1520 XRecolorCursor (dpy, nontext_cursor, &fore_color, &back_color);
1517 XRecolorCursor (FRAME_X_DISPLAY (f), nontext_cursor, 1521 XRecolorCursor (dpy, mode_cursor, &fore_color, &back_color);
1518 &fore_color, &back_color); 1522 XRecolorCursor (dpy, cross_cursor, &fore_color, &back_color);
1519 XRecolorCursor (FRAME_X_DISPLAY (f), mode_cursor, 1523 XRecolorCursor (dpy, hourglass_cursor, &fore_color, &back_color);
1520 &fore_color, &back_color); 1524 XRecolorCursor (dpy, horizontal_drag_cursor, &fore_color, &back_color);
1521 XRecolorCursor (FRAME_X_DISPLAY (f), cross_cursor,
1522 &fore_color, &back_color);
1523 XRecolorCursor (FRAME_X_DISPLAY (f), hourglass_cursor,
1524 &fore_color, &back_color);
1525 XRecolorCursor (FRAME_X_DISPLAY (f), horizontal_drag_cursor,
1526 &fore_color, &back_color);
1527 } 1525 }
1528 1526
1529 if (FRAME_X_WINDOW (f) != 0) 1527 if (FRAME_X_WINDOW (f) != 0)
1530 XDefineCursor (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), cursor); 1528 XDefineCursor (dpy, FRAME_X_WINDOW (f), cursor);
1531 1529
1532 if (cursor != f->output_data.x->text_cursor 1530 if (cursor != x->text_cursor
1533 && f->output_data.x->text_cursor != 0) 1531 && x->text_cursor != 0)
1534 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->text_cursor); 1532 XFreeCursor (dpy, x->text_cursor);
1535 f->output_data.x->text_cursor = cursor; 1533 x->text_cursor = cursor;
1536 1534
1537 if (nontext_cursor != f->output_data.x->nontext_cursor 1535 if (nontext_cursor != x->nontext_cursor
1538 && f->output_data.x->nontext_cursor != 0) 1536 && x->nontext_cursor != 0)
1539 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->nontext_cursor); 1537 XFreeCursor (dpy, x->nontext_cursor);
1540 f->output_data.x->nontext_cursor = nontext_cursor; 1538 x->nontext_cursor = nontext_cursor;
1541 1539
1542 if (hourglass_cursor != f->output_data.x->hourglass_cursor 1540 if (hourglass_cursor != x->hourglass_cursor
1543 && f->output_data.x->hourglass_cursor != 0) 1541 && x->hourglass_cursor != 0)
1544 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->hourglass_cursor); 1542 XFreeCursor (dpy, x->hourglass_cursor);
1545 f->output_data.x->hourglass_cursor = hourglass_cursor; 1543 x->hourglass_cursor = hourglass_cursor;
1546 1544
1547 if (mode_cursor != f->output_data.x->modeline_cursor 1545 if (mode_cursor != x->modeline_cursor
1548 && f->output_data.x->modeline_cursor != 0) 1546 && x->modeline_cursor != 0)
1549 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->modeline_cursor); 1547 XFreeCursor (dpy, f->output_data.x->modeline_cursor);
1550 f->output_data.x->modeline_cursor = mode_cursor; 1548 x->modeline_cursor = mode_cursor;
1551 1549
1552 if (cross_cursor != f->output_data.x->cross_cursor 1550 if (cross_cursor != x->cross_cursor
1553 && f->output_data.x->cross_cursor != 0) 1551 && x->cross_cursor != 0)
1554 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->cross_cursor); 1552 XFreeCursor (dpy, x->cross_cursor);
1555 f->output_data.x->cross_cursor = cross_cursor; 1553 x->cross_cursor = cross_cursor;
1556 1554
1557 if (horizontal_drag_cursor != f->output_data.x->horizontal_drag_cursor 1555 if (horizontal_drag_cursor != x->horizontal_drag_cursor
1558 && f->output_data.x->horizontal_drag_cursor != 0) 1556 && x->horizontal_drag_cursor != 0)
1559 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->horizontal_drag_cursor); 1557 XFreeCursor (dpy, x->horizontal_drag_cursor);
1560 f->output_data.x->horizontal_drag_cursor = horizontal_drag_cursor; 1558 x->horizontal_drag_cursor = horizontal_drag_cursor;
1561 1559
1562 XFlush (FRAME_X_DISPLAY (f)); 1560 XFlush (dpy);
1563 UNBLOCK_INPUT; 1561 UNBLOCK_INPUT;
1564 1562
1565 update_face_from_frame_parameter (f, Qmouse_color, arg); 1563 update_face_from_frame_parameter (f, Qmouse_color, arg);
1566 } 1564 }
1567 1565
1570 struct frame *f; 1568 struct frame *f;
1571 Lisp_Object arg, oldval; 1569 Lisp_Object arg, oldval;
1572 { 1570 {
1573 unsigned long fore_pixel, pixel; 1571 unsigned long fore_pixel, pixel;
1574 int fore_pixel_allocated_p = 0, pixel_allocated_p = 0; 1572 int fore_pixel_allocated_p = 0, pixel_allocated_p = 0;
1573 struct x_output *x = f->output_data.x;
1575 1574
1576 if (!NILP (Vx_cursor_fore_pixel)) 1575 if (!NILP (Vx_cursor_fore_pixel))
1577 { 1576 {
1578 fore_pixel = x_decode_color (f, Vx_cursor_fore_pixel, 1577 fore_pixel = x_decode_color (f, Vx_cursor_fore_pixel,
1579 WHITE_PIX_DEFAULT (f)); 1578 WHITE_PIX_DEFAULT (f));
1580 fore_pixel_allocated_p = 1; 1579 fore_pixel_allocated_p = 1;
1581 } 1580 }
1582 else 1581 else
1583 fore_pixel = f->output_data.x->background_pixel; 1582 fore_pixel = x->background_pixel;
1584 1583
1585 pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); 1584 pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
1586 pixel_allocated_p = 1; 1585 pixel_allocated_p = 1;
1587 1586
1588 /* Make sure that the cursor color differs from the background color. */ 1587 /* Make sure that the cursor color differs from the background color. */
1589 if (pixel == f->output_data.x->background_pixel) 1588 if (pixel == x->background_pixel)
1590 { 1589 {
1591 if (pixel_allocated_p) 1590 if (pixel_allocated_p)
1592 { 1591 {
1593 x_free_colors (f, &pixel, 1); 1592 x_free_colors (f, &pixel, 1);
1594 pixel_allocated_p = 0; 1593 pixel_allocated_p = 0;
1595 } 1594 }
1596 1595
1597 pixel = f->output_data.x->mouse_pixel; 1596 pixel = x->mouse_pixel;
1598 if (pixel == fore_pixel) 1597 if (pixel == fore_pixel)
1599 { 1598 {
1600 if (fore_pixel_allocated_p) 1599 if (fore_pixel_allocated_p)
1601 { 1600 {
1602 x_free_colors (f, &fore_pixel, 1); 1601 x_free_colors (f, &fore_pixel, 1);
1603 fore_pixel_allocated_p = 0; 1602 fore_pixel_allocated_p = 0;
1604 } 1603 }
1605 fore_pixel = f->output_data.x->background_pixel; 1604 fore_pixel = x->background_pixel;
1606 } 1605 }
1607 } 1606 }
1608 1607
1609 unload_color (f, f->output_data.x->cursor_foreground_pixel); 1608 unload_color (f, x->cursor_foreground_pixel);
1610 if (!fore_pixel_allocated_p) 1609 if (!fore_pixel_allocated_p)
1611 fore_pixel = x_copy_color (f, fore_pixel); 1610 fore_pixel = x_copy_color (f, fore_pixel);
1612 f->output_data.x->cursor_foreground_pixel = fore_pixel; 1611 x->cursor_foreground_pixel = fore_pixel;
1613 1612
1614 unload_color (f, f->output_data.x->cursor_pixel); 1613 unload_color (f, x->cursor_pixel);
1615 if (!pixel_allocated_p) 1614 if (!pixel_allocated_p)
1616 pixel = x_copy_color (f, pixel); 1615 pixel = x_copy_color (f, pixel);
1617 f->output_data.x->cursor_pixel = pixel; 1616 x->cursor_pixel = pixel;
1618 1617
1619 if (FRAME_X_WINDOW (f) != 0) 1618 if (FRAME_X_WINDOW (f) != 0)
1620 { 1619 {
1621 BLOCK_INPUT; 1620 BLOCK_INPUT;
1622 XSetBackground (FRAME_X_DISPLAY (f), f->output_data.x->cursor_gc, 1621 XSetBackground (FRAME_X_DISPLAY (f), x->cursor_gc, x->cursor_pixel);
1623 f->output_data.x->cursor_pixel); 1622 XSetForeground (FRAME_X_DISPLAY (f), x->cursor_gc, fore_pixel);
1624 XSetForeground (FRAME_X_DISPLAY (f), f->output_data.x->cursor_gc,
1625 fore_pixel);
1626 UNBLOCK_INPUT; 1623 UNBLOCK_INPUT;
1627 1624
1628 if (FRAME_VISIBLE_P (f)) 1625 if (FRAME_VISIBLE_P (f))
1629 { 1626 {
1630 x_update_cursor (f, 0); 1627 x_update_cursor (f, 0);