ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/command.C
(Generate patch)

Comparing rxvt-unicode/src/command.C (file contents):
Revision 1.556 by sf-exg, Mon Aug 18 07:20:05 2014 UTC vs.
Revision 1.566 by sf-exg, Sat Sep 12 14:03:35 2015 UTC

210 210
211 max_it (width, strlen (attr)); 211 max_it (width, strlen (attr));
212 212
213 if (y >= 0) 213 if (y >= 0)
214 { 214 {
215 y = (y >= nrow - len - 4 && x < width + 2) ? 0 : -1; 215 y = (y >= nrow - len - 5 && x < width + 2) ? 0 : -1;
216 x = 0; 216 x = 0;
217 } 217 }
218 218
219 scr_overlay_new (x, y, width, len * 2 + 2); 219 scr_overlay_new (x, y, width, len * 2 + 2);
220 220
1034 1034
1035#ifdef CURSOR_BLINK 1035#ifdef CURSOR_BLINK
1036void 1036void
1037rxvt_term::cursor_blink_reset () 1037rxvt_term::cursor_blink_reset ()
1038{ 1038{
1039 if (!focus)
1040 return;
1041
1039 if (hidden_cursor) 1042 if (hidden_cursor)
1040 { 1043 {
1041 hidden_cursor = 0; 1044 hidden_cursor = 0;
1042 want_refresh = 1; 1045 want_refresh = 1;
1043 } 1046 }
1044 1047
1045 if (option (Opt_cursorBlink)) 1048 if (option (Opt_cursorBlink) || (priv_modes & PrivMode_BlinkingCursor))
1046 cursor_blink_ev.again (); 1049 cursor_blink_ev.again ();
1047 else 1050 else
1048 cursor_blink_ev.stop (); 1051 cursor_blink_ev.stop ();
1049} 1052}
1050 1053
1239 1242
1240void ecb_cold 1243void ecb_cold
1241rxvt_term::pointer_unblank () 1244rxvt_term::pointer_unblank ()
1242{ 1245{
1243 XDefineCursor (dpy, vt, TermWin_cursor); 1246 XDefineCursor (dpy, vt, TermWin_cursor);
1244 recolour_cursor (); 1247 recolor_cursor ();
1245 1248
1246#ifdef POINTER_BLANK 1249#ifdef POINTER_BLANK
1247 hidden_pointer = 0; 1250 hidden_pointer = 0;
1248 1251
1249 if (option (Opt_pointerBlank)) 1252 if (option (Opt_pointerBlank))
1609 case MotionNotify: 1612 case MotionNotify:
1610#ifdef POINTER_BLANK 1613#ifdef POINTER_BLANK
1611 if (hidden_pointer) 1614 if (hidden_pointer)
1612 pointer_unblank (); 1615 pointer_unblank ();
1613#endif 1616#endif
1617 if (!bypass_keystate
1614 if ((priv_modes & PrivMode_MouseBtnEvent && ev.xbutton.state & (Button1Mask|Button2Mask|Button3Mask)) 1618 && ((priv_modes & PrivMode_MouseBtnEvent && ev.xbutton.state & (Button1Mask|Button2Mask|Button3Mask))
1615 || priv_modes & PrivMode_MouseAnyEvent) 1619 || priv_modes & PrivMode_MouseAnyEvent))
1616 mouse_report (ev.xbutton); 1620 mouse_report (ev.xbutton);
1617 if ((priv_modes & PrivMode_mouse_report) && !bypass_keystate) 1621 if ((priv_modes & PrivMode_mouse_report) && !bypass_keystate)
1618 break; 1622 break;
1619 1623
1620 if (ev.xany.window == vt) 1624 if (ev.xany.window == vt)
1632 &unused_root_x, &unused_root_y, 1636 &unused_root_x, &unused_root_y,
1633 &ev.xbutton.x, &ev.xbutton.y, 1637 &ev.xbutton.x, &ev.xbutton.y,
1634 &ev.xbutton.state); 1638 &ev.xbutton.state);
1635#ifdef MOUSE_THRESHOLD 1639#ifdef MOUSE_THRESHOLD
1636 /* deal with a `jumpy' mouse */ 1640 /* deal with a `jumpy' mouse */
1637 if ((ev.xmotion.time - MEvent.time) > MOUSE_THRESHOLD) 1641 if (ev.xmotion.time - MEvent.time > MOUSE_THRESHOLD)
1642#endif
1638 { 1643 {
1639#endif
1640#if ISO_14755 1644#if ISO_14755
1641 // 5.4 1645 // 5.4
1642 if (iso14755buf & (ISO_14755_STARTED | ISO_14755_54)) 1646 if (iso14755buf & (ISO_14755_STARTED | ISO_14755_54))
1643 { 1647 {
1644 iso14755_54 (ev.xbutton.x, ev.xbutton.y); 1648 iso14755_54 (ev.xbutton.x, ev.xbutton.y);
1693 * shouldn't be scrolling 1697 * shouldn't be scrolling
1694 */ 1698 */
1695 sel_scroll_ev.stop(); 1699 sel_scroll_ev.stop();
1696 } 1700 }
1697#endif 1701#endif
1698#ifdef MOUSE_THRESHOLD
1699 } 1702 }
1700#endif
1701 } 1703 }
1702 } 1704 }
1703 else if (scrollBar.state == SB_STATE_MOTION && ev.xany.window == scrollBar.win) 1705 else if (scrollBar.state == SB_STATE_MOTION && ev.xany.window == scrollBar.win)
1704 { 1706 {
1705 while (XCheckTypedWindowEvent (dpy, scrollBar.win, 1707 while (XCheckTypedWindowEvent (dpy, scrollBar.win,
1779#endif 1781#endif
1780#if OFF_FOCUS_FADING 1782#if OFF_FOCUS_FADING
1781 if (rs[Rs_fade]) 1783 if (rs[Rs_fade])
1782 { 1784 {
1783 pix_colors = pix_colors_focused; 1785 pix_colors = pix_colors_focused;
1784 scr_recolour (); 1786 scr_recolor ();
1785 } 1787 }
1786#endif 1788#endif
1787#if ENABLE_FRILLS 1789#if ENABLE_FRILLS
1788 if (option (Opt_urgentOnBell)) 1790 if (option (Opt_urgentOnBell))
1789 set_urgency (0); 1791 set_urgency (0);
1826#endif 1828#endif
1827#if OFF_FOCUS_FADING 1829#if OFF_FOCUS_FADING
1828 if (rs[Rs_fade]) 1830 if (rs[Rs_fade])
1829 { 1831 {
1830 pix_colors = pix_colors_unfocused; 1832 pix_colors = pix_colors_unfocused;
1831 scr_recolour (); 1833 scr_recolor ();
1832 } 1834 }
1833#endif 1835#endif
1834 1836
1835 HOOK_INVOKE ((this, HOOK_FOCUS_OUT, DT_END)); 1837 HOOK_INVOKE ((this, HOOK_FOCUS_OUT, DT_END));
1836 } 1838 }
1837} 1839}
1838 1840
1839void ecb_cold 1841void ecb_cold
1840rxvt_term::update_fade_color (unsigned int idx) 1842rxvt_term::update_fade_color (unsigned int idx, bool first_time)
1841{ 1843{
1842#if OFF_FOCUS_FADING 1844#if OFF_FOCUS_FADING
1843 if (rs[Rs_fade]) 1845 if (rs[Rs_fade])
1844 { 1846 {
1847 if (!first_time)
1848 pix_colors_focused [idx].free (this);
1849
1845 rgba c; 1850 rgba c;
1846 pix_colors [Color_fade].get (c); 1851 pix_colors [Color_fade].get (c);
1847 pix_colors_focused [idx].fade (this, atoi (rs[Rs_fade]), pix_colors_unfocused [idx], c); 1852 pix_colors_focused [idx].fade (this, atoi (rs[Rs_fade]), pix_colors_unfocused [idx], c);
1848 } 1853 }
1849#endif 1854#endif
2571 scr_charset_choose (0); 2576 scr_charset_choose (0);
2572 break; 2577 break;
2573 2578
2574#ifdef EIGHT_BIT_CONTROLS 2579#ifdef EIGHT_BIT_CONTROLS
2575 // 8-bit controls 2580 // 8-bit controls
2576 case 0x90: /* DCS */ 2581 case 0x90: /* DCS */
2577 process_dcs_seq (); 2582 process_dcs_seq ();
2578 break; 2583 break;
2579 case 0x9b: /* CSI */ 2584 case 0x9b: /* CSI */
2580 process_csi_seq (); 2585 process_csi_seq ();
2581 break; 2586 break;
2582 case 0x9d: /* OSC */ 2587 case 0x9d: /* OSC */
2583 process_osc_seq (); 2588 process_osc_seq ();
2584 break; 2589 break;
2585#endif 2590#endif
2586 } 2591 }
2587} 2592}
3680 { 5, PrivMode_rVideo }, // DECSCNM 3685 { 5, PrivMode_rVideo }, // DECSCNM
3681 { 6, PrivMode_relOrigin }, // DECOM 3686 { 6, PrivMode_relOrigin }, // DECOM
3682 { 7, PrivMode_Autowrap }, // DECAWM 3687 { 7, PrivMode_Autowrap }, // DECAWM
3683 // 8, auto-repeat keys // DECARM 3688 // 8, auto-repeat keys // DECARM
3684 { 9, PrivMode_MouseX10 }, 3689 { 9, PrivMode_MouseX10 },
3690 { 12, PrivMode_BlinkingCursor },
3685 // 18 end FF to printer after print screen 3691 // 18 end FF to printer after print screen
3686 // 19 Print screen prints full screen/scroll region 3692 // 19 Print screen prints full screen/scroll region
3687 { 25, PrivMode_VisibleCursor }, // DECTCEM cnorm/cvvis/civis 3693 { 25, PrivMode_VisibleCursor }, // DECTCEM cnorm/cvvis/civis
3688#ifdef scrollBar_esc 3694#ifdef scrollBar_esc
3689 { scrollBar_esc, PrivMode_scrollBar }, 3695 { scrollBar_esc, PrivMode_scrollBar },
3798 scrollBar.map (state); 3804 scrollBar.map (state);
3799 resize_all_windows (0, 0, 0); 3805 resize_all_windows (0, 0, 0);
3800 scr_touch (true); 3806 scr_touch (true);
3801 break; 3807 break;
3802#endif 3808#endif
3809#ifdef CURSOR_BLINK
3810 case 12:
3811 cursor_blink_reset ();
3812 break;
3813#endif
3803 case 25: /* visible/invisible cursor */ 3814 case 25: /* visible/invisible cursor */
3804 scr_cursor_visible (state); 3815 scr_cursor_visible (state);
3805 break; 3816 break;
3806 /* case 35: - shift keys */ 3817 /* case 35: - shift keys */
3807 /* case 40: - 80 <--> 132 mode */ 3818 /* case 40: - 80 <--> 132 mode */
3912 //case 19: // ninth alt font 3923 //case 19: // ninth alt font
3913 //case 20: // gothic 3924 //case 20: // gothic
3914 case 21: // disable bold, faint, sometimes doubly underlined (iso 8613) 3925 case 21: // disable bold, faint, sometimes doubly underlined (iso 8613)
3915 rendset = 0, rendstyle = RS_Bold; 3926 rendset = 0, rendstyle = RS_Bold;
3916 break; 3927 break;
3917 case 22: // normal intensity 3928 case 22: // bold off (vt220)
3918 rendset = 0, rendstyle = RS_Bold; 3929 rendset = 0, rendstyle = RS_Bold;
3919 break; 3930 break;
3920 case 23: // disable italic 3931 case 23: // disable italic
3921 rendset = 0, rendstyle = RS_Italic; 3932 rendset = 0, rendstyle = RS_Italic;
3922 break; 3933 break;
3923 case 24: 3934 case 24: // underline off (vt220)
3924 rendset = 0, rendstyle = RS_Uline; 3935 rendset = 0, rendstyle = RS_Uline;
3925 break; 3936 break;
3926 case 25: 3937 case 25: // blink off (vt220)
3927 rendset = 0, rendstyle = RS_Blink; 3938 rendset = 0, rendstyle = RS_Blink;
3928 break; 3939 break;
3929 case 26: // variable spacing (iso 8613) 3940 case 26: // variable spacing (iso 8613)
3930 rendset = 0, rendstyle = RS_Blink; 3941 rendset = 0, rendstyle = RS_Blink;
3931 break; 3942 break;
3932 case 27: 3943 case 27: // reverse off (vt220)
3933 rendset = 0, rendstyle = RS_RVid; 3944 rendset = 0, rendstyle = RS_RVid;
3934 break; 3945 break;
3935 //case 28: // visible. NYI 3946 //case 28: // visible. NYI
3936 //case 29: // not crossed-out 3947 //case 29: // not crossed-out
3937 } 3948 }
4015} 4026}
4016 4027
4017void 4028void
4018rxvt_term::set_cursor_style (int style) 4029rxvt_term::set_cursor_style (int style)
4019{ 4030{
4020 if (!IN_RANGE_INC (style, 0, 4)) 4031 if (!IN_RANGE_INC (style, 0, 6))
4021 return; 4032 return;
4022 4033
4034 if (style == 0)
4035 style = 1;
4036
4037 cursor_type = (style - 1) / 2;
4023 set_option (Opt_cursorUnderline, style >= 3); 4038 set_option (Opt_cursorUnderline, cursor_type == 1);
4024 4039
4025#ifdef CURSOR_BLINK 4040#ifdef CURSOR_BLINK
4026 set_option (Opt_cursorBlink, !style || (style & 1)); 4041 set_option (Opt_cursorBlink, style & 1);
4027 cursor_blink_reset (); 4042 cursor_blink_reset ();
4028#endif 4043#endif
4029 4044
4030 want_refresh = 1; 4045 want_refresh = 1;
4031} 4046}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines