… | |
… | |
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 | |
|
|
1040 | #ifdef HAVE_BG_PIXMAP |
|
|
1041 | if (bgPixmap.check_clearChanged ()) |
|
|
1042 | { |
|
|
1043 | // scr_clear (true); This needs to be researched further! |
|
|
1044 | scr_touch (false); |
|
|
1045 | } |
|
|
1046 | #endif |
1039 | |
1047 | |
1040 | if (want_refresh) |
1048 | if (want_refresh) |
1041 | { |
1049 | { |
1042 | if (SHOULD_INVOKE (HOOK_LINE_UPDATE)) |
1050 | if (SHOULD_INVOKE (HOOK_LINE_UPDATE)) |
1043 | { |
1051 | { |
… | |
… | |
1294 | rxvt_term::mouse_report (XButtonEvent &ev) |
1302 | rxvt_term::mouse_report (XButtonEvent &ev) |
1295 | { |
1303 | { |
1296 | int button_number, key_state = 0; |
1304 | int button_number, key_state = 0; |
1297 | int x, y; |
1305 | int x, y; |
1298 | |
1306 | |
1299 | x = ev.x; |
1307 | x = Pixel2Col (ev.x); |
1300 | y = ev.y; |
1308 | y = Pixel2Row (ev.y); |
1301 | pixel_position (&x, &y); |
|
|
1302 | |
1309 | |
1303 | if (MEvent.button == AnyButton) |
1310 | if (MEvent.button == AnyButton) |
1304 | button_number = 3; |
1311 | button_number = 3; |
1305 | else |
1312 | else |
1306 | { |
1313 | { |
… | |
… | |
1466 | && ev.xfocus.mode != NotifyGrab) |
1473 | && ev.xfocus.mode != NotifyGrab) |
1467 | focus_out (); |
1474 | focus_out (); |
1468 | break; |
1475 | break; |
1469 | |
1476 | |
1470 | case ConfigureNotify: |
1477 | case ConfigureNotify: |
1471 | /* fprintf (stderr, "ConfigureNotify for %X, parent is %X, geom is %dx%d%+d%+d, old geom was %dx%d\n", |
1478 | /* fprintf (stderr, "ConfigureNotify for %X, parent is %X, geom is %dx%d%+d%+d, old geom was %dx%d\n", |
1472 | ev.xconfigure.window, parent[0], ev.xconfigure.width, ev.xconfigure.height, ev.xconfigure.x, ev.xconfigure.y, |
1479 | ev.xconfigure.window, parent[0], ev.xconfigure.width, ev.xconfigure.height, ev.xconfigure.x, ev.xconfigure.y, |
1473 | szHint.width, szHint.height);*/ |
1480 | szHint.width, szHint.height); */ |
1474 | if (ev.xconfigure.window == parent[0]) |
1481 | if (ev.xconfigure.window == parent[0]) |
1475 | { |
1482 | { |
1476 | while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) |
1483 | while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) |
1477 | ; |
1484 | ; |
1478 | |
1485 | |
… | |
… | |
1532 | case GraphicsExpose: |
1539 | case GraphicsExpose: |
1533 | case Expose: |
1540 | case Expose: |
1534 | if (ev.xany.window == vt) |
1541 | if (ev.xany.window == vt) |
1535 | { |
1542 | { |
1536 | do |
1543 | do |
|
|
1544 | { |
1537 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1545 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1538 | ev.xexpose.width, ev.xexpose.height, False); |
1546 | ev.xexpose.width, ev.xexpose.height, False); |
|
|
1547 | } |
1539 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)); |
1548 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)); |
1540 | |
1549 | |
1541 | ev.xany.type = ev.xany.type == Expose ? GraphicsExpose : Expose; |
1550 | ev.xany.type = ev.xany.type == Expose ? GraphicsExpose : Expose; |
1542 | |
1551 | |
1543 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)) |
1552 | while (XCheckTypedWindowEvent (dpy, vt, ev.xany.type, &ev)) |
|
|
1553 | { |
1544 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1554 | scr_expose (ev.xexpose.x, ev.xexpose.y, |
1545 | ev.xexpose.width, ev.xexpose.height, False); |
1555 | ev.xexpose.width, ev.xexpose.height, False); |
1546 | |
1556 | } |
1547 | want_refresh = 1; |
1557 | want_refresh = 1; |
1548 | } |
1558 | } |
1549 | else |
1559 | else |
1550 | { |
1560 | { |
1551 | XEvent unused_event; |
1561 | XEvent unused_event; |
… | |
… | |
1729 | } |
1739 | } |
1730 | #endif |
1740 | #endif |
1731 | #if ENABLE_FRILLS |
1741 | #if ENABLE_FRILLS |
1732 | if (option (Opt_urgentOnBell)) |
1742 | if (option (Opt_urgentOnBell)) |
1733 | { |
1743 | { |
1734 | XWMHints *h; |
|
|
1735 | |
|
|
1736 | h = XGetWMHints(dpy, parent[0]); |
1744 | if (XWMHints *h = XGetWMHints(dpy, parent[0])) |
1737 | if (h != NULL) |
|
|
1738 | { |
1745 | { |
1739 | h->flags &= ~XUrgencyHint; |
1746 | h->flags &= ~XUrgencyHint; |
1740 | XSetWMHints(dpy, parent[0], h); |
1747 | XSetWMHints (dpy, parent[0], h); |
1741 | } |
1748 | } |
1742 | } |
1749 | } |
1743 | #endif |
1750 | #endif |
1744 | } |
1751 | } |
1745 | } |
1752 | } |
… | |
… | |
3421 | } |
3428 | } |
3422 | |
3429 | |
3423 | break; |
3430 | break; |
3424 | #endif |
3431 | #endif |
3425 | |
3432 | |
3426 | #if XPM_BACKGROUND |
3433 | #if BG_IMAGE_FROM_FILE |
3427 | case Rxvt_Pixmap: |
3434 | case Rxvt_Pixmap: |
3428 | if (!strcmp (str, "?")) |
3435 | if (!strcmp (str, "?")) |
3429 | { |
3436 | { |
3430 | char str[256]; |
3437 | char str[256]; |
3431 | |
3438 | |
… | |
… | |
3994 | |
4001 | |
3995 | if (v_buflen == 0) |
4002 | if (v_buflen == 0) |
3996 | { |
4003 | { |
3997 | free (v_buffer); |
4004 | free (v_buffer); |
3998 | v_buffer = 0; |
4005 | v_buffer = 0; |
3999 | v_buflen = 0; |
|
|
4000 | |
4006 | |
4001 | pty_ev.set (EVENT_READ); |
4007 | pty_ev.set (EVENT_READ); |
4002 | return; |
4008 | return; |
4003 | } |
4009 | } |
4004 | |
4010 | |