forked from enlightenment/enlightenment
---------------------------+------------------------------------------------
Reporter: ruben | Owner: raster Type: Bug | Status: new Priority: Major | Milestone: Enlightenment 0.17 Component: enlightenment | Keywords: dpms, fullscreen Blocking: | Blockedby: ---------------------------+------------------------------------------------ patch - Close Ticket #562 SVN revision: 50240
This commit is contained in:
parent
0b58ebf063
commit
38c5103bae
|
@ -6,6 +6,7 @@
|
||||||
static Ecore_Event_Handler *_e_dpms_handler_config_mode = NULL;
|
static Ecore_Event_Handler *_e_dpms_handler_config_mode = NULL;
|
||||||
static Ecore_Event_Handler *_e_dpms_handler_border_fullscreen = NULL;
|
static Ecore_Event_Handler *_e_dpms_handler_border_fullscreen = NULL;
|
||||||
static Ecore_Event_Handler *_e_dpms_handler_border_unfullscreen = NULL;
|
static Ecore_Event_Handler *_e_dpms_handler_border_unfullscreen = NULL;
|
||||||
|
static Ecore_Event_Handler *_e_dpms_handler_border_remove = NULL;
|
||||||
static int _e_dpms_fullscreen_count = 0;
|
static int _e_dpms_fullscreen_count = 0;
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
@ -19,6 +20,7 @@ static Eina_Bool
|
||||||
_e_dpms_handler_border_fullscreen_cb(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
|
_e_dpms_handler_border_fullscreen_cb(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
|
||||||
{
|
{
|
||||||
_e_dpms_fullscreen_count++;
|
_e_dpms_fullscreen_count++;
|
||||||
|
printf("incremented fs_count: %d\n", _e_dpms_fullscreen_count);
|
||||||
if (_e_dpms_fullscreen_count == 1) e_dpms_init();
|
if (_e_dpms_fullscreen_count == 1) e_dpms_init();
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
@ -27,17 +29,33 @@ static Eina_Bool
|
||||||
_e_dpms_handler_border_unfullscreen_cb(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
|
_e_dpms_handler_border_unfullscreen_cb(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
|
||||||
{
|
{
|
||||||
_e_dpms_fullscreen_count--;
|
_e_dpms_fullscreen_count--;
|
||||||
|
printf("decremented fs_count: %d\n", _e_dpms_fullscreen_count);
|
||||||
if (_e_dpms_fullscreen_count == 0) e_dpms_init();
|
if (_e_dpms_fullscreen_count == 0) e_dpms_init();
|
||||||
else if (_e_dpms_fullscreen_count < 0) _e_dpms_fullscreen_count = 0;
|
else if (_e_dpms_fullscreen_count < 0) _e_dpms_fullscreen_count = 0;
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_e_dpms_handler_border_remove_cb(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
|
{
|
||||||
|
E_Event_Border_Remove *ev = event;
|
||||||
|
|
||||||
|
if (ev->border->fullscreen) {
|
||||||
|
_e_dpms_fullscreen_count--;
|
||||||
|
printf("decremented fs_count from remove: %d\n", _e_dpms_fullscreen_count);
|
||||||
|
if (_e_dpms_fullscreen_count == 0) e_dpms_init();
|
||||||
|
else if (_e_dpms_fullscreen_count < 0) _e_dpms_fullscreen_count = 0;
|
||||||
|
}
|
||||||
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI int
|
EAPI int
|
||||||
e_dpms_init(void)
|
e_dpms_init(void)
|
||||||
{
|
{
|
||||||
int standby=0, suspend=0, off=0;
|
int standby=0, suspend=0, off=0;
|
||||||
int enabled = ((e_config->dpms_enable) && (!e_config->mode.presentation) &&
|
int enabled = ((e_config->dpms_enable) && (!e_config->mode.presentation) &&
|
||||||
(_e_dpms_fullscreen_count <= 0));
|
(_e_dpms_fullscreen_count <= 0));
|
||||||
|
printf("checking fs_count and if enabled: %d, %d\n", _e_dpms_fullscreen_count, enabled);
|
||||||
|
|
||||||
if (!_e_dpms_handler_config_mode)
|
if (!_e_dpms_handler_config_mode)
|
||||||
_e_dpms_handler_config_mode = ecore_event_handler_add
|
_e_dpms_handler_config_mode = ecore_event_handler_add
|
||||||
|
@ -51,6 +69,10 @@ e_dpms_init(void)
|
||||||
_e_dpms_handler_border_unfullscreen = ecore_event_handler_add
|
_e_dpms_handler_border_unfullscreen = ecore_event_handler_add
|
||||||
(E_EVENT_BORDER_UNFULLSCREEN, _e_dpms_handler_border_unfullscreen_cb, NULL);
|
(E_EVENT_BORDER_UNFULLSCREEN, _e_dpms_handler_border_unfullscreen_cb, NULL);
|
||||||
|
|
||||||
|
if (!_e_dpms_handler_border_remove)
|
||||||
|
_e_dpms_handler_border_remove = ecore_event_handler_add
|
||||||
|
(E_EVENT_BORDER_REMOVE, _e_dpms_handler_border_remove_cb, NULL);
|
||||||
|
|
||||||
ecore_x_dpms_enabled_set(enabled);
|
ecore_x_dpms_enabled_set(enabled);
|
||||||
if (!enabled)
|
if (!enabled)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue