add more to the composite api

SVN revision: 39700
This commit is contained in:
Viktor Kojouharov 2009-03-24 21:31:05 +00:00
parent 47d3a66c13
commit 180d492816
2 changed files with 85 additions and 0 deletions

View File

@ -107,6 +107,11 @@ typedef enum _Ecore_X_GC_Value_Mask {
ECORE_X_GC_VALUE_MASK_ARC_MODE = (1L << 22)
} Ecore_X_GC_Value_Mask;
typedef enum _Ecore_X_Composite_Update_Type {
ECORE_X_COMPOSITE_UPDATE_AUTOMATIC,
ECORE_X_COMPOSITE_UPDATE_MANUAL
} Ecore_X_Composite_Update_Type;
typedef enum _Ecore_X_Window_State {
/** The window is iconified. */
ECORE_X_WINDOW_STATE_ICONIFIED,
@ -1605,6 +1610,10 @@ EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore
/* XComposite Extension Support */
EAPI int ecore_x_composite_query(void);
EAPI void ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
EAPI void ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
EAPI void ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
EAPI void ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
EAPI Ecore_X_Pixmap ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win);
/* XDamage Extension Support */

View File

@ -31,6 +31,82 @@ ecore_x_composite_query(void)
return _composite_available;
}
EAPI void
ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
{
int update;
#ifdef ECORE_XCOMPOSITE
switch(type)
{
case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
update = CompositeRedirectAutomatic;
break;
case ECORE_X_COMPOSITE_UPDATE_MANUAL:
update = CompositeRedirectManual;
break;
}
XCompositeRedirectWindow(_ecore_x_disp, win, update);
#endif
}
EAPI void
ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
{
int update;
#ifdef ECORE_XCOMPOSITE
switch(type)
{
case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
update = CompositeRedirectAutomatic;
break;
case ECORE_X_COMPOSITE_UPDATE_MANUAL:
update = CompositeRedirectManual;
break;
}
XCompositeRedirectSubwindows(_ecore_x_disp, win, update);
#endif
}
EAPI void
ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
{
int update;
#ifdef ECORE_XCOMPOSITE
switch(type)
{
case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
update = CompositeRedirectAutomatic;
break;
case ECORE_X_COMPOSITE_UPDATE_MANUAL:
update = CompositeRedirectManual;
break;
}
XCompositeUnredirectWindow(_ecore_x_disp, win, update);
#endif
}
EAPI void
ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
{
int update;
#ifdef ECORE_XCOMPOSITE
switch(type)
{
case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
update = CompositeRedirectAutomatic;
break;
case ECORE_X_COMPOSITE_UPDATE_MANUAL:
update = CompositeRedirectManual;
break;
}
XCompositeUnredirectSubwindows(_ecore_x_disp, win, update);
#endif
}
EAPI Ecore_X_Pixmap
ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win)
{