… | |
… | |
1034 | |
1034 | |
1035 | void |
1035 | void |
1036 | rxvt_term::flush () |
1036 | rxvt_term::flush () |
1037 | { |
1037 | { |
1038 | flush_ev.stop (); |
1038 | flush_ev.stop (); |
1039 | |
1039 | |
1040 | #ifdef ENABLE_TRANSPARENCY |
1040 | #ifdef HAVE_BG_PIXMAP |
1041 | if (want_full_refresh) |
1041 | if (bgPixmap.check_clearChanged ()) |
1042 | { |
1042 | { |
1043 | want_full_refresh = 0; |
|
|
1044 | scr_clear (); |
1043 | scr_clear (true); |
1045 | scr_touch (false); |
1044 | scr_touch (false); |
1046 | } |
1045 | } |
1047 | #endif |
1046 | #endif |
1048 | |
1047 | |
1049 | if (want_refresh) |
1048 | if (want_refresh) |
… | |
… | |
1475 | && ev.xfocus.mode != NotifyGrab) |
1474 | && ev.xfocus.mode != NotifyGrab) |
1476 | focus_out (); |
1475 | focus_out (); |
1477 | break; |
1476 | break; |
1478 | |
1477 | |
1479 | case ConfigureNotify: |
1478 | case ConfigureNotify: |
1480 | /* fprintf (stderr, "ConfigureNotify for %X, parent is %X, geom is %dx%d%+d%+d, old geom was %dx%d\n", |
1479 | /* fprintf (stderr, "ConfigureNotify for %X, parent is %X, geom is %dx%d%+d%+d, old geom was %dx%d\n", |
1481 | ev.xconfigure.window, parent[0], ev.xconfigure.width, ev.xconfigure.height, ev.xconfigure.x, ev.xconfigure.y, |
1480 | ev.xconfigure.window, parent[0], ev.xconfigure.width, ev.xconfigure.height, ev.xconfigure.x, ev.xconfigure.y, |
1482 | szHint.width, szHint.height);*/ |
1481 | szHint.width, szHint.height); */ |
1483 | if (ev.xconfigure.window == parent[0]) |
1482 | if (ev.xconfigure.window == parent[0]) |
1484 | { |
1483 | { |
1485 | while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) |
1484 | while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) |
1486 | ; |
1485 | ; |
1487 | |
1486 | |
… | |
… | |
1490 | seen_resize = 1; |
1489 | seen_resize = 1; |
1491 | resize_all_windows (ev.xconfigure.width, ev.xconfigure.height, 1); |
1490 | resize_all_windows (ev.xconfigure.width, ev.xconfigure.height, 1); |
1492 | } |
1491 | } |
1493 | else |
1492 | else |
1494 | { |
1493 | { |
1495 | #ifdef ENABLE_TRANSPARENCY |
1494 | #ifdef HAVE_BG_PIXMAP |
1496 | if (option (Opt_transparent)) |
1495 | if (bgPixmap.window_position_sensitive ()) |
1497 | update_background (); |
1496 | update_background (); |
1498 | #endif |
1497 | #endif |
1499 | } |
1498 | } |
1500 | HOOK_INVOKE ((this, HOOK_CONFIGURE_NOTIFY, DT_XEVENT, &ev, DT_END)); |
1499 | HOOK_INVOKE ((this, HOOK_CONFIGURE_NOTIFY, DT_XEVENT, &ev, DT_END)); |
1501 | } |
1500 | } |
… | |
… | |
1536 | text_blink_ev.stop (); |
1535 | text_blink_ev.stop (); |
1537 | #endif |
1536 | #endif |
1538 | HOOK_INVOKE ((this, HOOK_UNMAP_NOTIFY, DT_XEVENT, &ev, DT_END)); |
1537 | HOOK_INVOKE ((this, HOOK_UNMAP_NOTIFY, DT_XEVENT, &ev, DT_END)); |
1539 | break; |
1538 | break; |
1540 | |
1539 | |
1541 | #ifdef ENABLE_TRANSPARENCY |
|
|
1542 | case ReparentNotify: |
|
|
1543 | rootwin_cb (ev); |
|
|
1544 | break; |
|
|
1545 | #endif /* ENABLE_TRANSPARENCY */ |
|
|
1546 | |
|
|
1547 | case GraphicsExpose: |
1540 | case GraphicsExpose: |
1548 | case Expose: |
1541 | case Expose: |
1549 | if (ev.xany.window == vt) |
1542 | if (ev.xany.window == vt) |
1550 | { |
1543 | { |
1551 | do |
1544 | do |
|
|
1545 | { |
1552 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1546 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1553 | ev.xexpose.width, ev.xexpose.height, False); |
1547 | ev.xexpose.width, ev.xexpose.height, False); |
|
|
1548 | } |
1554 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)); |
1549 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)); |
1555 | |
1550 | |
1556 | ev.xany.type = ev.xany.type == Expose ? GraphicsExpose : Expose; |
1551 | ev.xany.type = ev.xany.type == Expose ? GraphicsExpose : Expose; |
1557 | |
1552 | |
1558 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)) |
1553 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)) |
|
|
1554 | { |
1559 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1555 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1560 | ev.xexpose.width, ev.xexpose.height, False); |
1556 | ev.xexpose.width, ev.xexpose.height, False); |
1561 | |
1557 | } |
1562 | want_refresh = 1; |
1558 | want_refresh = 1; |
1563 | } |
1559 | } |
1564 | else |
1560 | else |
1565 | { |
1561 | { |
1566 | XEvent unused_event; |
1562 | XEvent unused_event; |
… | |
… | |
1744 | } |
1740 | } |
1745 | #endif |
1741 | #endif |
1746 | #if ENABLE_FRILLS |
1742 | #if ENABLE_FRILLS |
1747 | if (option (Opt_urgentOnBell)) |
1743 | if (option (Opt_urgentOnBell)) |
1748 | { |
1744 | { |
1749 | XWMHints *h; |
|
|
1750 | |
|
|
1751 | h = XGetWMHints(dpy, parent[0]); |
1745 | if (XWMHints *h = XGetWMHints(dpy, parent[0])) |
1752 | if (h != NULL) |
|
|
1753 | { |
1746 | { |
1754 | h->flags &= ~XUrgencyHint; |
1747 | h->flags &= ~XUrgencyHint; |
1755 | XSetWMHints(dpy, parent[0], h); |
1748 | XSetWMHints (dpy, parent[0], h); |
1756 | } |
1749 | } |
1757 | } |
1750 | } |
1758 | #endif |
1751 | #endif |
1759 | } |
1752 | } |
1760 | } |
1753 | } |
… | |
… | |
3436 | } |
3429 | } |
3437 | |
3430 | |
3438 | break; |
3431 | break; |
3439 | #endif |
3432 | #endif |
3440 | |
3433 | |
3441 | #if XPM_BACKGROUND |
3434 | #if BG_IMAGE_FROM_FILE |
3442 | case Rxvt_Pixmap: |
3435 | case Rxvt_Pixmap: |
3443 | if (!strcmp (str, "?")) |
3436 | if (!strcmp (str, "?")) |
3444 | { |
3437 | { |
3445 | char str[256]; |
3438 | char str[256]; |
3446 | |
3439 | |
… | |
… | |
4009 | |
4002 | |
4010 | if (v_buflen == 0) |
4003 | if (v_buflen == 0) |
4011 | { |
4004 | { |
4012 | free (v_buffer); |
4005 | free (v_buffer); |
4013 | v_buffer = 0; |
4006 | v_buffer = 0; |
4014 | v_buflen = 0; |
|
|
4015 | |
4007 | |
4016 | pty_ev.set (EVENT_READ); |
4008 | pty_ev.set (EVENT_READ); |
4017 | return; |
4009 | return; |
4018 | } |
4010 | } |
4019 | |
4011 | |