2009-04-19 01:37:50 -07:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include <config.h>
|
2010-08-02 11:54:27 -07:00
|
|
|
#endif /* ifdef HAVE_CONFIG_H */
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-03-08 00:08:04 -08:00
|
|
|
#include <stdlib.h>
|
2009-04-19 01:37:50 -07:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#include <Ecore.h>
|
|
|
|
#include <Ecore_Input.h>
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
#include "ecore_xcb_private.h"
|
|
|
|
#include "Ecore_X_Atoms.h"
|
|
|
|
|
|
|
|
/** OpenBSD does not define CODESET
|
|
|
|
* FIXME ??
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CODESET
|
|
|
|
#define CODESET "INVALID"
|
2010-08-02 11:54:27 -07:00
|
|
|
#endif /* ifndef CODESET */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
#if 0
|
2010-08-02 11:54:27 -07:00
|
|
|
static void _ecore_x_event_free_window_prop_name_class_change(void *data, void *ev);
|
|
|
|
static void _ecore_x_event_free_window_prop_title_change(void *data, void *ev);
|
|
|
|
static void _ecore_x_event_free_window_prop_visible_title_change(void *data, void *ev);
|
|
|
|
static void _ecore_x_event_free_window_prop_icon_name_change(void *data, void *ev);
|
|
|
|
static void _ecore_x_event_free_window_prop_visible_icon_name_change(void *data, void *ev);
|
|
|
|
static void _ecore_x_event_free_window_prop_client_machine_change(void *data, void *ev);
|
|
|
|
#endif /* if 0 */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static Ecore_X_Window _ecore_xcb_mouse_down_last_window = 0;
|
|
|
|
static Ecore_X_Window _ecore_xcb_mouse_down_last_last_window = 0;
|
|
|
|
static Ecore_X_Window _ecore_xcb_mouse_down_last_event_window = 0;
|
|
|
|
static Ecore_X_Window _ecore_xcb_mouse_down_last_last_event_window = 0;
|
2010-08-02 11:54:27 -07:00
|
|
|
static Ecore_X_Time _ecore_xcb_mouse_down_last_time = 0;
|
|
|
|
static Ecore_X_Time _ecore_xcb_mouse_down_last_last_time = 0;
|
|
|
|
static int _ecore_xcb_mouse_up_count = 0;
|
|
|
|
static int _ecore_xcb_mouse_down_did_triple = 0;
|
|
|
|
static int _ecore_xcb_last_event_mouse_move = 0;
|
|
|
|
static Ecore_Event *_ecore_xcb_last_event_mouse_move_event = NULL;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_mouse_move(void *data __UNUSED__, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_Event_Mouse_Move *e;
|
|
|
|
|
|
|
|
e = ev;
|
|
|
|
if (_ecore_xcb_last_event_mouse_move)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_xcb_last_event_mouse_move_event = NULL;
|
|
|
|
_ecore_xcb_last_event_mouse_move = 0;
|
2009-04-19 01:37:50 -07:00
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
free(e);
|
|
|
|
} /* _ecore_x_event_free_mouse_move */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* FIXME: roundtrip */
|
|
|
|
EAPI void
|
|
|
|
ecore_x_event_mask_set(Ecore_X_Window window,
|
|
|
|
Ecore_X_Event_Mask mask)
|
|
|
|
{
|
|
|
|
xcb_get_window_attributes_cookie_t cookie;
|
|
|
|
xcb_get_window_attributes_reply_t *reply;
|
2010-08-02 11:54:27 -07:00
|
|
|
uint32_t value_list;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
if (!window)
|
|
|
|
window = ((xcb_screen_t *)_ecore_xcb_screen)->root;
|
|
|
|
|
|
|
|
cookie = xcb_get_window_attributes_unchecked(_ecore_xcb_conn, window);
|
|
|
|
reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!reply)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
value_list = mask | reply->your_event_mask;
|
|
|
|
xcb_change_window_attributes(_ecore_xcb_conn, window, XCB_CW_EVENT_MASK, &value_list);
|
|
|
|
free(reply);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* ecore_x_event_mask_set */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* FIXME: roundtrip */
|
|
|
|
EAPI void
|
|
|
|
ecore_x_event_mask_unset(Ecore_X_Window window,
|
|
|
|
Ecore_X_Event_Mask mask)
|
|
|
|
{
|
|
|
|
xcb_get_window_attributes_cookie_t cookie;
|
|
|
|
xcb_get_window_attributes_reply_t *reply;
|
|
|
|
uint32_t value_list;
|
|
|
|
|
|
|
|
if (!window)
|
|
|
|
window = ((xcb_screen_t *)_ecore_xcb_screen)->root;
|
|
|
|
|
|
|
|
cookie = xcb_get_window_attributes_unchecked(_ecore_xcb_conn, window);
|
|
|
|
reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!reply)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
value_list = reply->your_event_mask & ~mask;
|
|
|
|
xcb_change_window_attributes(_ecore_xcb_conn, window, XCB_CW_EVENT_MASK, &value_list);
|
|
|
|
free(reply);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* ecore_x_event_mask_unset */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
#if 0
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_window_prop_name_class_change(void *data, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Window_Prop_Name_Class_Change *e;
|
|
|
|
|
|
|
|
e = ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (e->name)
|
|
|
|
free(e->name);
|
|
|
|
|
|
|
|
if (e->clas)
|
|
|
|
free(e->clas);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_window_prop_name_class_change */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_window_prop_title_change(void *data, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Window_Prop_Title_Change *e;
|
|
|
|
|
|
|
|
e = ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (e->title)
|
|
|
|
free(e->title);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_window_prop_title_change */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_window_prop_visible_title_change(void *data, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Window_Prop_Visible_Title_Change *e;
|
|
|
|
|
|
|
|
e = ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (e->title)
|
|
|
|
free(e->title);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_window_prop_visible_title_change */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_window_prop_icon_name_change(void *data, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Window_Prop_Icon_Name_Change *e;
|
|
|
|
|
|
|
|
e = ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (e->name)
|
|
|
|
free(e->name);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_window_prop_icon_name_change */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_window_prop_visible_icon_name_change(void *data, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change *e;
|
|
|
|
|
|
|
|
e = ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (e->name)
|
|
|
|
free(e->name);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_window_prop_visible_icon_name_change */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_window_prop_client_machine_change(void *data, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Window_Prop_Client_Machine_Change *e;
|
|
|
|
|
|
|
|
e = ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (e->name)
|
|
|
|
free(e->name);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_window_prop_client_machine_change */
|
|
|
|
|
|
|
|
#endif /* if 0 */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_xdnd_enter(void *data __UNUSED__, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Xdnd_Enter *e;
|
2010-08-02 11:54:27 -07:00
|
|
|
int i;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
e = ev;
|
|
|
|
for (i = 0; i < e->num_types; i++)
|
2010-08-02 11:54:27 -07:00
|
|
|
free(e->types[i]);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e->types);
|
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_xdnd_enter */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_x_event_free_selection_notify(void *data __UNUSED__, void *ev)
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Selection_Notify *e;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Selection_Data *sel;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
e = ev;
|
|
|
|
sel = e->data;
|
|
|
|
if (sel->free)
|
2010-08-02 11:54:27 -07:00
|
|
|
sel->free(sel);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
free(e->target);
|
|
|
|
free(e);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_free_selection_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
static unsigned int
|
|
|
|
_ecore_x_event_modifiers(unsigned int state)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
unsigned int modifiers = 0;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
if (state & ECORE_X_MODIFIER_SHIFT)
|
|
|
|
modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
|
|
|
|
|
|
|
|
if (state & ECORE_X_MODIFIER_CTRL)
|
|
|
|
modifiers |= ECORE_EVENT_MODIFIER_CTRL;
|
|
|
|
|
|
|
|
if (state & ECORE_X_MODIFIER_ALT)
|
|
|
|
modifiers |= ECORE_EVENT_MODIFIER_ALT;
|
|
|
|
|
|
|
|
if (state & ECORE_X_MODIFIER_WIN)
|
|
|
|
modifiers |= ECORE_EVENT_MODIFIER_WIN;
|
|
|
|
|
|
|
|
if (state & ECORE_X_LOCK_SCROLL)
|
|
|
|
modifiers |= ECORE_EVENT_LOCK_SCROLL;
|
|
|
|
|
|
|
|
if (state & ECORE_X_LOCK_NUM)
|
|
|
|
modifiers |= ECORE_EVENT_LOCK_NUM;
|
|
|
|
|
|
|
|
if (state & ECORE_X_LOCK_CAPS)
|
|
|
|
modifiers |= ECORE_EVENT_LOCK_CAPS;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
return modifiers;
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_modifiers */
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_mouse_move(unsigned int timestamp, unsigned int xmodifiers,
|
2010-08-02 11:54:27 -07:00
|
|
|
int x, int y,
|
|
|
|
int x_root, int y_root,
|
|
|
|
unsigned int event_window,
|
|
|
|
unsigned int window,
|
|
|
|
unsigned int root_win,
|
|
|
|
int same_screen)
|
2009-04-19 01:37:50 -07:00
|
|
|
{
|
|
|
|
Ecore_Event_Mouse_Move *e;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_Event *event;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
e = malloc(sizeof(Ecore_Event_Mouse_Move));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
e->window = window;
|
|
|
|
e->root_window = root_win;
|
|
|
|
e->timestamp = timestamp;
|
|
|
|
e->same_screen = same_screen;
|
|
|
|
e->event_window = event_window;
|
|
|
|
|
|
|
|
e->modifiers = _ecore_x_event_modifiers(xmodifiers);
|
|
|
|
e->x = x;
|
|
|
|
e->y = y;
|
|
|
|
e->root.x = x_root;
|
|
|
|
e->root.y = y_root;
|
|
|
|
|
|
|
|
event = ecore_event_add(ECORE_EVENT_MOUSE_MOVE, e, _ecore_x_event_free_mouse_move, NULL);
|
|
|
|
|
|
|
|
_ecore_xcb_event_last_time = timestamp;
|
|
|
|
_ecore_xcb_event_last_window = window;
|
|
|
|
_ecore_xcb_event_last_root_x = x_root;
|
|
|
|
_ecore_xcb_event_last_root_y = y_root;
|
|
|
|
|
|
|
|
_ecore_xcb_last_event_mouse_move_event = event;
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_mouse_move */
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ecore_key_press(int event,
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_generic_event_t *ev)
|
2009-04-19 01:37:50 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
/*
|
|
|
|
Ecore_Event_Key *e;
|
|
|
|
const char *compose = NULL;
|
|
|
|
char *tmp = NULL;
|
|
|
|
char *keyname;
|
|
|
|
char *key;
|
|
|
|
char keyname_buffer[256];
|
|
|
|
char compose_buffer[256];
|
|
|
|
KeySym sym;
|
|
|
|
XComposeStatus status;
|
|
|
|
int val;
|
|
|
|
|
|
|
|
_ecore_xcb_last_event_mouse_move = 0;
|
|
|
|
keyname = XKeysymToString(XKeycodeToKeysym(xevent->display,
|
|
|
|
xevent->keycode, 0));
|
|
|
|
if (!keyname)
|
|
|
|
{
|
|
|
|
snprintf(keyname_buffer, sizeof(keyname_buffer), "Keycode-%i", xevent->keycode);
|
|
|
|
keyname = keyname_buffer;
|
|
|
|
if (!keyname) return ;
|
|
|
|
}
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
sym = 0;
|
|
|
|
key = NULL;
|
|
|
|
compose = NULL;
|
|
|
|
if (_ecore_x_ic)
|
|
|
|
{
|
|
|
|
Status mbstatus;
|
|
|
|
#ifdef X_HAVE_UTF8_STRING
|
|
|
|
val = Xutf8LookupString(_ecore_x_ic, (XKeyEvent *)xevent, compose_buffer, sizeof(compose_buffer) - 1, &sym, &mbstatus);
|
|
|
|
#else
|
|
|
|
val = XmbLookupString(_ecore_x_ic, (XKeyEvent *)xevent, compose_buffer, sizeof(compose_buffer) - 1, &sym, &mbstatus);
|
|
|
|
#endif
|
|
|
|
if (mbstatus == XBufferOverflow)
|
|
|
|
{
|
|
|
|
tmp = malloc(sizeof (char) * (val + 1));
|
|
|
|
if (!tmp) return ;
|
|
|
|
|
|
|
|
compose = tmp;
|
|
|
|
|
|
|
|
#ifdef X_HAVE_UTF8_STRING
|
|
|
|
val = Xutf8LookupString(_ecore_x_ic, (XKeyEvent *)xevent, tmp, val, &sym, &mbstatus);
|
|
|
|
#else
|
|
|
|
val = XmbLookupString(_ecore_x_ic, (XKeyEvent *)xevent, tmp, val, &sym, &mbstatus);
|
|
|
|
#endif
|
|
|
|
if (val > 0)
|
|
|
|
{
|
|
|
|
tmp[val] = 0;
|
|
|
|
|
|
|
|
#ifndef X_HAVE_UTF8_STRING
|
|
|
|
compose = eina_str_convert(nl_langinfo(CODESET), "UTF-8", tmp);
|
|
|
|
free(tmp);
|
|
|
|
tmp = compose;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
else compose = NULL;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
if (val > 0)
|
|
|
|
{
|
|
|
|
compose_buffer[val] = 0;
|
|
|
|
#ifdef X_HAVE_UTF8_STRING
|
|
|
|
compose = compose_buffer;
|
|
|
|
#else
|
|
|
|
compose = eina_str_convert(nl_langinfo(CODESET), "UTF-8", compose_buffer);
|
|
|
|
tmp = compose;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
val = XLookupString(xevent, compose_buffer, sizeof(compose_buffer), &sym, &status);
|
|
|
|
if (val > 0)
|
|
|
|
{
|
|
|
|
compose_buffer[val] = 0;
|
|
|
|
compose = eina_str_convert(nl_langinfo(CODESET), "UTF-8", compose_buffer);
|
|
|
|
tmp = compose;
|
|
|
|
}
|
|
|
|
}
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
key = XKeysymToString(sym);
|
|
|
|
if (!key) key = keyname;
|
|
|
|
if (!key) goto on_error;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = malloc(sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) + (compose ? strlen(compose) : 0) + 3);
|
|
|
|
if (!e) goto on_error;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->keyname = (char*) (e + 1);
|
|
|
|
e->key = e->keyname + strlen(keyname) + 1;
|
|
|
|
e->compose = (compose) ? e->key + strlen(key) + 1 : NULL;
|
|
|
|
e->string = e->compose;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
strcpy((char *) e->keyname, keyname);
|
|
|
|
strcpy((char *) e->key, key);
|
|
|
|
if (compose) strcpy((char *) e->compose, compose);
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->modifiers = _ecore_x_event_modifiers(xevent->state);
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->timestamp = xevent->time;
|
|
|
|
e->window = xevent->subwindow ? xevent->subwindow : xevent->window;
|
|
|
|
e->event_window = xevent->window;
|
|
|
|
e->same_screen = xevent->same_screen;
|
|
|
|
e->root_window = xevent->root;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
ecore_event_add(event, e, NULL, NULL);
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_xcb_event_last_time = e->timestamp;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
on_error:
|
|
|
|
if (tmp) free(tmp);
|
|
|
|
*/
|
|
|
|
} /* _ecore_key_press */
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
static Ecore_Event_Mouse_Button *
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_mouse_button(int event,
|
2010-08-02 11:54:27 -07:00
|
|
|
unsigned int timestamp, unsigned int xmodifiers,
|
|
|
|
unsigned int buttons,
|
|
|
|
int x, int y,
|
|
|
|
int x_root, int y_root,
|
|
|
|
unsigned int event_window,
|
|
|
|
unsigned int window,
|
|
|
|
unsigned int root_win,
|
|
|
|
int same_screen)
|
2009-04-19 01:37:50 -07:00
|
|
|
{
|
|
|
|
Ecore_Event_Mouse_Button *e;
|
|
|
|
|
|
|
|
e = malloc(sizeof(Ecore_Event_Mouse_Button));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return NULL;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
e->window = window;
|
|
|
|
e->root_window = root_win;
|
|
|
|
e->timestamp = timestamp;
|
|
|
|
e->same_screen = same_screen;
|
|
|
|
e->event_window = event_window;
|
|
|
|
|
|
|
|
e->buttons = buttons;
|
|
|
|
e->modifiers = _ecore_x_event_modifiers(xmodifiers);
|
|
|
|
e->double_click = 0;
|
|
|
|
e->triple_click = 0;
|
|
|
|
e->x = x;
|
|
|
|
e->y = y;
|
|
|
|
e->root.x = x_root;
|
|
|
|
e->root.y = y_root;
|
|
|
|
|
|
|
|
if (event_window == window)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
if (((int)(timestamp - _ecore_xcb_mouse_down_last_time) <=
|
|
|
|
(int)(1000 * _ecore_xcb_double_click_time)) &&
|
|
|
|
(window == _ecore_xcb_mouse_down_last_window) &&
|
|
|
|
(event_window == _ecore_xcb_mouse_down_last_event_window)
|
|
|
|
)
|
|
|
|
e->double_click = 1;
|
|
|
|
|
|
|
|
if (((int)(timestamp - _ecore_xcb_mouse_down_last_last_time) <=
|
|
|
|
(int)(2 * 1000 * _ecore_xcb_double_click_time)) &&
|
|
|
|
(window == _ecore_xcb_mouse_down_last_window) &&
|
|
|
|
(window == _ecore_xcb_mouse_down_last_last_window) &&
|
|
|
|
(event_window == _ecore_xcb_mouse_down_last_event_window) &&
|
|
|
|
(event_window == _ecore_xcb_mouse_down_last_last_event_window)
|
|
|
|
)
|
|
|
|
{
|
|
|
|
e->triple_click = 1;
|
|
|
|
_ecore_xcb_mouse_down_did_triple = 1;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
_ecore_xcb_mouse_down_did_triple = 0;
|
2009-04-19 01:37:50 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
if (event == ECORE_EVENT_MOUSE_BUTTON_DOWN
|
|
|
|
&& !e->double_click
|
|
|
|
&& !e->triple_click)
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_xcb_mouse_up_count = 0;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
_ecore_xcb_event_last_time = e->timestamp;
|
|
|
|
_ecore_xcb_event_last_window = e->window;
|
|
|
|
_ecore_xcb_event_last_root_x = x_root;
|
|
|
|
_ecore_xcb_event_last_root_y = y_root;
|
|
|
|
|
|
|
|
ecore_event_add(event, e, NULL, NULL);
|
|
|
|
|
|
|
|
return e;
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_mouse_button */
|
2009-04-19 01:37:50 -07:00
|
|
|
|
2009-04-16 10:29:00 -07:00
|
|
|
void
|
|
|
|
_ecore_x_event_handle_any_event(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_generic_event_t *ev = malloc(sizeof(xcb_generic_event_t));
|
2009-04-16 10:29:00 -07:00
|
|
|
memcpy(ev, event, sizeof(xcb_generic_event_t));
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_ANY, ev, NULL, NULL);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_any_event */
|
2009-04-16 10:29:00 -07:00
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
/* FIXME: handle this event */
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_key_press(xcb_generic_event_t *event)
|
|
|
|
{
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_key_press(ECORE_EVENT_KEY_DOWN, event);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_key_press */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* FIXME: handle this event */
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_key_release(xcb_generic_event_t *event)
|
|
|
|
{
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_key_press(ECORE_EVENT_KEY_DOWN, event);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_key_release */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_button_press(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_button_press_event_t *ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
int i;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_button_press_event_t *)event;
|
|
|
|
if ((ev->detail > 3) && (ev->detail < 8))
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_Event_Mouse_Wheel *e;
|
|
|
|
|
|
|
|
e = malloc(sizeof(Ecore_Event_Mouse_Wheel));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->timestamp = ev->time;
|
|
|
|
e->modifiers = _ecore_x_event_modifiers(ev->state);
|
|
|
|
switch (ev->detail)
|
|
|
|
{
|
|
|
|
case 4: e->direction = 0; e->z = -1; break;
|
|
|
|
|
|
|
|
case 5: e->direction = 0; e->z = 1; break;
|
|
|
|
|
|
|
|
case 6: e->direction = 1; e->z = -1; break;
|
|
|
|
|
|
|
|
case 7: e->direction = 1; e->z = 1; break;
|
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
default: e->direction = 0; e->z = 0; break;
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* switch */
|
|
|
|
|
|
|
|
e->x = ev->event_x;
|
|
|
|
e->y = ev->event_y;
|
|
|
|
e->root.x = ev->root_x;
|
|
|
|
e->root.y = ev->root_y;
|
|
|
|
|
|
|
|
if (ev->child)
|
|
|
|
e->window = ev->child;
|
|
|
|
else
|
|
|
|
e->window = ev->event;
|
|
|
|
|
|
|
|
e->event_window = ev->event;
|
|
|
|
e->same_screen = ev->same_screen;
|
|
|
|
e->root_window = ev->root;
|
|
|
|
_ecore_xcb_event_last_time = e->timestamp;
|
|
|
|
_ecore_xcb_event_last_window = e->window;
|
|
|
|
_ecore_xcb_event_last_root_x = e->root.x;
|
|
|
|
_ecore_xcb_event_last_root_y = e->root.y;
|
|
|
|
ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, e, NULL, NULL);
|
|
|
|
for (i = 0; i < _ecore_window_grabs_num; i++)
|
|
|
|
{
|
|
|
|
if ((_ecore_window_grabs[i] == ev->event) ||
|
|
|
|
(_ecore_window_grabs[i] == ev->child))
|
|
|
|
{
|
|
|
|
Eina_Bool replay = EINA_FALSE;
|
|
|
|
|
|
|
|
if (_ecore_window_grab_replay_func)
|
|
|
|
replay = _ecore_window_grab_replay_func(_ecore_window_grab_replay_data,
|
|
|
|
ECORE_EVENT_MOUSE_WHEEL,
|
|
|
|
e);
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
/* FIXME: xcb_key_press_event_t does not save the */
|
|
|
|
/* connection. So I use the current one */
|
2010-08-02 11:54:27 -07:00
|
|
|
if (replay)
|
|
|
|
xcb_allow_events(_ecore_xcb_conn,
|
|
|
|
XCB_ALLOW_REPLAY_POINTER,
|
|
|
|
ev->time);
|
|
|
|
else
|
|
|
|
xcb_allow_events(_ecore_xcb_conn,
|
|
|
|
XCB_ALLOW_ASYNC_POINTER,
|
|
|
|
ev->time);
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2009-04-19 01:37:50 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_mouse_move(ev->time, ev->state,
|
|
|
|
ev->event_x, ev->event_y,
|
|
|
|
ev->root_x, ev->root_y,
|
|
|
|
ev->event,
|
|
|
|
(ev->child ? ev->child : ev->event),
|
|
|
|
ev->root,
|
|
|
|
ev->same_screen);
|
2009-04-19 01:37:50 -07:00
|
|
|
}
|
|
|
|
{
|
|
|
|
Ecore_Event_Mouse_Button *e;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Window event_window;
|
|
|
|
Ecore_X_Window child_window;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
if (_ecore_xcb_mouse_down_did_triple)
|
|
|
|
{
|
|
|
|
_ecore_xcb_mouse_down_last_window = 0;
|
|
|
|
_ecore_xcb_mouse_down_last_last_window = 0;
|
|
|
|
_ecore_xcb_mouse_down_last_event_window = 0;
|
|
|
|
_ecore_xcb_mouse_down_last_last_event_window = 0;
|
|
|
|
_ecore_xcb_mouse_down_last_time = 0;
|
|
|
|
_ecore_xcb_mouse_down_last_last_time = 0;
|
|
|
|
}
|
2010-08-02 11:54:27 -07:00
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
event_window = ev->child;
|
|
|
|
child_window = ev->child ? ev->child : ev->event;
|
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = _ecore_mouse_button(ECORE_EVENT_MOUSE_BUTTON_DOWN,
|
|
|
|
ev->time, ev->state,
|
|
|
|
ev->detail,
|
|
|
|
ev->event_x, ev->event_y,
|
|
|
|
ev->root_x, ev->root_y,
|
|
|
|
event_window, child_window,
|
|
|
|
ev->root, ev->same_screen);
|
|
|
|
|
|
|
|
if (!e)
|
|
|
|
return;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
for (i = 0; i < _ecore_window_grabs_num; i++)
|
|
|
|
{
|
|
|
|
if ((_ecore_window_grabs[i] == ev->event) ||
|
|
|
|
(_ecore_window_grabs[i] == ev->child))
|
|
|
|
{
|
2010-06-24 09:15:56 -07:00
|
|
|
Eina_Bool replay = EINA_FALSE;
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
if (_ecore_window_grab_replay_func)
|
2010-08-02 11:54:27 -07:00
|
|
|
replay = _ecore_window_grab_replay_func(_ecore_window_grab_replay_data,
|
|
|
|
ECORE_EVENT_MOUSE_BUTTON_DOWN,
|
|
|
|
e);
|
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
/* FIXME: xcb_key_press_event_t does not save the */
|
|
|
|
/* connection. So I use the current one */
|
|
|
|
if (replay)
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_allow_events(_ecore_xcb_conn,
|
|
|
|
XCB_ALLOW_REPLAY_POINTER,
|
|
|
|
ev->time);
|
2009-04-19 01:37:50 -07:00
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_allow_events(_ecore_xcb_conn,
|
|
|
|
XCB_ALLOW_ASYNC_POINTER,
|
|
|
|
ev->time);
|
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (child_window == event_window)
|
|
|
|
{
|
|
|
|
if (!_ecore_xcb_mouse_down_did_triple)
|
|
|
|
{
|
|
|
|
_ecore_xcb_mouse_down_last_last_window = _ecore_xcb_mouse_down_last_window;
|
|
|
|
if (ev->child)
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_xcb_mouse_down_last_window = ev->child;
|
2009-04-19 01:37:50 -07:00
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_xcb_mouse_down_last_window = ev->event;
|
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_xcb_mouse_down_last_last_event_window = _ecore_xcb_mouse_down_last_event_window;
|
|
|
|
_ecore_xcb_mouse_down_last_event_window = ev->event;
|
|
|
|
_ecore_xcb_mouse_down_last_last_time = _ecore_xcb_mouse_down_last_time;
|
|
|
|
_ecore_xcb_mouse_down_last_time = ev->time;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_button_press */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_button_release(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_button_release_event_t *ev;
|
|
|
|
|
|
|
|
ev = (xcb_button_release_event_t *)event;
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_xcb_last_event_mouse_move = 0;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
/* filter out wheel buttons */
|
|
|
|
if ((ev->detail <= 3) || (ev->detail > 7))
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_mouse_move(ev->time, ev->state,
|
|
|
|
ev->event_x, ev->event_y,
|
|
|
|
ev->root_x, ev->root_y,
|
|
|
|
ev->event,
|
|
|
|
(ev->child ? ev->child : ev->event),
|
|
|
|
ev->root,
|
|
|
|
ev->same_screen);
|
|
|
|
|
|
|
|
_ecore_mouse_button(ECORE_EVENT_MOUSE_BUTTON_UP,
|
|
|
|
ev->time, ev->state,
|
|
|
|
ev->detail,
|
|
|
|
ev->event_x, ev->event_y,
|
|
|
|
ev->root_x, ev->root_y,
|
|
|
|
ev->event,
|
|
|
|
(ev->child ? ev->child : ev->event),
|
|
|
|
ev->root,
|
|
|
|
ev->same_screen);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_button_release */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_motion_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_motion_notify_event_t *ev;
|
|
|
|
|
|
|
|
ev = (xcb_motion_notify_event_t *)event;
|
2009-04-19 01:37:50 -07:00
|
|
|
if (_ecore_xcb_last_event_mouse_move)
|
|
|
|
{
|
|
|
|
ecore_event_del(_ecore_xcb_last_event_mouse_move_event);
|
|
|
|
_ecore_xcb_last_event_mouse_move = 0;
|
|
|
|
_ecore_xcb_last_event_mouse_move_event = NULL;
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_mouse_move(ev->time, ev->state,
|
2010-08-02 11:54:27 -07:00
|
|
|
ev->event_x, ev->event_y,
|
|
|
|
ev->root_x, ev->root_y,
|
|
|
|
ev->event,
|
|
|
|
(ev->child ? ev->child : ev->event),
|
|
|
|
ev->root,
|
|
|
|
ev->same_screen);
|
2009-04-19 01:37:50 -07:00
|
|
|
|
|
|
|
_ecore_xcb_last_event_mouse_move = 1;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
/* Xdnd handling */
|
|
|
|
_ecore_x_dnd_drag(ev->root, ev->root_x, ev->root_y);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_motion_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_enter_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_enter_notify_event_t *ev;
|
|
|
|
|
|
|
|
ev = (xcb_enter_notify_event_t *)event;
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_xcb_last_event_mouse_move = 0;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
{
|
|
|
|
_ecore_mouse_move(ev->time, ev->state,
|
|
|
|
ev->event_x, ev->event_y,
|
|
|
|
ev->root_x, ev->root_y,
|
|
|
|
ev->event,
|
|
|
|
(ev->child ? ev->child : ev->event),
|
|
|
|
ev->root,
|
|
|
|
ev->same_screen_focus);
|
|
|
|
}
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Mouse_In *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Mouse_In));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
e->modifiers = _ecore_x_event_modifiers(ev->state);
|
|
|
|
e->x = ev->event_x;
|
|
|
|
e->y = ev->event_y;
|
|
|
|
e->root.x = ev->root_x;
|
|
|
|
e->root.y = ev->root_y;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (ev->child)
|
|
|
|
e->win = ev->child;
|
|
|
|
else
|
|
|
|
e->win = ev->event;
|
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
e->same_screen = ev->same_screen_focus;
|
|
|
|
e->root_win = ev->root;
|
|
|
|
e->event_win = ev->event;
|
|
|
|
switch (ev->mode) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_MODE_NORMAL:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_NORMAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_GRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_GRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_UNGRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_UNGRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_NORMAL;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
2009-04-21 10:42:25 -07:00
|
|
|
switch (ev->detail) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_DETAIL_ANCESTOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_ANCESTOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_INFERIOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_INFERIOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_ANCESTOR;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
2009-04-21 10:42:25 -07:00
|
|
|
e->time = ev->time;
|
|
|
|
_ecore_xcb_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_MOUSE_IN, e, NULL, NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_enter_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_leave_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_leave_notify_event_t *ev;
|
|
|
|
|
|
|
|
ev = (xcb_leave_notify_event_t *)event;
|
2009-04-19 01:37:50 -07:00
|
|
|
_ecore_xcb_last_event_mouse_move = 0;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
{
|
|
|
|
_ecore_mouse_move(ev->time, ev->state,
|
|
|
|
ev->event_x, ev->event_y,
|
|
|
|
ev->root_x, ev->root_y,
|
|
|
|
ev->event,
|
|
|
|
(ev->child ? ev->child : ev->event),
|
|
|
|
ev->root,
|
|
|
|
ev->same_screen_focus);
|
|
|
|
}
|
|
|
|
{
|
|
|
|
Ecore_X_Event_Mouse_Out *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Mouse_Out));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
e->modifiers = _ecore_x_event_modifiers(ev->state);
|
|
|
|
e->x = ev->event_x;
|
|
|
|
e->y = ev->event_y;
|
|
|
|
e->root.x = ev->root_x;
|
|
|
|
e->root.y = ev->root_y;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (ev->child)
|
|
|
|
e->win = ev->child;
|
|
|
|
else
|
|
|
|
e->win = ev->event;
|
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
e->same_screen = ev->same_screen_focus;
|
|
|
|
e->root_win = ev->root;
|
|
|
|
e->event_win = ev->event;
|
|
|
|
switch (ev->mode) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_MODE_NORMAL:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_NORMAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_GRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_GRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_UNGRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_UNGRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_NORMAL;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
2009-04-21 10:42:25 -07:00
|
|
|
switch (ev->detail) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_DETAIL_ANCESTOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_ANCESTOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_INFERIOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_INFERIOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_ANCESTOR;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
2009-04-21 10:42:25 -07:00
|
|
|
e->time = ev->time;
|
|
|
|
_ecore_xcb_event_last_time = e->time;
|
|
|
|
_ecore_xcb_event_last_window = e->win;
|
|
|
|
_ecore_xcb_event_last_root_x = e->root.x;
|
|
|
|
_ecore_xcb_event_last_root_y = e->root.y;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_MOUSE_OUT, e, NULL, NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_leave_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_focus_in(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_focus_in_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Focus_In *e;
|
|
|
|
|
|
|
|
ev = (xcb_focus_in_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Focus_In));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->event;
|
|
|
|
switch (ev->mode) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_MODE_NORMAL:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_NORMAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_GRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_GRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_UNGRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_UNGRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_WHILE_GRABBED:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_WHILE_GRABBED;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
switch (ev->detail) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_DETAIL_ANCESTOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_ANCESTOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_INFERIOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_INFERIOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_POINTER:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_POINTER;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_POINTER_ROOT:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_POINTER_ROOT;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONE:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_DETAIL_NONE;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
_ecore_xcb_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_focus_in */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_focus_out(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_focus_out_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Focus_Out *e;
|
|
|
|
|
|
|
|
ev = (xcb_focus_out_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Focus_Out));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->event;
|
|
|
|
switch (ev->mode) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_MODE_NORMAL:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_NORMAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_GRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_GRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_UNGRAB:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_UNGRAB;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_MODE_WHILE_GRABBED:
|
|
|
|
e->mode = ECORE_X_EVENT_MODE_WHILE_GRABBED;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
switch (ev->detail) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_NOTIFY_DETAIL_ANCESTOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_ANCESTOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_INFERIOR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_INFERIOR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_POINTER:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_POINTER;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_POINTER_ROOT:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_POINTER_ROOT;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_NOTIFY_DETAIL_NONE:
|
|
|
|
e->detail = ECORE_X_EVENT_DETAIL_DETAIL_NONE;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
_ecore_xcb_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_focus_out */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
2009-04-21 10:42:25 -07:00
|
|
|
_ecore_x_event_handle_keymap_notify(xcb_generic_event_t *event)
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
|
|
|
/* FIXME: handle this event type */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_keymap_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_expose(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_expose_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Damage *e;
|
|
|
|
|
|
|
|
ev = (xcb_expose_event_t *)event,
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Damage));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
e->x = ev->x;
|
|
|
|
e->y = ev->y;
|
|
|
|
e->w = ev->width;
|
|
|
|
e->h = ev->height;
|
|
|
|
e->count = ev->count;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_expose */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_graphics_expose(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_graphics_exposure_event_t *ev;
|
|
|
|
Ecore_X_Event_Window_Damage *e;
|
|
|
|
|
|
|
|
ev = (xcb_graphics_exposure_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Damage));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->drawable;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
e->x = ev->x;
|
|
|
|
e->y = ev->y;
|
|
|
|
e->w = ev->width;
|
|
|
|
e->h = ev->height;
|
|
|
|
e->count = ev->count;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_graphics_expose */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_visibility_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_visibility_notify_event_t *ev;
|
|
|
|
|
|
|
|
ev = (xcb_visibility_notify_event_t *)event;
|
|
|
|
if (ev->state != XCB_VISIBILITY_PARTIALLY_OBSCURED)
|
2010-08-02 11:54:27 -07:00
|
|
|
{
|
|
|
|
Ecore_X_Event_Window_Visibility_Change *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Visibility_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = ev->window;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
if (ev->state == XCB_VISIBILITY_FULLY_OBSCURED)
|
|
|
|
e->fully_obscured = 1;
|
|
|
|
else
|
|
|
|
e->fully_obscured = 0;
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, e, NULL, NULL);
|
|
|
|
}
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_visibility_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_create_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_create_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Create *e;
|
|
|
|
|
|
|
|
ev = (xcb_create_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Create));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
if (ev->override_redirect)
|
|
|
|
e->override = 1;
|
|
|
|
else
|
|
|
|
e->override = 0;
|
2010-08-02 11:54:27 -07:00
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_CREATE, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_create_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_destroy_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_destroy_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Destroy *e;
|
|
|
|
|
|
|
|
ev = (xcb_destroy_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Destroy));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = ev->window;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
2010-08-02 11:54:27 -07:00
|
|
|
if (e->win == _ecore_xcb_event_last_window)
|
|
|
|
_ecore_xcb_event_last_window = 0;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_DESTROY, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_destroy_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_unmap_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_unmap_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Hide *e;
|
|
|
|
|
|
|
|
ev = (xcb_unmap_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Hide));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_HIDE, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_unmap_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_map_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_map_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Show *e;
|
|
|
|
|
|
|
|
ev = (xcb_map_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Show));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_map_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_map_request(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_map_request_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Show_Request *e;
|
|
|
|
|
|
|
|
ev = (xcb_map_request_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Show_Request));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->parent = ev->parent;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW_REQUEST, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_map_request */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_reparent_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_reparent_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Reparent *e;
|
|
|
|
|
|
|
|
ev = (xcb_reparent_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Reparent));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->parent = ev->parent;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_REPARENT, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_reparent_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_configure_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_configure_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Configure *e;
|
|
|
|
|
|
|
|
ev = (xcb_configure_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Configure));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->abovewin = ev->above_sibling;
|
|
|
|
e->x = ev->x;
|
|
|
|
e->y = ev->y;
|
|
|
|
e->w = ev->width;
|
|
|
|
e->h = ev->height;
|
|
|
|
e->border = ev->border_width;
|
|
|
|
e->override = ev->override_redirect;
|
|
|
|
/* send_event is bit 7 (0x80) of response_type */
|
2008-07-23 03:00:01 -07:00
|
|
|
e->from_wm = (ev->response_type & 0x80) ? 1 : 0;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_configure_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_configure_request(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_configure_request_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Configure_Request *e;
|
|
|
|
|
|
|
|
ev = (xcb_configure_request_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Configure_Request));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->abovewin = ev->sibling;
|
|
|
|
e->x = ev->x;
|
|
|
|
e->y = ev->y;
|
|
|
|
e->w = ev->width;
|
|
|
|
e->h = ev->height;
|
|
|
|
e->border = ev->border_width;
|
|
|
|
e->value_mask = ev->value_mask;
|
|
|
|
switch (ev->stack_mode) {
|
2010-08-02 11:54:27 -07:00
|
|
|
case XCB_STACK_MODE_ABOVE:
|
|
|
|
e->detail = ECORE_X_WINDOW_STACK_ABOVE;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_STACK_MODE_BELOW:
|
|
|
|
e->detail = ECORE_X_WINDOW_STACK_BELOW;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_STACK_MODE_TOP_IF:
|
|
|
|
e->detail = ECORE_X_WINDOW_STACK_TOP_IF;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_STACK_MODE_BOTTOM_IF:
|
|
|
|
e->detail = ECORE_X_WINDOW_STACK_BOTTOM_IF;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case XCB_STACK_MODE_OPPOSITE:
|
|
|
|
e->detail = ECORE_X_WINDOW_STACK_OPPOSITE;
|
|
|
|
break;
|
|
|
|
} /* switch */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_configure_request */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
2009-04-21 10:42:25 -07:00
|
|
|
_ecore_x_event_handle_gravity_notify(xcb_generic_event_t *event)
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
|
|
|
/* FIXME: handle this event type */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_gravity_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_resize_request(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_resize_request_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Resize_Request *e;
|
|
|
|
|
|
|
|
ev = (xcb_resize_request_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Resize_Request));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->w = ev->width;
|
|
|
|
e->h = ev->height;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_RESIZE_REQUEST, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_resize_request */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_circulate_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
xcb_circulate_notify_event_t *ev;
|
|
|
|
Ecore_X_Event_Window_Stack *e;
|
|
|
|
|
|
|
|
ev = (xcb_circulate_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Stack));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->event_win = ev->event;
|
|
|
|
if (ev->place == XCB_PLACE_ON_TOP)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->detail = ECORE_X_WINDOW_STACK_ABOVE;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
e->detail = ECORE_X_WINDOW_STACK_BELOW;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_STACK, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_circulate_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_circulate_request(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_circulate_request_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Stack_Request *e;
|
|
|
|
|
|
|
|
ev = (xcb_circulate_request_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Stack_Request));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->parent = ev->event;
|
|
|
|
if (ev->place == XCB_PLACE_ON_TOP)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->detail = ECORE_X_WINDOW_STACK_ABOVE;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
e->detail = ECORE_X_WINDOW_STACK_BELOW;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_STACK_REQUEST, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_circulate_request */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_property_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#if 0 /* for now i disabled this. nice idea though this is - it leaves a lot
|
|
|
|
* to be desired for efficiency that is better left to the app layer
|
|
|
|
*/
|
|
|
|
if (xevent->xproperty.atom == ECORE_X_ATOM_WM_CLASS)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Name_Class_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Name_Class_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
ecore_x_window_prop_name_class_get(xevent->xproperty.window,
|
|
|
|
&(e->name), &(e->clas));
|
|
|
|
e->time = xevent->xproperty.time;
|
|
|
|
_ecore_x_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_NAME_CLASS_CHANGE, e, _ecore_x_event_free_window_prop_name_class_change, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((xevent->xproperty.atom == ECORE_X_ATOM_WM_NAME) || (xevent->xproperty.atom == ECORE_X_ATOM_NET_WM_NAME))
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Title_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Title_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->title = ecore_x_window_prop_title_get(xevent->xproperty.window);
|
|
|
|
e->time = xevent->xproperty.time;
|
|
|
|
_ecore_x_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_TITLE_CHANGE, e, _ecore_x_event_free_window_prop_title_change, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if (xevent->xproperty.atom == ECORE_X_ATOM_NET_WM_VISIBLE_NAME)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Visible_Title_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Visible_Title_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->title = ecore_x_window_prop_visible_title_get(xevent->xproperty.window);
|
|
|
|
e->time = xevent->xproperty.time;
|
|
|
|
_ecore_x_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_VISIBLE_TITLE_CHANGE, e, _ecore_x_event_free_window_prop_visible_title_change, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((xevent->xproperty.atom == ECORE_X_ATOM_WM_ICON_NAME) || (xevent->xproperty.atom == ECORE_X_ATOM_NET_WM_ICON_NAME))
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Icon_Name_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Icon_Name_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->name = ecore_x_window_prop_icon_name_get(xevent->xproperty.window);
|
|
|
|
e->time = xevent->xproperty.time;
|
|
|
|
_ecore_x_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_ICON_NAME_CHANGE, e, _ecore_x_event_free_window_prop_icon_name_change, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if (xevent->xproperty.atom == ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->name = ecore_x_window_prop_visible_icon_name_get(xevent->xproperty.window);
|
|
|
|
e->time = xevent->xproperty.time;
|
|
|
|
_ecore_x_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_VISIBLE_ICON_NAME_CHANGE, e, _ecore_x_event_free_window_prop_visible_icon_name_change, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if (xevent->xproperty.atom == ECORE_X_ATOM_WM_CLIENT_MACHINE)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Client_Machine_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Client_Machine_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->name = ecore_x_window_prop_client_machine_get(xevent->xproperty.window);
|
|
|
|
e->time = xevent->xproperty.time;
|
|
|
|
_ecore_x_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_CLIENT_MACHINE_CHANGE, e, _ecore_x_event_free_window_prop_client_machine_change, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if (xevent->xproperty.atom == ECORE_X_ATOM_NET_WM_PID)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Pid_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Pid_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->pid = ecore_x_window_prop_pid_get(xevent->xproperty.window);
|
|
|
|
e->time = xevent->xproperty.time;
|
|
|
|
_ecore_x_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_PID_CHANGE, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if (xevent->xproperty.atom == ECORE_X_ATOM_NET_WM_DESKTOP)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Prop_Desktop_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Prop_Desktop_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->desktop = ecore_x_window_prop_desktop_get(xevent->xproperty.window);
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROP_PID_CHANGE, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
#endif /* if 0 */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_property_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Property *e;
|
|
|
|
|
|
|
|
ev = (xcb_property_notify_event_t *)event;
|
|
|
|
e = calloc(1,sizeof(Ecore_X_Event_Window_Property));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->atom = ev->atom;
|
|
|
|
e->time = ev->time;
|
|
|
|
_ecore_xcb_event_last_time = e->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_PROPERTY, e, NULL, NULL);
|
|
|
|
}
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_property_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_selection_clear(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_selection_clear_event_t *ev;
|
|
|
|
Ecore_X_Selection_Intern *d;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Selection_Clear *e;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Atom sel;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_selection_clear_event_t *)event;
|
2009-03-22 11:19:17 -07:00
|
|
|
d = _ecore_x_selection_get(ev->selection);
|
|
|
|
if (d && (ev->time > d->time))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_x_selection_set(XCB_NONE, NULL, 0,
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
ev->selection);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Generate event for app cleanup */
|
|
|
|
e = malloc(sizeof(Ecore_X_Event_Selection_Clear));
|
|
|
|
e->win = ev->owner;
|
|
|
|
e->time = ev->time;
|
2009-03-22 11:19:17 -07:00
|
|
|
e->atom = sel = ev->selection;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
if (sel == ECORE_X_ATOM_SELECTION_PRIMARY)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_PRIMARY;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else if (sel == ECORE_X_ATOM_SELECTION_SECONDARY)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_SECONDARY;
|
2009-03-22 11:19:17 -07:00
|
|
|
else if (sel == ECORE_X_ATOM_SELECTION_CLIPBOARD)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_CLIPBOARD;
|
2009-03-22 11:19:17 -07:00
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_OTHER;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
ecore_event_add(ECORE_X_EVENT_SELECTION_CLEAR, e, NULL, NULL);
|
|
|
|
|
2009-04-21 10:42:25 -07:00
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_selection_clear */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_selection_request(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_selection_request_event_t *ev;
|
2010-06-14 12:22:45 -07:00
|
|
|
Ecore_X_Event_Selection_Request *e;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Selection_Intern *sd;
|
|
|
|
void *data;
|
|
|
|
int len;
|
|
|
|
int typesize;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_selection_request_event_t *)event;
|
2010-06-14 12:22:45 -07:00
|
|
|
_ecore_xcb_last_event_mouse_move = 0;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Generate a selection request event.
|
|
|
|
*/
|
|
|
|
e = malloc(sizeof(Ecore_X_Event_Selection_Request));
|
|
|
|
e->owner = ev->owner;
|
|
|
|
e->requestor = ev->requestor;
|
|
|
|
e->time = ev->time;
|
|
|
|
e->selection = ev->selection;
|
|
|
|
e->target = ev->target;
|
|
|
|
e->property = ev->property;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_SELECTION_REQUEST, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
if ((sd = _ecore_x_selection_get(ev->selection)) &&
|
|
|
|
(sd->win == ev->owner))
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Selection_Intern *si;
|
2010-06-14 12:22:45 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
si = _ecore_x_selection_get(ev->selection);
|
|
|
|
if (si->data)
|
|
|
|
{
|
|
|
|
Ecore_X_Atom property;
|
|
|
|
Ecore_X_Atom type;
|
2010-06-14 12:22:45 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
/* Set up defaults for strings first */
|
|
|
|
type = ev->target;
|
|
|
|
typesize = 8;
|
|
|
|
len = sd->length;
|
2010-06-14 12:22:45 -07:00
|
|
|
|
|
|
|
if (!ecore_x_selection_convert(ev->selection, ev->target,
|
|
|
|
&data, &len, &type, &typesize))
|
|
|
|
{
|
|
|
|
/* Refuse selection, conversion to requested target failed */
|
2010-08-02 11:54:27 -07:00
|
|
|
property = XCB_NONE;
|
2010-06-14 12:22:45 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* FIXME: This does not properly handle large data transfers */
|
2010-08-02 11:54:27 -07:00
|
|
|
ecore_x_window_prop_property_set(ev->requestor,
|
|
|
|
ev->property,
|
|
|
|
ev->target,
|
|
|
|
8, data, sd->length);
|
|
|
|
property = ev->property;
|
|
|
|
free(data);
|
2010-06-14 12:22:45 -07:00
|
|
|
}
|
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
ecore_x_selection_notify_send(ev->requestor,
|
|
|
|
ev->selection,
|
|
|
|
ev->target,
|
|
|
|
property,
|
|
|
|
ev->time);
|
2010-06-14 12:22:45 -07:00
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_selection_request */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* FIXME: round trip */
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_selection_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_selection_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Selection_Notify *e;
|
2010-08-02 11:54:27 -07:00
|
|
|
unsigned char *data = NULL;
|
|
|
|
Ecore_X_Atom selection;
|
|
|
|
int num_ret;
|
|
|
|
uint8_t format;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_selection_notify_event_t *)event;
|
|
|
|
selection = ev->selection;
|
|
|
|
|
|
|
|
if (ev->target == ECORE_X_ATOM_SELECTION_TARGETS)
|
|
|
|
{
|
|
|
|
ecore_x_window_prop_property_get_prefetch(ev->requestor,
|
|
|
|
ev->property,
|
|
|
|
ECORE_X_ATOM_ATOM);
|
|
|
|
ecore_x_window_prop_property_get_fetch();
|
|
|
|
format = ecore_x_window_prop_property_get(ev->requestor,
|
|
|
|
ev->property,
|
|
|
|
ECORE_X_ATOM_ATOM,
|
|
|
|
32,
|
|
|
|
&data,
|
|
|
|
&num_ret);
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!format)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ecore_x_window_prop_property_get_prefetch(ev->requestor,
|
|
|
|
ev->property,
|
|
|
|
XCB_GET_PROPERTY_TYPE_ANY);
|
|
|
|
ecore_x_window_prop_property_get_fetch();
|
|
|
|
format = ecore_x_window_prop_property_get(ev->requestor,
|
|
|
|
ev->property,
|
|
|
|
ECORE_X_ATOM_ATOM,
|
|
|
|
8,
|
|
|
|
&data,
|
|
|
|
&num_ret);
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!format)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Selection_Notify));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->requestor;
|
|
|
|
e->time = ev->time;
|
2009-03-22 11:19:17 -07:00
|
|
|
e->atom = selection;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->target = _ecore_x_selection_target_get(ev->target);
|
|
|
|
|
|
|
|
if (selection == ECORE_X_ATOM_SELECTION_PRIMARY)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_PRIMARY;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else if (selection == ECORE_X_ATOM_SELECTION_SECONDARY)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_SECONDARY;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else if (selection == ECORE_X_ATOM_SELECTION_XDND)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_XDND;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else if (selection == ECORE_X_ATOM_SELECTION_CLIPBOARD)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_CLIPBOARD;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
e->selection = ECORE_X_SELECTION_OTHER;
|
2009-03-22 11:19:17 -07:00
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->data = _ecore_x_selection_parse(e->target, data, num_ret, format);
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_SELECTION_NOTIFY, e, _ecore_x_event_free_selection_notify, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_selection_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_colormap_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_colormap_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Colormap *e;
|
|
|
|
|
|
|
|
ev = (xcb_colormap_notify_event_t *)event;
|
|
|
|
e = calloc(1,sizeof(Ecore_X_Event_Window_Colormap));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->cmap = ev->colormap;
|
|
|
|
if (ev->state == XCB_COLORMAP_STATE_INSTALLED)
|
|
|
|
e->installed = 1;
|
|
|
|
else
|
|
|
|
e->installed = 0;
|
2010-08-02 11:54:27 -07:00
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_COLORMAP, e, NULL, NULL);
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_colormap_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_client_message(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
/* Special client message event handling here. need to put LOTS of if */
|
|
|
|
/* checks here and generate synthetic events per special message known */
|
|
|
|
/* otherwise generate generic client message event. this would handle*/
|
|
|
|
/* netwm, ICCCM, gnomewm, old kde and mwm hint client message protocols */
|
|
|
|
|
|
|
|
xcb_client_message_event_t *ev;
|
|
|
|
|
|
|
|
ev = (xcb_client_message_event_t *)event;
|
|
|
|
if ((ev->type == ECORE_X_ATOM_WM_PROTOCOLS) &&
|
|
|
|
(ev->format == 32) &&
|
|
|
|
(ev->data.data32[0] == (uint32_t)ECORE_X_ATOM_WM_DELETE_WINDOW))
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Delete_Request *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Delete_Request));
|
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->time = _ecore_xcb_event_last_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_DELETE_REQUEST, e, NULL, NULL);
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else if ((ev->type == ECORE_X_ATOM_NET_WM_MOVERESIZE) &&
|
2010-08-02 11:54:27 -07:00
|
|
|
(ev->format == 32) &&
|
|
|
|
/* Ignore move and resize with keyboard */
|
|
|
|
(ev->data.data32[2] < 9))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_Move_Resize_Request *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Move_Resize_Request));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = ev->window;
|
|
|
|
e->x = ev->data.data32[0];
|
|
|
|
e->y = ev->data.data32[1];
|
|
|
|
e->direction = ev->data.data32[2];
|
|
|
|
e->button = ev->data.data32[3];
|
|
|
|
e->source = ev->data.data32[4];
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
/* Xdnd Client Message Handling Begin */
|
|
|
|
/* Message Type: XdndEnter target */
|
|
|
|
else if (ev->type == ECORE_X_ATOM_XDND_ENTER)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Xdnd_Enter *e;
|
|
|
|
Ecore_X_DND_Target *target;
|
|
|
|
uint32_t three;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Enter));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
target = _ecore_x_dnd_target_get();
|
|
|
|
target->state = ECORE_X_DND_TARGET_ENTERED;
|
|
|
|
|
|
|
|
target = _ecore_x_dnd_target_get();
|
|
|
|
target->source = ev->data.data32[0];
|
|
|
|
target->win = ev->window;
|
|
|
|
target->version = ev->data.data32[1] >> 24;
|
|
|
|
if (target->version > ECORE_X_DND_VERSION)
|
|
|
|
{
|
2009-12-21 09:32:19 -08:00
|
|
|
WRN("DND: Requested version %d, we only support up to %d", target->version,
|
2010-08-02 11:54:27 -07:00
|
|
|
ECORE_X_DND_VERSION);
|
|
|
|
return;
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* FIXME: roud trip, but I don't know how to suppress it */
|
2010-08-02 11:54:27 -07:00
|
|
|
if ((three = ev->data.data32[1] & 0x1UL))
|
|
|
|
{
|
|
|
|
/* source supports more than 3 types, fetch property */
|
|
|
|
unsigned char *data;
|
|
|
|
Ecore_X_Atom *types;
|
|
|
|
int num_ret;
|
|
|
|
int i;
|
|
|
|
uint8_t format;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ecore_x_window_prop_property_get_prefetch(target->source,
|
|
|
|
ECORE_X_ATOM_XDND_TYPE_LIST,
|
|
|
|
ECORE_X_ATOM_ATOM);
|
|
|
|
ecore_x_window_prop_property_get_fetch();
|
|
|
|
format = ecore_x_window_prop_property_get(target->source,
|
|
|
|
ECORE_X_ATOM_XDND_TYPE_LIST,
|
|
|
|
ECORE_X_ATOM_ATOM,
|
|
|
|
32,
|
|
|
|
&data,
|
|
|
|
&num_ret);
|
|
|
|
if (!format)
|
2010-08-02 11:54:27 -07:00
|
|
|
{
|
|
|
|
ERR("DND: Could not fetch data type list from source window, aborting.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
types = (Ecore_X_Atom *)data;
|
|
|
|
e->types = calloc(num_ret, sizeof(char *));
|
|
|
|
if (e->types)
|
|
|
|
{
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
xcb_get_atom_name_cookie_t *cookies;
|
|
|
|
|
|
|
|
cookies = (xcb_get_atom_name_cookie_t *)malloc(sizeof(xcb_get_atom_name_cookie_t) * num_ret);
|
|
|
|
for (i = 0; i < num_ret; i++)
|
2010-08-02 11:54:27 -07:00
|
|
|
cookies[i] = xcb_get_atom_name_unchecked(_ecore_xcb_conn, types[i]);
|
|
|
|
for (i = 0; i < num_ret; i++)
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
|
|
|
xcb_get_atom_name_reply_t *reply;
|
2010-08-02 11:54:27 -07:00
|
|
|
char *name;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
reply = xcb_get_atom_name_reply(_ecore_xcb_conn, cookies[i], NULL);
|
|
|
|
if (reply)
|
|
|
|
{
|
|
|
|
name = (char *)malloc(sizeof (char) * (reply->name_len + 1));
|
|
|
|
memcpy(name,
|
|
|
|
xcb_get_atom_name_name(reply),
|
|
|
|
reply->name_len);
|
|
|
|
name[reply->name_len] = '\0';
|
|
|
|
e->types[i] = name;
|
|
|
|
free(reply);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
free(cookies);
|
2010-08-02 11:54:27 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
e->num_types = num_ret;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
e->types = calloc(3, sizeof(char *));
|
|
|
|
if (e->types)
|
|
|
|
{
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
xcb_get_atom_name_cookie_t cookies[3];
|
|
|
|
|
|
|
|
for (i = 0; i < 3; i++)
|
2010-08-02 11:54:27 -07:00
|
|
|
cookies[i] = xcb_get_atom_name_unchecked(_ecore_xcb_conn, ev->data.data32[i + 2]);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
for (i = 0; i < 3; i++)
|
|
|
|
{
|
|
|
|
xcb_get_atom_name_reply_t *reply;
|
2010-08-02 11:54:27 -07:00
|
|
|
char *name;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
reply = xcb_get_atom_name_reply(_ecore_xcb_conn, cookies[i], NULL);
|
|
|
|
if (reply && (ev->data.data32[i + 2]))
|
|
|
|
{
|
|
|
|
name = (char *)malloc(sizeof (char) * (reply->name_len + 1));
|
|
|
|
memcpy(name,
|
|
|
|
xcb_get_atom_name_name(reply),
|
|
|
|
reply->name_len);
|
|
|
|
name[reply->name_len] = '\0';
|
|
|
|
e->types[i] = name;
|
|
|
|
}
|
2010-08-02 11:54:27 -07:00
|
|
|
|
|
|
|
if (reply)
|
|
|
|
free(reply);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
2010-08-02 11:54:27 -07:00
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->num_types = i;
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->win = target->win;
|
|
|
|
e->source = target->source;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_XDND_ENTER, e, _ecore_x_event_free_xdnd_enter, NULL);
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
/* Message Type: XdndPosition target */
|
|
|
|
else if (ev->type == ECORE_X_ATOM_XDND_POSITION)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Xdnd_Position *e;
|
|
|
|
Ecore_X_DND_Target *target;
|
|
|
|
|
|
|
|
target = _ecore_x_dnd_target_get();
|
|
|
|
if ((target->source != (Ecore_X_Window)ev->data.data32[0]) ||
|
|
|
|
(target->win != ev->window))
|
|
|
|
return;
|
|
|
|
|
|
|
|
target->pos.x = (int16_t)ev->data.data32[2] >> 16;
|
|
|
|
target->pos.y = (int16_t)ev->data.data32[2] & 0xFFFFUL;
|
|
|
|
target->action = ev->data.data32[4]; /* Version 2 */
|
|
|
|
|
|
|
|
target->time = (target->version >= 1) ?
|
|
|
|
ev->data.data32[3] : XCB_CURRENT_TIME;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Position));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = target->win;
|
|
|
|
e->source = target->source;
|
|
|
|
e->position.x = target->pos.x;
|
|
|
|
e->position.y = target->pos.y;
|
|
|
|
e->action = target->action;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_XDND_POSITION, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
/* Message Type: XdndStatus source */
|
|
|
|
else if (ev->type == ECORE_X_ATOM_XDND_STATUS)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Xdnd_Status *e;
|
|
|
|
Ecore_X_DND_Source *source;
|
|
|
|
|
|
|
|
source = _ecore_x_dnd_source_get();
|
|
|
|
/* Make sure source/target match */
|
|
|
|
if ((source->win != ev->window) ||
|
|
|
|
(source->dest != ev->data.data32[0]))
|
|
|
|
return;
|
|
|
|
|
|
|
|
source->await_status = 0;
|
|
|
|
|
|
|
|
source->will_accept = ev->data.data32[1] & 0x1UL;
|
|
|
|
source->suppress = (ev->data.data32[1] & 0x2UL) ? 0 : 1;
|
|
|
|
|
|
|
|
source->rectangle.x = (int16_t)ev->data.data32[2] >> 16;
|
|
|
|
source->rectangle.y = (int16_t)ev->data.data32[2] & 0xFFFFUL;
|
|
|
|
source->rectangle.width = (uint16_t)ev->data.data32[3] >> 16;
|
|
|
|
source->rectangle.height = (uint16_t)ev->data.data32[3] & 0xFFFFUL;
|
|
|
|
|
|
|
|
source->accepted_action = ev->data.data32[4];
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Status));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = source->win;
|
|
|
|
e->target = source->dest;
|
|
|
|
e->will_accept = source->will_accept;
|
|
|
|
e->rectangle.x = source->rectangle.x;
|
|
|
|
e->rectangle.y = source->rectangle.y;
|
|
|
|
e->rectangle.width = source->rectangle.width;
|
|
|
|
e->rectangle.height = source->rectangle.height;
|
|
|
|
e->action = source->accepted_action;
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_XDND_STATUS, e, NULL, NULL);
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
/* Message Type: XdndLeave target */
|
|
|
|
/* Pretend the whole thing never happened, sort of */
|
|
|
|
else if (ev->type == ECORE_X_ATOM_XDND_LEAVE)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Xdnd_Leave *e;
|
|
|
|
Ecore_X_DND_Target *target;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
target = _ecore_x_dnd_target_get();
|
|
|
|
if ((target->source != (Ecore_X_Window)ev->data.data32[0]) ||
|
|
|
|
(target->win != ev->window))
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
target->state = ECORE_X_DND_TARGET_IDLE;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Leave));
|
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->source = ev->data.data32[0];
|
|
|
|
ecore_event_add(ECORE_X_EVENT_XDND_LEAVE, e, NULL, NULL);
|
|
|
|
}
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
/* Message Type: XdndDrop target */
|
|
|
|
else if (ev->type == ECORE_X_ATOM_XDND_DROP)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Xdnd_Drop *e;
|
|
|
|
Ecore_X_DND_Target *target;
|
|
|
|
|
|
|
|
target = _ecore_x_dnd_target_get();
|
|
|
|
/* Match source/target */
|
|
|
|
if ((target->source != (Ecore_X_Window)ev->data.data32[0]) ||
|
|
|
|
(target->win != ev->window))
|
|
|
|
return;
|
|
|
|
|
|
|
|
target->time = (target->version >= 1) ?
|
|
|
|
ev->data.data32[2] : _ecore_xcb_event_last_time;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Drop));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = target->win;
|
|
|
|
e->source = target->source;
|
|
|
|
e->action = target->action;
|
|
|
|
e->position.x = target->pos.x;
|
|
|
|
e->position.y = target->pos.y;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_XDND_DROP, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
/* Message Type: XdndFinished source */
|
|
|
|
else if (ev->type == ECORE_X_ATOM_XDND_FINISHED)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Xdnd_Finished *e;
|
|
|
|
Ecore_X_DND_Source *source;
|
|
|
|
uint8_t completed = 1;
|
|
|
|
|
|
|
|
source = _ecore_x_dnd_source_get();
|
|
|
|
/* Match source/target */
|
|
|
|
if ((source->win != ev->window) ||
|
|
|
|
(source->dest != ev->data.data32[0]))
|
|
|
|
return;
|
|
|
|
|
|
|
|
if ((source->version >= 5) && (ev->data.data32[1] & 0x1UL))
|
|
|
|
{
|
|
|
|
/* Target successfully performed drop action */
|
|
|
|
ecore_x_selection_xdnd_clear();
|
|
|
|
source->state = ECORE_X_DND_SOURCE_IDLE;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
completed = 0;
|
|
|
|
source->state = ECORE_X_DND_SOURCE_CONVERTING;
|
|
|
|
|
|
|
|
/* FIXME: Probably need to add a timer to switch back to idle
|
|
|
|
* and discard the selection data */
|
|
|
|
}
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Finished));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = source->win;
|
|
|
|
e->target = source->dest;
|
|
|
|
e->completed = completed;
|
|
|
|
if (source->version >= 5)
|
|
|
|
{
|
|
|
|
source->accepted_action = ev->data.data32[2];
|
|
|
|
e->action = source->accepted_action;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
source->accepted_action = 0;
|
|
|
|
e->action = source->action;
|
|
|
|
}
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_XDND_FINISHED, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if (ev->type == ECORE_X_ATOM_NET_WM_STATE)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_State_Request *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_State_Request));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = ev->window;
|
|
|
|
if (ev->data.data32[0] == 0)
|
|
|
|
e->action = ECORE_X_WINDOW_STATE_ACTION_REMOVE;
|
|
|
|
else if (ev->data.data32[0] == 1)
|
|
|
|
e->action = ECORE_X_WINDOW_STATE_ACTION_ADD;
|
|
|
|
else if (ev->data.data32[0] == 2)
|
|
|
|
e->action = ECORE_X_WINDOW_STATE_ACTION_TOGGLE;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
free(e);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
e->state[0] = _ecore_x_netwm_state_get(ev->data.data32[1]);
|
|
|
|
if (e->state[0] == ECORE_X_WINDOW_STATE_UNKNOWN)
|
|
|
|
{
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
xcb_get_atom_name_reply_t *reply;
|
2010-08-02 11:54:27 -07:00
|
|
|
char *name;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* FIXME: round trip */
|
|
|
|
reply = xcb_get_atom_name_reply(_ecore_xcb_conn,
|
|
|
|
xcb_get_atom_name_unchecked(_ecore_xcb_conn, ev->data.data32[1]),
|
|
|
|
NULL);
|
2010-08-02 11:54:27 -07:00
|
|
|
if (reply)
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
name = (char *)malloc(sizeof (char) * (reply->name_len + 1));
|
|
|
|
memcpy(name,
|
|
|
|
xcb_get_atom_name_name(reply),
|
|
|
|
reply->name_len);
|
|
|
|
name[reply->name_len] = '\0';
|
|
|
|
ERR("Unknown state: %s", name);
|
|
|
|
free(name);
|
|
|
|
free(reply);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
2010-08-02 11:54:27 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
e->state[1] = _ecore_x_netwm_state_get(ev->data.data32[2]);
|
|
|
|
if (e->state[1] == ECORE_X_WINDOW_STATE_UNKNOWN)
|
|
|
|
{
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
xcb_get_atom_name_reply_t *reply;
|
2010-08-02 11:54:27 -07:00
|
|
|
char *name;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
reply = xcb_get_atom_name_reply(_ecore_xcb_conn,
|
|
|
|
xcb_get_atom_name_unchecked(_ecore_xcb_conn, ev->data.data32[2]),
|
|
|
|
NULL);
|
2010-08-02 11:54:27 -07:00
|
|
|
if (reply)
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
name = (char *)malloc(sizeof (char) * (reply->name_len + 1));
|
|
|
|
memcpy(name,
|
|
|
|
xcb_get_atom_name_name(reply),
|
|
|
|
reply->name_len);
|
|
|
|
name[reply->name_len] = '\0';
|
|
|
|
WRN("Unknown state: %s", name);
|
|
|
|
free(name);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
2010-08-02 11:54:27 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
e->source = ev->data.data32[3];
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_STATE_REQUEST, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((ev->type == ECORE_X_ATOM_WM_CHANGE_STATE)
|
2010-08-02 11:54:27 -07:00
|
|
|
&& (ev->format == 32)
|
|
|
|
&& (ev->data.data32[0] == XCB_WM_HINT_STATE))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Window_State_Request *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_State_Request));
|
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->action = ECORE_X_WINDOW_STATE_ACTION_ADD;
|
|
|
|
e->state[0] = ECORE_X_WINDOW_STATE_ICONIFIED;
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_STATE_REQUEST, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((ev->type == ECORE_X_ATOM_NET_WM_DESKTOP)
|
2010-08-02 11:54:27 -07:00
|
|
|
&& (ev->format == 32))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Desktop_Change *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Desktop_Change));
|
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->desk = ev->data.data32[0];
|
|
|
|
e->source = ev->data.data32[1];
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
ecore_event_add(ECORE_X_EVENT_DESKTOP_CHANGE, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((ev->type == ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS))
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Frame_Extents_Request *e;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Frame_Extents_Request));
|
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->win = ev->window;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
ecore_event_add(ECORE_X_EVENT_FRAME_EXTENTS_REQUEST, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((ev->type == ECORE_X_ATOM_WM_PROTOCOLS)
|
2010-08-02 11:54:27 -07:00
|
|
|
&& ((Ecore_X_Atom)ev->data.data32[0] == ECORE_X_ATOM_NET_WM_PING)
|
|
|
|
&& (ev->format == 32))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Ping *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Ping));
|
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
2010-08-02 11:54:27 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
e->time = ev->data.data32[1];
|
|
|
|
e->event_win = ev->data.data32[2];
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_PING, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((ev->type == ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN) &&
|
2010-08-02 11:54:27 -07:00
|
|
|
(ev->format == 8))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_x_netwm_startup_info_begin(ev->window, (char *)ev->data.data8);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((ev->type == ECORE_X_ATOM_NET_STARTUP_INFO) &&
|
2010-08-02 11:54:27 -07:00
|
|
|
(ev->format == 8))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
_ecore_x_netwm_startup_info(ev->window, (char *)ev->data.data8);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else if ((ev->type == 27777)
|
2010-08-02 11:54:27 -07:00
|
|
|
&& (ev->data.data32[0] == 0x7162534)
|
|
|
|
&& (ev->format == 32)
|
|
|
|
&& (ev->window == _ecore_xcb_private_window))
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
/* a grab sync marker */
|
|
|
|
if (ev->data.data32[1] == 0x10000001)
|
|
|
|
_ecore_x_window_grab_remove(ev->data.data32[2]);
|
|
|
|
else if (ev->data.data32[1] == 0x10000002)
|
|
|
|
_ecore_x_key_grab_remove(ev->data.data32[2]);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Client_Message *e;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Client_Message));
|
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
|
|
|
e->win = ev->window;
|
|
|
|
e->message_type = ev->type;
|
|
|
|
e->format = ev->format;
|
|
|
|
for (i = 0; i < 5; i++)
|
|
|
|
e->data.l[i] = ev->data.data32[i];
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_CLIENT_MESSAGE, e, NULL, NULL);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_client_message */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
2009-04-21 10:42:25 -07:00
|
|
|
_ecore_x_event_handle_mapping_notify(xcb_generic_event_t *event)
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
{
|
|
|
|
/* FIXME: handle this event type */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_mapping_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_shape_change(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#ifdef ECORE_X_SHAPE
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_shape_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Window_Shape *e;
|
|
|
|
|
|
|
|
ev = (xcb_shape_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Window_Shape));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->affected_window;
|
|
|
|
e->time = ev->server_time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_WINDOW_SHAPE, e, NULL, NULL);
|
|
|
|
#endif /* ECORE_X_SHAPE */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_shape_change */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_screensaver_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#ifdef ECORE_X_SCREENSAVER
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_screensaver_notify_event_t *ev;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Event_Screensaver_Notify *e;
|
|
|
|
|
|
|
|
ev = (xcb_screensaver_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Screensaver_Notify));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->window;
|
|
|
|
if (ev->state == XCB_SCREENSAVER_STATE_ON)
|
2010-08-02 11:54:27 -07:00
|
|
|
e->on = 1;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
else
|
2010-08-02 11:54:27 -07:00
|
|
|
e->on = 0;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = ev->time;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_SCREENSAVER_NOTIFY, e, NULL, NULL);
|
|
|
|
#endif /* ECORE_X_SCREENSAVER */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_screensaver_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_sync_counter(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#ifdef ECORE_X_SYNC
|
|
|
|
xcb_sync_counter_notify_event_t *ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Sync_Counter *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_sync_counter_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Sync_Counter));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = ev->timestamp;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_SYNC_COUNTER, e, NULL, NULL);
|
|
|
|
#endif /* ECORE_X_SYNC */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_sync_counter */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_sync_alarm(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#ifdef ECORE_X_SYNC
|
|
|
|
xcb_sync_alarm_notify_event_t *ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Sync_Alarm *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_sync_alarm_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Sync_Alarm));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->time = ev->timestamp;
|
|
|
|
e->alarm = ev->alarm;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_SYNC_ALARM, e, NULL, NULL);
|
|
|
|
#endif /* ECORE_X_SYNC */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_sync_alarm */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* FIXME: round trip */
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_randr_change(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#ifdef ECORE_X_RANDR
|
|
|
|
xcb_randr_screen_change_notify_event_t *ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Screen_Change *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_randr_screen_change_notify_event_t *)event;
|
|
|
|
|
|
|
|
if ((ev->response_type & ~0x80) != XCB_CONFIGURE_NOTIFY)
|
|
|
|
{
|
2010-08-02 11:54:27 -07:00
|
|
|
xcb_query_extension_reply_t *rep;
|
|
|
|
|
|
|
|
rep = xcb_query_extension_reply(_ecore_xcb_conn,
|
|
|
|
xcb_query_extension_unchecked(_ecore_xcb_conn,
|
|
|
|
strlen("randr"),
|
|
|
|
"randr"),
|
|
|
|
NULL);
|
|
|
|
|
|
|
|
if ((!rep) ||
|
|
|
|
(((ev->response_type & ~0x80) - rep->first_event) != XCB_RANDR_SCREEN_CHANGE_NOTIFY))
|
|
|
|
WRN("ERROR: Can't update RandR config!");
|
|
|
|
|
|
|
|
if (rep)
|
|
|
|
free(rep);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Screen_Change));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
e->win = ev->request_window;
|
|
|
|
e->root = ev->root;
|
|
|
|
e->width = ev->width;
|
|
|
|
e->height = ev->height;
|
|
|
|
ecore_event_add(ECORE_X_EVENT_SCREEN_CHANGE, e, NULL, NULL);
|
|
|
|
#endif /* ECORE_X_RANDR */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_randr_change */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_fixes_selection_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#ifdef ECORE_X_FIXES
|
|
|
|
/* Nothing here yet */
|
|
|
|
#endif /* ECORE_X_FIXES */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_fixes_selection_notify */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_x_event_handle_damage_notify(xcb_generic_event_t *event)
|
|
|
|
{
|
|
|
|
#ifdef ECORE_XCBDAMAGE
|
|
|
|
xcb_damage_notify_event_t *ev;
|
2010-08-02 11:54:27 -07:00
|
|
|
Ecore_X_Event_Damage *e;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
ev = (xcb_damage_notify_event_t *)event;
|
|
|
|
e = calloc(1, sizeof(Ecore_X_Event_Damage));
|
2010-08-02 11:54:27 -07:00
|
|
|
if (!e)
|
|
|
|
return;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
e->level = ev->level;
|
|
|
|
e->drawable = ev->drawable;
|
|
|
|
e->damage = ev->damage;
|
|
|
|
/* FIXME: XCB has no 'more' member in xcb_damage_notify_event_t */
|
|
|
|
/* e->more = ev->more; */
|
|
|
|
e->time = ev->timestamp;
|
|
|
|
e->area.x = ev->area.x;
|
|
|
|
e->area.y = ev->area.y;
|
|
|
|
e->area.width = ev->area.width;
|
|
|
|
e->area.height = ev->area.height;
|
|
|
|
e->geometry.x = ev->geometry.x;
|
|
|
|
e->geometry.y = ev->geometry.y;
|
|
|
|
e->geometry.width = ev->geometry.width;
|
|
|
|
e->geometry.height = ev->geometry.height;
|
|
|
|
|
|
|
|
ecore_event_add(ECORE_X_EVENT_DAMAGE_NOTIFY, e, NULL, NULL);
|
|
|
|
#endif /* ECORE_XCBDAMAGE */
|
2009-04-21 10:42:25 -07:00
|
|
|
|
|
|
|
free(event);
|
2010-08-02 11:54:27 -07:00
|
|
|
} /* _ecore_x_event_handle_damage_notify */
|
|
|
|
|