forked from enlightenment/enlightenment
Add composite support for popups (shelves, menus and exebuf)
configurable via enlightenment_remote. SVN revision: 27081
This commit is contained in:
parent
2d3c6a7ecb
commit
33a1a91f02
|
@ -360,6 +360,7 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, evas_engine_drag, INT); /**/
|
||||
E_CONFIG_VAL(D, T, evas_engine_win, INT); /**/
|
||||
E_CONFIG_VAL(D, T, evas_engine_zone, INT); /**/
|
||||
E_CONFIG_VAL(D, T, use_composite, INT); /**/
|
||||
E_CONFIG_VAL(D, T, language, STR); /**/
|
||||
E_CONFIG_LIST(D, T, modules, _e_config_module_edd); /**/
|
||||
E_CONFIG_LIST(D, T, font_fallbacks, _e_config_font_fallback_edd); /**/
|
||||
|
@ -579,6 +580,7 @@ e_config_init(void)
|
|||
e_config->evas_engine_drag = E_EVAS_ENGINE_DEFAULT;
|
||||
e_config->evas_engine_win = E_EVAS_ENGINE_DEFAULT;
|
||||
e_config->evas_engine_zone = E_EVAS_ENGINE_DEFAULT;
|
||||
e_config->use_composite = 0;
|
||||
e_config->language = NULL;
|
||||
e_config->window_placement_policy = E_WINDOW_PLACEMENT_SMART;
|
||||
e_config->focus_policy = E_FOCUS_SLOPPY;
|
||||
|
|
|
@ -109,6 +109,7 @@ struct _E_Config
|
|||
int evas_engine_drag; // NO GUI - maybe remove?
|
||||
int evas_engine_win; // NO GUI - maybe remove?
|
||||
int evas_engine_zone; // NO GUI - maybe remove?
|
||||
int use_composite; // NO GUI
|
||||
const char *language; // GUI
|
||||
Evas_List *modules; // GUI
|
||||
Evas_List *font_fallbacks; // GUI
|
||||
|
|
|
@ -7592,3 +7592,43 @@ break;
|
|||
END_INT;
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_USE_COMPOSITE_SET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-use-composite-set", 1, "Set whether composite should be used", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_INT(atoi(params[0]), HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
START_INT(val, HDL);
|
||||
e_config->use_composite = val;
|
||||
E_CONFIG_LIMIT(e_config->use_composite, 0, 1);
|
||||
SAVE;
|
||||
END_INT;
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_USE_COMPOSITE_GET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-use-composite-get", 0, "Get whether composite should be used", 1, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
SEND_INT(e_config->use_composite, E_IPC_OP_USE_COMPOSITE_GET_REPLY, HDL);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_USE_COMPOSITE_GET_REPLY
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
#elif (TYPE == E_WM_IN)
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
START_INT(val, HDL);
|
||||
printf("REPLY: %d\n", val);
|
||||
END_INT;
|
||||
#endif
|
||||
#undef HDL
|
||||
|
|
|
@ -389,3 +389,7 @@
|
|||
#define E_IPC_OP_EDGE_FLIP_DRAGGING_SET 360
|
||||
#define E_IPC_OP_EDGE_FLIP_DRAGGING_GET 361
|
||||
#define E_IPC_OP_EDGE_FLIP_DRAGGING_GET_REPLY 362
|
||||
|
||||
#define E_IPC_OP_USE_COMPOSITE_SET 363
|
||||
#define E_IPC_OP_USE_COMPOSITE_GET 364
|
||||
#define E_IPC_OP_USE_COMPOSITE_GET_REPLY 365
|
||||
|
|
|
@ -169,7 +169,14 @@ e_popup_edje_bg_object_set(E_Popup *pop, Evas_Object *o)
|
|||
pop->shaped = 1;
|
||||
else
|
||||
pop->shaped = 0;
|
||||
ecore_evas_shaped_set(pop->ecore_evas, pop->shaped);
|
||||
if (e_config->use_composite)
|
||||
{
|
||||
ecore_evas_alpha_set(pop->ecore_evas, pop->shaped);
|
||||
pop->evas_win = ecore_evas_software_x11_window_get(pop->ecore_evas);
|
||||
e_container_window_raise(pop->zone->container, pop->evas_win, pop->layer);
|
||||
}
|
||||
else
|
||||
ecore_evas_shaped_set(pop->ecore_evas, pop->shaped);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue