forked from enlightenment/efl
add in custom screen blank enable/disable in ecore-x so we can do e17
based on this release of efl. SVN revision: 75714
This commit is contained in:
parent
3b197e9a54
commit
3faee27bd8
|
@ -865,3 +865,8 @@
|
||||||
2012-08-18 Carsten Haitzler (The Rasterman)
|
2012-08-18 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
* Add xkb change events patch from trac.
|
* Add xkb change events patch from trac.
|
||||||
|
|
||||||
|
2012-08-27 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
|
* Add ecore_x custom blanker screensaver enable/disable - cant
|
||||||
|
do e17 properly without so add in even in freeze.
|
||||||
|
|
|
@ -1707,6 +1707,8 @@ EAPI int ecore_x_screensaver_expose_get(void);
|
||||||
EAPI void ecore_x_screensaver_interval_set(int timeout);
|
EAPI void ecore_x_screensaver_interval_set(int timeout);
|
||||||
EAPI int ecore_x_screensaver_interval_get(void);
|
EAPI int ecore_x_screensaver_interval_get(void);
|
||||||
EAPI void ecore_x_screensaver_event_listen_set(Eina_Bool on);
|
EAPI void ecore_x_screensaver_event_listen_set(Eina_Bool on);
|
||||||
|
EAPI Eina_Bool ecore_x_screensaver_custom_blanking_enable(void); /** @since 1.7 */
|
||||||
|
EAPI Eina_Bool ecore_x_screensaver_custom_blanking_disable(void); /** @since 1.7 */
|
||||||
|
|
||||||
/* FIXME: these funcs need categorising */
|
/* FIXME: these funcs need categorising */
|
||||||
|
|
||||||
|
|
|
@ -1995,7 +1995,8 @@ _ecore_xcb_event_handle_screensaver_notify(xcb_generic_event_t *event)
|
||||||
|
|
||||||
e->win = ev->window;
|
e->win = ev->window;
|
||||||
e->on = EINA_FALSE;
|
e->on = EINA_FALSE;
|
||||||
if (ev->state == XCB_SCREENSAVER_STATE_ON) e->on = EINA_TRUE;
|
if ((ev->state == XCB_SCREENSAVER_STATE_ON) ||
|
||||||
|
(ev->state == XCB_SCREENSAVER_STATE_CYCLE)) e->on = EINA_TRUE;
|
||||||
e->time = ev->time;
|
e->time = ev->time;
|
||||||
|
|
||||||
ecore_event_add(ECORE_X_EVENT_SCREENSAVER_NOTIFY, e, NULL, NULL);
|
ecore_event_add(ECORE_X_EVENT_SCREENSAVER_NOTIFY, e, NULL, NULL);
|
||||||
|
|
|
@ -324,7 +324,9 @@ ecore_x_screensaver_event_listen_set(Eina_Bool on)
|
||||||
root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
|
root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
|
||||||
if (on)
|
if (on)
|
||||||
xcb_screensaver_select_input(_ecore_xcb_conn, root,
|
xcb_screensaver_select_input(_ecore_xcb_conn, root,
|
||||||
XCB_SCREENSAVER_EVENT_NOTIFY_MASK);
|
XCB_SCREENSAVER_EVENT_NOTIFY_MASK |
|
||||||
|
XCB_SCREENSAVER_EVENT_CYCLE_MASK
|
||||||
|
);
|
||||||
else
|
else
|
||||||
xcb_screensaver_select_input(_ecore_xcb_conn, root, 0);
|
xcb_screensaver_select_input(_ecore_xcb_conn, root, 0);
|
||||||
#endif
|
#endif
|
||||||
|
@ -336,3 +338,34 @@ ecore_x_screensaver_event_available_get(void)
|
||||||
return _screensaver_avail;
|
return _screensaver_avail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI Eina_Bool
|
||||||
|
ecore_x_screensaver_custom_blanking_enable(void)
|
||||||
|
{
|
||||||
|
#ifdef ECORE_XCB_SCREENSAVER
|
||||||
|
uint32_t mask_list[9];
|
||||||
|
|
||||||
|
xcb_screensaver_set_attributes_checked
|
||||||
|
(_ecore_xcb_conn,
|
||||||
|
((xcb_screen_t *)_ecore_xcb_screen)->root,
|
||||||
|
-9999, -9999, 1, 1, 0,
|
||||||
|
XCB_WINDOW_CLASS_INPUT_ONLY.
|
||||||
|
XCB_COPY_FROM_PARENT, XCB_COPY_FROM_PARENT,
|
||||||
|
0, mask_list);
|
||||||
|
return EINA_TRUE;
|
||||||
|
#else
|
||||||
|
return EINA_FALSE;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Eina_Bool
|
||||||
|
ecore_x_screensaver_custom_blanking_disable(void)
|
||||||
|
{
|
||||||
|
#ifdef ECORE_XCB_SCREENSAVER
|
||||||
|
xcb_screensaver_unset_attributes_checked
|
||||||
|
(_ecore_xcb_conn,
|
||||||
|
((xcb_screen_t *)_ecore_xcb_screen)->root);
|
||||||
|
return EINA_TRUE;
|
||||||
|
#else
|
||||||
|
return EINA_FALSE;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
|
@ -2007,7 +2007,8 @@ _ecore_x_event_handle_screensaver_notify(XEvent *xevent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
e->win = screensaver_event->window;
|
e->win = screensaver_event->window;
|
||||||
if (screensaver_event->state == ScreenSaverOn)
|
if ((screensaver_event->state == ScreenSaverOn) ||
|
||||||
|
(screensaver_event->state == ScreenSaverCycle))
|
||||||
e->on = EINA_TRUE;
|
e->on = EINA_TRUE;
|
||||||
else
|
else
|
||||||
e->on = EINA_FALSE;
|
e->on = EINA_FALSE;
|
||||||
|
|
|
@ -162,7 +162,8 @@ ecore_x_screensaver_event_listen_set(Eina_Bool on)
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
root = DefaultRootWindow(_ecore_x_disp);
|
root = DefaultRootWindow(_ecore_x_disp);
|
||||||
if (on)
|
if (on)
|
||||||
XScreenSaverSelectInput(_ecore_x_disp, root, ScreenSaverNotifyMask);
|
XScreenSaverSelectInput(_ecore_x_disp, root,
|
||||||
|
ScreenSaverNotifyMask | ScreenSaverCycle);
|
||||||
else
|
else
|
||||||
XScreenSaverSelectInput(_ecore_x_disp, root, 0);
|
XScreenSaverSelectInput(_ecore_x_disp, root, 0);
|
||||||
#else
|
#else
|
||||||
|
@ -171,3 +172,33 @@ ecore_x_screensaver_event_listen_set(Eina_Bool on)
|
||||||
#endif /* ifdef ECORE_XSS */
|
#endif /* ifdef ECORE_XSS */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EAPI Eina_Bool
|
||||||
|
ecore_x_screensaver_custom_blanking_enable(void)
|
||||||
|
{
|
||||||
|
#ifdef ECORE_XSS
|
||||||
|
XSetWindowAttributes attr;
|
||||||
|
|
||||||
|
XScreenSaverSetAttributes(_ecore_x_disp,
|
||||||
|
DefaultRootWindow(_ecore_x_disp),
|
||||||
|
-9999, -9999, 1, 1, 0,
|
||||||
|
CopyFromParent, InputOnly, CopyFromParent,
|
||||||
|
0, &attr);
|
||||||
|
return EINA_TRUE;
|
||||||
|
#else
|
||||||
|
return EINA_FALSE;
|
||||||
|
#endif /* ifdef ECORE_XSS */
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Eina_Bool
|
||||||
|
ecore_x_screensaver_custom_blanking_disable(void)
|
||||||
|
{
|
||||||
|
#ifdef ECORE_XSS
|
||||||
|
XScreenSaverUnsetAttributes(_ecore_x_disp,
|
||||||
|
DefaultRootWindow(_ecore_x_disp));
|
||||||
|
return EINA_TRUE;
|
||||||
|
#else
|
||||||
|
return EINA_FALSE;
|
||||||
|
#endif /* ifdef ECORE_XSS */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue