Mercurial > mplayer.hg
comparison libvo/x11_common.c @ 25609:dc64735e7391
Remove most of the messy screensaver code in favour of only XResetScreenSaver
author | reimar |
---|---|
date | Mon, 07 Jan 2008 12:18:27 +0000 |
parents | 3ada48a71450 |
children | ca8190e97ac3 |
comparison
equal
deleted
inserted
replaced
25608:3ada48a71450 | 25609:dc64735e7391 |
---|---|
1661 static unsigned int time_last; | 1661 static unsigned int time_last; |
1662 | 1662 |
1663 void xscreensaver_heartbeat(void) | 1663 void xscreensaver_heartbeat(void) |
1664 { | 1664 { |
1665 unsigned int time = GetTimerMS(); | 1665 unsigned int time = GetTimerMS(); |
1666 XEvent ev; | 1666 |
1667 | 1667 if (mDisplay && screensaver_off && (time - time_last) > 30000) |
1668 if (mDisplay && xs_windowid && (time - time_last) > 30000) | |
1669 { | 1668 { |
1670 time_last = time; | 1669 time_last = time; |
1671 | 1670 |
1672 ev.xany.type = ClientMessage; | 1671 XResetScreenSaver(mDisplay); |
1673 ev.xclient.display = mDisplay; | 1672 } |
1674 ev.xclient.window = xs_windowid; | |
1675 ev.xclient.message_type = screensaver; | |
1676 ev.xclient.format = 32; | |
1677 memset(&ev.xclient.data, 0, sizeof(ev.xclient.data)); | |
1678 ev.xclient.data.l[0] = (long) deactivate; | |
1679 | |
1680 mp_msg(MSGT_VO, MSGL_DBG2, "Pinging xscreensaver.\n"); | |
1681 old_handler = XSetErrorHandler(badwindow_handler); | |
1682 XSendEvent(mDisplay, xs_windowid, False, 0L, &ev); | |
1683 XSync(mDisplay, False); | |
1684 XSetErrorHandler(old_handler); | |
1685 } | |
1686 } | |
1687 | |
1688 static void xscreensaver_disable(Display * dpy) | |
1689 { | |
1690 mp_msg(MSGT_VO, MSGL_DBG2, "xscreensaver_disable()\n"); | |
1691 | |
1692 xs_windowid = find_xscreensaver_window(dpy); | |
1693 if (!xs_windowid) | |
1694 { | |
1695 mp_msg(MSGT_VO, MSGL_INFO, MSGTR_CouldNotFindXScreenSaver); | |
1696 return; | |
1697 } | |
1698 mp_msg(MSGT_VO, MSGL_INFO, | |
1699 "xscreensaver_disable: xscreensaver wid=%ld.\n", xs_windowid); | |
1700 | |
1701 deactivate = XInternAtom(dpy, "DEACTIVATE", False); | |
1702 screensaver = XInternAtom(dpy, "SCREENSAVER", False); | |
1703 } | |
1704 | |
1705 static void xscreensaver_enable(void) | |
1706 { | |
1707 xs_windowid = 0; | |
1708 } | 1673 } |
1709 | 1674 |
1710 static int xss_suspend(Bool suspend) | 1675 static int xss_suspend(Bool suspend) |
1711 { | 1676 { |
1712 #ifndef HAVE_XSS | 1677 #ifndef HAVE_XSS |
1763 } | 1728 } |
1764 } | 1729 } |
1765 dpms_disabled = 0; | 1730 dpms_disabled = 0; |
1766 } | 1731 } |
1767 #endif | 1732 #endif |
1768 | |
1769 if (timeout_save) | |
1770 { | |
1771 int dummy, interval, prefer_blank, allow_exp; | |
1772 | |
1773 XGetScreenSaver(mDisplay, &dummy, &interval, &prefer_blank, | |
1774 &allow_exp); | |
1775 XSetScreenSaver(mDisplay, timeout_save, interval, prefer_blank, | |
1776 allow_exp); | |
1777 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, | |
1778 &allow_exp); | |
1779 timeout_save = 0; | |
1780 } | |
1781 | |
1782 if (stop_xscreensaver) | |
1783 xscreensaver_enable(); | |
1784 if (kdescreensaver_was_running && stop_xscreensaver) | |
1785 { | |
1786 system | |
1787 ("dcop kdesktop KScreensaverIface enable true 2>/dev/null >/dev/null"); | |
1788 kdescreensaver_was_running = 0; | |
1789 } | |
1790 | |
1791 | |
1792 } | 1733 } |
1793 | 1734 |
1794 void saver_off(Display * mDisplay) | 1735 void saver_off(Display * mDisplay) |
1795 { | 1736 { |
1796 int nothing; | 1737 int nothing; |
1816 stat = DPMSDisable(mDisplay); // monitor powersave off | 1757 stat = DPMSDisable(mDisplay); // monitor powersave off |
1817 mp_msg(MSGT_VO, MSGL_V, "DPMSDisable stat: %d\n", stat); | 1758 mp_msg(MSGT_VO, MSGL_V, "DPMSDisable stat: %d\n", stat); |
1818 } | 1759 } |
1819 } | 1760 } |
1820 #endif | 1761 #endif |
1821 if (!timeout_save) | |
1822 { | |
1823 int interval, prefer_blank, allow_exp; | |
1824 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, | |
1825 &allow_exp); | |
1826 if (timeout_save) | |
1827 XSetScreenSaver(mDisplay, 0, interval, prefer_blank, | |
1828 allow_exp); | |
1829 } | |
1830 // turning off screensaver | |
1831 if (stop_xscreensaver) | |
1832 xscreensaver_disable(mDisplay); | |
1833 if (stop_xscreensaver && !kdescreensaver_was_running) | |
1834 { | |
1835 kdescreensaver_was_running = | |
1836 (system | |
1837 ("dcop kdesktop KScreensaverIface isEnabled 2>/dev/null | sed 's/1/true/g' | grep true 2>/dev/null >/dev/null") | |
1838 == 0); | |
1839 if (kdescreensaver_was_running) | |
1840 system | |
1841 ("dcop kdesktop KScreensaverIface enable false 2>/dev/null >/dev/null"); | |
1842 } | |
1843 } | 1762 } |
1844 | 1763 |
1845 static XErrorHandler old_handler = NULL; | 1764 static XErrorHandler old_handler = NULL; |
1846 static int selectinput_err = 0; | 1765 static int selectinput_err = 0; |
1847 static int x11_selectinput_errorhandler(Display * display, | 1766 static int x11_selectinput_errorhandler(Display * display, |