forked from enlightenment/efl
Add support for XFixes and XDamage to Ecore_X.
Add atoms for translucency/composite support. SVN revision: 22729
This commit is contained in:
parent
3a63c7eab6
commit
dc3203d7da
|
@ -464,6 +464,75 @@ if test "x$have_ecore_x" = "xyes"; then
|
||||||
|
|
||||||
AC_SUBST(Xrender_cflags)
|
AC_SUBST(Xrender_cflags)
|
||||||
AC_SUBST(Xrender_libs)
|
AC_SUBST(Xrender_libs)
|
||||||
|
|
||||||
|
Xfixes_libs=""
|
||||||
|
Xfixes_cflags=""
|
||||||
|
use_Xfixes="no"
|
||||||
|
PCFLAGS=$CFLAGS
|
||||||
|
CFLAGS=$x_cflags" "$x_includes
|
||||||
|
AC_CHECK_HEADER(X11/extensions/Xfixes.h,
|
||||||
|
[
|
||||||
|
AC_CHECK_LIB(Xfixes, XFixesExpandRegion,
|
||||||
|
[
|
||||||
|
AC_DEFINE(ECORE_XFIXES, 1, [Build support for Xfixes])
|
||||||
|
Xfixes_cflags=""
|
||||||
|
Xfixes_libs="-lXfixes"
|
||||||
|
use_Xfixes="yes"
|
||||||
|
], [
|
||||||
|
Xfixes_cflags=""
|
||||||
|
Xfixes_libs=""
|
||||||
|
use_Xfixes="no"
|
||||||
|
], [
|
||||||
|
$x_libs $x_ldflags
|
||||||
|
]
|
||||||
|
)
|
||||||
|
], [
|
||||||
|
Xfixes_cflags=""
|
||||||
|
Xfixes_libs=""
|
||||||
|
use_Xfixes="no"
|
||||||
|
], [
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CFLAGS=$PCFLAGS
|
||||||
|
|
||||||
|
AC_SUBST(Xfixes_cflags)
|
||||||
|
AC_SUBST(Xfixes_libs)
|
||||||
|
|
||||||
|
Xdamage_libs=""
|
||||||
|
Xdamage_cflags=""
|
||||||
|
use_Xdamage="no"
|
||||||
|
PCFLAGS=$CFLAGS
|
||||||
|
CFLAGS=$x_cflags" "$x_includes
|
||||||
|
AC_CHECK_HEADER(X11/extensions/Xdamage.h,
|
||||||
|
[
|
||||||
|
AC_CHECK_LIB(Xdamage, XDamageSubtract,
|
||||||
|
[
|
||||||
|
AC_DEFINE(ECORE_XDAMAGE, 1, [Build support for Xdamage])
|
||||||
|
Xdamage_cflags=""
|
||||||
|
Xdamage_libs="-lXdamage"
|
||||||
|
use_Xdamage="yes"
|
||||||
|
], [
|
||||||
|
Xdamage_cflags=""
|
||||||
|
Xdamage_libs=""
|
||||||
|
use_Xdamage="no"
|
||||||
|
], [
|
||||||
|
$x_libs $x_ldflags
|
||||||
|
]
|
||||||
|
)
|
||||||
|
], [
|
||||||
|
Xdamage_cflags=""
|
||||||
|
Xdamage_libs=""
|
||||||
|
use_Xdamage="no"
|
||||||
|
], [
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CFLAGS=$PCFLAGS
|
||||||
|
|
||||||
|
AC_SUBST(Xdamage_cflags)
|
||||||
|
AC_SUBST(Xdamage_libs)
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(ecore_x_cflags)
|
AC_SUBST(ecore_x_cflags)
|
||||||
|
@ -1221,7 +1290,7 @@ echo
|
||||||
echo " Ecore_Job....................: $have_ecore_job"
|
echo " Ecore_Job....................: $have_ecore_job"
|
||||||
echo " Ecore_Con....................: $have_ecore_con (OpenSSL: $use_openssl)"
|
echo " Ecore_Con....................: $have_ecore_con (OpenSSL: $use_openssl)"
|
||||||
echo " Ecore_Txt....................: $have_ecore_txt"
|
echo " Ecore_Txt....................: $have_ecore_txt"
|
||||||
echo " Ecore_X......................: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_Xprint) (Xinerama: $use_Xinerama) (Xrandr: $use_Xrandr) (Xscreensaver: $use_Xss) (Xrender: $use_Xrender)"
|
echo " Ecore_X......................: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_Xprint) (Xinerama: $use_Xinerama) (Xrandr: $use_Xrandr) (Xscreensaver: $use_Xss) (Xrender: $use_Xrender) (Xfixes: $use_Xfixes) (Xdamage: $use_Xdamage)"
|
||||||
echo " Ecore_FB.....................: $have_ecore_fb"
|
echo " Ecore_FB.....................: $have_ecore_fb"
|
||||||
echo " Ecore_DFB....................: $have_ecore_dfb"
|
echo " Ecore_DFB....................: $have_ecore_dfb"
|
||||||
echo " Ecore_Evas...................: $have_ecore_evas"
|
echo " Ecore_Evas...................: $have_ecore_evas"
|
||||||
|
|
|
@ -404,6 +404,7 @@ struct _Ecore_X_Event_Window_Damage
|
||||||
{
|
{
|
||||||
Ecore_X_Window win;
|
Ecore_X_Window win;
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
|
int count;
|
||||||
Ecore_X_Time time;
|
Ecore_X_Time time;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -806,6 +807,7 @@ EAPI extern int ECORE_X_EVENT_SCREENSAVER_NOTIFY;
|
||||||
EAPI extern int ECORE_X_EVENT_SYNC_COUNTER;
|
EAPI extern int ECORE_X_EVENT_SYNC_COUNTER;
|
||||||
EAPI extern int ECORE_X_EVENT_SYNC_ALARM;
|
EAPI extern int ECORE_X_EVENT_SYNC_ALARM;
|
||||||
EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE;
|
EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE;
|
||||||
|
EAPI extern int ECORE_X_EVENT_DAMAGE_NOTIFY;
|
||||||
|
|
||||||
EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST;
|
EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST;
|
||||||
/*
|
/*
|
||||||
|
@ -951,7 +953,6 @@ typedef enum _Ecore_X_Window_Configure_Mask {
|
||||||
#define ECORE_X_PROP_LIST_ADD 1
|
#define ECORE_X_PROP_LIST_ADD 1
|
||||||
#define ECORE_X_PROP_LIST_TOGGLE 2
|
#define ECORE_X_PROP_LIST_TOGGLE 2
|
||||||
|
|
||||||
|
|
||||||
EAPI int ecore_x_init(const char *name);
|
EAPI int ecore_x_init(const char *name);
|
||||||
EAPI int ecore_x_shutdown(void);
|
EAPI int ecore_x_shutdown(void);
|
||||||
EAPI int ecore_x_disconnect(void);
|
EAPI int ecore_x_disconnect(void);
|
||||||
|
@ -1451,6 +1452,61 @@ EAPI Ecore_X_Screen_Refresh_Rate ecore_x_randr_current_screen_refresh_rate_get(
|
||||||
|
|
||||||
EAPI int ecore_x_randr_screen_refresh_rate_set(Ecore_X_Window root, Ecore_X_Screen_Size size, Ecore_X_Screen_Refresh_Rate rate);
|
EAPI int ecore_x_randr_screen_refresh_rate_set(Ecore_X_Window root, Ecore_X_Screen_Size size, Ecore_X_Screen_Refresh_Rate rate);
|
||||||
|
|
||||||
|
/* XRender Support (horrendously incomplete) */
|
||||||
|
typedef Ecore_X_ID Ecore_X_Picture;
|
||||||
|
|
||||||
|
/* XFixes Extension Support */
|
||||||
|
typedef Ecore_X_ID Ecore_X_Region;
|
||||||
|
|
||||||
|
typedef enum _Ecore_X_Region_Type {
|
||||||
|
ECORE_X_REGION_BOUNDING,
|
||||||
|
ECORE_X_REGION_CLIP
|
||||||
|
} Ecore_X_Region_Type;
|
||||||
|
|
||||||
|
EAPI Ecore_X_Region ecore_x_region_new(Ecore_X_Rectangle *rects, int num);
|
||||||
|
EAPI Ecore_X_Region ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap);
|
||||||
|
EAPI Ecore_X_Region ecore_x_region_new_from_window(Ecore_X_Window win, Ecore_X_Region_Type type);
|
||||||
|
EAPI Ecore_X_Region ecore_x_region_new_from_gc(Ecore_X_GC gc);
|
||||||
|
EAPI Ecore_X_Region ecore_x_region_new_from_picture(Ecore_X_Picture picture);
|
||||||
|
EAPI void ecore_x_region_del(Ecore_X_Region region);
|
||||||
|
EAPI void ecore_x_region_set(Ecore_X_Region region, Ecore_X_Rectangle *rects, int num);
|
||||||
|
EAPI void ecore_x_region_copy(Ecore_X_Region dest, Ecore_X_Region source);
|
||||||
|
EAPI void ecore_x_region_combine(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
|
||||||
|
EAPI void ecore_x_region_intersect(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
|
||||||
|
EAPI void ecore_x_region_subtract(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
|
||||||
|
EAPI void ecore_x_region_invert(Ecore_X_Region dest, Ecore_X_Rectangle *bounds, Ecore_X_Region source);
|
||||||
|
EAPI void ecore_x_region_translate(Ecore_X_Region region, int dx, int dy);
|
||||||
|
EAPI void ecore_x_region_extents(Ecore_X_Region dest, Ecore_X_Region source);
|
||||||
|
EAPI Ecore_X_Rectangle * ecore_x_region_fetch(Ecore_X_Region region, int *num, Ecore_X_Rectangle *bounds);
|
||||||
|
EAPI void ecore_x_region_expand(Ecore_X_Region dest, Ecore_X_Region source, unsigned int left, unsigned int right, unsigned int top, unsigned int bottom);
|
||||||
|
|
||||||
|
/* XDamage Extension Support */
|
||||||
|
typedef Ecore_X_ID Ecore_X_Damage;
|
||||||
|
|
||||||
|
typedef enum _Ecore_X_Damage_Report_Level {
|
||||||
|
ECORE_X_DAMAGE_REPORT_RAW_RECTANGLES,
|
||||||
|
ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES,
|
||||||
|
ECORE_X_DAMAGE_REPORT_BOUNDING_BOX,
|
||||||
|
ECORE_X_DAMAGE_REPORT_NON_EMPTY
|
||||||
|
} Ecore_X_Damage_Report_Level;
|
||||||
|
|
||||||
|
struct _Ecore_X_Event_Damage {
|
||||||
|
Ecore_X_Damage_Report_Level level;
|
||||||
|
Ecore_X_Drawable drawable;
|
||||||
|
Ecore_X_Damage damage;
|
||||||
|
int more;
|
||||||
|
Ecore_X_Time time;
|
||||||
|
Ecore_X_Rectangle area;
|
||||||
|
Ecore_X_Rectangle geometry;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage;
|
||||||
|
|
||||||
|
EAPI int ecore_x_damage_query(void);
|
||||||
|
EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level);
|
||||||
|
EAPI void ecore_x_damage_del(Ecore_X_Damage damage);
|
||||||
|
EAPI void ecore_x_damage_subtract(Ecore_X_Damage damage, Ecore_X_Region repair, Ecore_X_Region parts);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -115,8 +115,6 @@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_ABOVE;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_BELOW;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_BELOW;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION;
|
||||||
|
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_OPACITY;
|
|
||||||
|
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_FRAME_EXTENTS;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_FRAME_EXTENTS;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS;
|
||||||
|
|
||||||
|
@ -127,6 +125,11 @@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO;
|
||||||
|
|
||||||
|
/* NetWM Opacity Atoms */
|
||||||
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_OPACITY;
|
||||||
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_SHADOW;
|
||||||
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_SHADE;
|
||||||
|
|
||||||
/* Selections */
|
/* Selections */
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_TARGETS;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_TARGETS;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_PRIMARY;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_PRIMARY;
|
||||||
|
@ -153,4 +156,5 @@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_POSITION;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_DROP;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_DROP;
|
||||||
EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_FINISHED;
|
EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_FINISHED;
|
||||||
|
|
||||||
|
|
||||||
#endif /* _ECORE_X_ATOMS_H */
|
#endif /* _ECORE_X_ATOMS_H */
|
||||||
|
|
|
@ -6,6 +6,8 @@ INCLUDES = \
|
||||||
@Xprint_cflags@ \
|
@Xprint_cflags@ \
|
||||||
@Xinerama_cflags@ \
|
@Xinerama_cflags@ \
|
||||||
@Xrandr_cflags@ \
|
@Xrandr_cflags@ \
|
||||||
|
@Xfixes_cflags@ \
|
||||||
|
@Xdamage_cflags@ \
|
||||||
@Xss_cflags@ \
|
@Xss_cflags@ \
|
||||||
@x_cflags@ \
|
@x_cflags@ \
|
||||||
-I$(top_srcdir)/src/lib/ecore \
|
-I$(top_srcdir)/src/lib/ecore \
|
||||||
|
@ -33,6 +35,8 @@ ecore_x.c \
|
||||||
ecore_x_dnd.c \
|
ecore_x_dnd.c \
|
||||||
ecore_x_sync.c \
|
ecore_x_sync.c \
|
||||||
ecore_x_randr.c \
|
ecore_x_randr.c \
|
||||||
|
ecore_x_fixes.c \
|
||||||
|
ecore_x_damage.c \
|
||||||
ecore_x_error.c \
|
ecore_x_error.c \
|
||||||
ecore_x_events.c \
|
ecore_x_events.c \
|
||||||
ecore_x_icccm.c \
|
ecore_x_icccm.c \
|
||||||
|
@ -55,6 +59,8 @@ libecore_x_la_LIBADD = \
|
||||||
@Xprint_libs@ \
|
@Xprint_libs@ \
|
||||||
@Xinerama_libs@ \
|
@Xinerama_libs@ \
|
||||||
@Xrandr_libs@ \
|
@Xrandr_libs@ \
|
||||||
|
@Xfixes_libs@ \
|
||||||
|
@Xdamage_libs@ \
|
||||||
@Xss_libs@ \
|
@Xss_libs@ \
|
||||||
@x_ldflags@ \
|
@x_ldflags@ \
|
||||||
@x_libs@ \
|
@x_libs@ \
|
||||||
|
@ -76,6 +82,8 @@ Ecore_X_Cursor.h \
|
||||||
ecore_x.c \
|
ecore_x.c \
|
||||||
ecore_x_dnd.c \
|
ecore_x_dnd.c \
|
||||||
ecore_x_sync.c \
|
ecore_x_sync.c \
|
||||||
|
ecore_x_fixes.c \
|
||||||
|
ecore_x_damage.c \
|
||||||
ecore_x_randr.c \
|
ecore_x_randr.c \
|
||||||
ecore_x_error.c \
|
ecore_x_error.c \
|
||||||
ecore_x_events.c \
|
ecore_x_events.c \
|
||||||
|
|
|
@ -22,6 +22,12 @@ static int _ecore_x_event_sync_id = 0;
|
||||||
#ifdef ECORE_XRANDR
|
#ifdef ECORE_XRANDR
|
||||||
static int _ecore_x_event_randr_id = 0;
|
static int _ecore_x_event_randr_id = 0;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ECORE_XFIXES
|
||||||
|
static int _ecore_x_event_fixes_selection_id = 0;
|
||||||
|
#endif
|
||||||
|
#ifdef ECORE_XDAMAGE
|
||||||
|
static int _ecore_x_event_damage_id = 0;
|
||||||
|
#endif
|
||||||
static int _ecore_x_event_handlers_num = 0;
|
static int _ecore_x_event_handlers_num = 0;
|
||||||
static void (**_ecore_x_event_handlers) (XEvent * event) = NULL;
|
static void (**_ecore_x_event_handlers) (XEvent * event) = NULL;
|
||||||
|
|
||||||
|
@ -100,6 +106,7 @@ EAPI int ECORE_X_EVENT_SCREENSAVER_NOTIFY = 0;
|
||||||
EAPI int ECORE_X_EVENT_SYNC_COUNTER = 0;
|
EAPI int ECORE_X_EVENT_SYNC_COUNTER = 0;
|
||||||
EAPI int ECORE_X_EVENT_SYNC_ALARM = 0;
|
EAPI int ECORE_X_EVENT_SYNC_ALARM = 0;
|
||||||
EAPI int ECORE_X_EVENT_SCREEN_CHANGE = 0;
|
EAPI int ECORE_X_EVENT_SCREEN_CHANGE = 0;
|
||||||
|
EAPI int ECORE_X_EVENT_DAMAGE_NOTIFY = 0;
|
||||||
|
|
||||||
EAPI int ECORE_X_EVENT_WINDOW_DELETE_REQUEST = 0;
|
EAPI int ECORE_X_EVENT_WINDOW_DELETE_REQUEST = 0;
|
||||||
/*
|
/*
|
||||||
|
@ -160,6 +167,10 @@ ecore_x_init(const char *name)
|
||||||
int randr_base = 0;
|
int randr_base = 0;
|
||||||
int randr_err_base = 0;
|
int randr_err_base = 0;
|
||||||
#endif
|
#endif
|
||||||
|
int fixes_base = 0;
|
||||||
|
int fixes_err_base = 0;
|
||||||
|
int damage_base = 0;
|
||||||
|
int damage_err_base = 0;
|
||||||
|
|
||||||
if (_ecore_x_init_count > 0)
|
if (_ecore_x_init_count > 0)
|
||||||
{
|
{
|
||||||
|
@ -201,6 +212,20 @@ ecore_x_init(const char *name)
|
||||||
_ecore_x_event_handlers_num = _ecore_x_event_randr_id + 1;
|
_ecore_x_event_handlers_num = _ecore_x_event_randr_id + 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ECORE_XFIXES
|
||||||
|
if (XFixesQueryExtension(_ecore_x_disp, &fixes_base, &fixes_err_base))
|
||||||
|
_ecore_x_event_fixes_selection_id = fixes_base + XFixesSelectionNotify;
|
||||||
|
if (_ecore_x_event_fixes_selection_id >= _ecore_x_event_handlers_num)
|
||||||
|
_ecore_x_event_handlers_num = _ecore_x_event_fixes_selection_id + 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ECORE_XDAMAGE
|
||||||
|
if (XDamageQueryExtension(_ecore_x_disp, &damage_base, &damage_err_base))
|
||||||
|
_ecore_x_event_damage_id = damage_base + XDamageNotify;
|
||||||
|
if (_ecore_x_event_damage_id >= _ecore_x_event_handlers_num)
|
||||||
|
_ecore_x_event_handlers_num = _ecore_x_event_damage_id + 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
_ecore_x_event_handlers = calloc(_ecore_x_event_handlers_num, sizeof(void *));
|
_ecore_x_event_handlers = calloc(_ecore_x_event_handlers_num, sizeof(void *));
|
||||||
if (!_ecore_x_event_handlers)
|
if (!_ecore_x_event_handlers)
|
||||||
{
|
{
|
||||||
|
@ -259,6 +284,15 @@ ecore_x_init(const char *name)
|
||||||
if (_ecore_x_event_randr_id)
|
if (_ecore_x_event_randr_id)
|
||||||
_ecore_x_event_handlers[_ecore_x_event_randr_id] = _ecore_x_event_handle_randr_change;
|
_ecore_x_event_handlers[_ecore_x_event_randr_id] = _ecore_x_event_handle_randr_change;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ECORE_XFIXES
|
||||||
|
if (_ecore_x_event_fixes_selection_id)
|
||||||
|
_ecore_x_event_handlers[_ecore_x_event_fixes_selection_id] = _ecore_x_event_handle_fixes_selection_notify;
|
||||||
|
#endif
|
||||||
|
#ifdef ECORE_XDAMAGE
|
||||||
|
if (_ecore_x_event_damage_id)
|
||||||
|
_ecore_x_event_handlers[_ecore_x_event_damage_id] = _ecore_x_event_handle_damage_notify;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!ECORE_X_EVENT_KEY_DOWN)
|
if (!ECORE_X_EVENT_KEY_DOWN)
|
||||||
{
|
{
|
||||||
ECORE_X_EVENT_KEY_DOWN = ecore_event_type_new();
|
ECORE_X_EVENT_KEY_DOWN = ecore_event_type_new();
|
||||||
|
@ -298,6 +332,7 @@ ecore_x_init(const char *name)
|
||||||
ECORE_X_EVENT_SYNC_COUNTER = ecore_event_type_new();
|
ECORE_X_EVENT_SYNC_COUNTER = ecore_event_type_new();
|
||||||
ECORE_X_EVENT_SYNC_ALARM = ecore_event_type_new();
|
ECORE_X_EVENT_SYNC_ALARM = ecore_event_type_new();
|
||||||
ECORE_X_EVENT_SCREEN_CHANGE = ecore_event_type_new();
|
ECORE_X_EVENT_SCREEN_CHANGE = ecore_event_type_new();
|
||||||
|
ECORE_X_EVENT_DAMAGE_NOTIFY = ecore_event_type_new();
|
||||||
|
|
||||||
ECORE_X_EVENT_WINDOW_DELETE_REQUEST = ecore_event_type_new();
|
ECORE_X_EVENT_WINDOW_DELETE_REQUEST = ecore_event_type_new();
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -716,6 +716,7 @@ _ecore_x_event_handle_expose(XEvent *xevent)
|
||||||
e->y = xevent->xexpose.y;
|
e->y = xevent->xexpose.y;
|
||||||
e->w = xevent->xexpose.width;
|
e->w = xevent->xexpose.width;
|
||||||
e->h = xevent->xexpose.height;
|
e->h = xevent->xexpose.height;
|
||||||
|
e->count = xevent->xexpose.count;
|
||||||
ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
|
ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -732,6 +733,7 @@ _ecore_x_event_handle_graphics_expose(XEvent *xevent)
|
||||||
e->y = xevent->xgraphicsexpose.y;
|
e->y = xevent->xgraphicsexpose.y;
|
||||||
e->w = xevent->xgraphicsexpose.width;
|
e->w = xevent->xgraphicsexpose.width;
|
||||||
e->h = xevent->xgraphicsexpose.height;
|
e->h = xevent->xgraphicsexpose.height;
|
||||||
|
e->count = xevent->xgraphicsexpose.count;
|
||||||
ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
|
ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1673,3 +1675,39 @@ _ecore_x_event_handle_randr_change(XEvent *xevent)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ECORE_XFIXES
|
||||||
|
void
|
||||||
|
_ecore_x_event_handle_fixes_selection_notify(XEvent *event)
|
||||||
|
{
|
||||||
|
/* Nothing here yet */
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ECORE_XDAMAGE
|
||||||
|
void
|
||||||
|
_ecore_x_event_handle_damage_notify(XEvent *event)
|
||||||
|
{
|
||||||
|
XDamageNotifyEvent *damage_event;
|
||||||
|
Ecore_X_Event_Damage *e;
|
||||||
|
|
||||||
|
e = calloc(1, sizeof(Ecore_X_Event_Damage));
|
||||||
|
if (!e) return;
|
||||||
|
|
||||||
|
e->level = damage_event->level;
|
||||||
|
e->drawable = damage_event->drawable;
|
||||||
|
e->damage = damage_event->damage;
|
||||||
|
e->more = damage_event->more;
|
||||||
|
e->time = damage_event->timestamp;
|
||||||
|
e->area.x = damage_event->area.x;
|
||||||
|
e->area.y = damage_event->area.y;
|
||||||
|
e->area.width = damage_event->area.width;
|
||||||
|
e->area.height = damage_event->area.height;
|
||||||
|
e->geometry.x = damage_event->geometry.x;
|
||||||
|
e->geometry.y = damage_event->geometry.y;
|
||||||
|
e->geometry.width = damage_event->geometry.width;
|
||||||
|
e->geometry.height = damage_event->geometry.height;
|
||||||
|
|
||||||
|
ecore_event_add(ECORE_X_EVENT_DAMAGE_NOTIFY, e, NULL, NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -148,6 +148,8 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_BELOW = 0;
|
||||||
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION = 0;
|
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION = 0;
|
||||||
|
|
||||||
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_OPACITY = 0;
|
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_OPACITY = 0;
|
||||||
|
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_SHADOW = 0;
|
||||||
|
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_SHADE = 0;
|
||||||
|
|
||||||
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_FRAME_EXTENTS = 0;
|
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_FRAME_EXTENTS = 0;
|
||||||
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS = 0;
|
EAPI Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS = 0;
|
||||||
|
@ -238,6 +240,8 @@ ecore_x_netwm_init(void)
|
||||||
ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION = _ATOM_GET("_NET_WM_STATE_DEMANDS_ATTENTION");
|
ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION = _ATOM_GET("_NET_WM_STATE_DEMANDS_ATTENTION");
|
||||||
|
|
||||||
ECORE_X_ATOM_NET_WM_WINDOW_OPACITY = _ATOM_GET("_NET_WM_WINDOW_OPACITY");
|
ECORE_X_ATOM_NET_WM_WINDOW_OPACITY = _ATOM_GET("_NET_WM_WINDOW_OPACITY");
|
||||||
|
ECORE_X_ATOM_NET_WM_WINDOW_SHADOW = _ATOM_GET("_NET_WM_WINDOW_SHADOW");
|
||||||
|
ECORE_X_ATOM_NET_WM_WINDOW_SHADE = _ATOM_GET("_NET_WM_WINDOW_SHADE");
|
||||||
|
|
||||||
ECORE_X_ATOM_NET_FRAME_EXTENTS = _ATOM_GET("_NET_FRAME_EXTENTS");
|
ECORE_X_ATOM_NET_FRAME_EXTENTS = _ATOM_GET("_NET_FRAME_EXTENTS");
|
||||||
ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS = _ATOM_GET("_NET_REQUEST_FRAME_EXTENTS");
|
ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS = _ATOM_GET("_NET_REQUEST_FRAME_EXTENTS");
|
||||||
|
|
|
@ -36,6 +36,12 @@
|
||||||
#ifdef ECORE_XRENDER
|
#ifdef ECORE_XRENDER
|
||||||
#include <X11/extensions/Xrender.h>
|
#include <X11/extensions/Xrender.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ECORE_XFIXES
|
||||||
|
#include <X11/extensions/Xfixes.h>
|
||||||
|
#endif
|
||||||
|
#ifdef ECORE_XDAMAGE
|
||||||
|
#include <X11/extensions/Xdamage.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "ecore_private.h"
|
#include "ecore_private.h"
|
||||||
#include "Ecore_X.h"
|
#include "Ecore_X.h"
|
||||||
|
@ -193,6 +199,12 @@ void _ecore_x_event_handle_sync_alarm(XEvent *xevent);
|
||||||
#ifdef ECORE_XRANDR
|
#ifdef ECORE_XRANDR
|
||||||
void _ecore_x_event_handle_randr_change(XEvent *xevent);
|
void _ecore_x_event_handle_randr_change(XEvent *xevent);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ECORE_XFIXES
|
||||||
|
void _ecore_x_event_handle_fixes_selection_notify(XEvent *xevent);
|
||||||
|
#endif
|
||||||
|
#ifdef ECORE_XDAMAGE
|
||||||
|
void _ecore_x_event_handle_damage_notify(XEvent *xevent);
|
||||||
|
#endif
|
||||||
|
|
||||||
void _ecore_x_selection_data_init(void);
|
void _ecore_x_selection_data_init(void);
|
||||||
void _ecore_x_selection_shutdown(void);
|
void _ecore_x_selection_shutdown(void);
|
||||||
|
@ -221,6 +233,10 @@ Ecore_X_Window_State _ecore_x_netwm_state_get(Ecore_X_Atom a);
|
||||||
int _ecore_x_netwm_startup_info_begin(Ecore_X_Window win, char *data);
|
int _ecore_x_netwm_startup_info_begin(Ecore_X_Window win, char *data);
|
||||||
int _ecore_x_netwm_startup_info(Ecore_X_Window win, char *data);
|
int _ecore_x_netwm_startup_info(Ecore_X_Window win, char *data);
|
||||||
|
|
||||||
|
/* Fixes * Damage */
|
||||||
|
void _ecore_x_fixes_init(void);
|
||||||
|
void _ecore_x_damage_init(void);
|
||||||
|
|
||||||
/* from sync */
|
/* from sync */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue