On Sat, 18 Aug 2012 13:59:45 +0200 Vincent Torri <[email protected]> said:
already did the doxy stuff. see the @since's > changelog, news, plus a small doxygen doc with @since for new struct an fct > > Vincent > > On Sat, Aug 18, 2012 at 1:29 PM, Enlightenment SVN > <[email protected]> wrote: > > Log: > > I know this is a new feature. i know i know. doing this because > > otherwise we weill need another efl release for e17 to get out. > > > > modified patch from: > > http://trac.enlightenment.org/e/ticket/1306 > > > > > > > > Author: raster > > Date: 2012-08-18 04:29:47 -0700 (Sat, 18 Aug 2012) > > New Revision: 75409 > > Trac: http://trac.enlightenment.org/e/changeset/75409 > > > > Modified: > > trunk/ecore/src/lib/ecore_x/Ecore_X.h > > trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb.c > > trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c > > trunk/ecore/src/lib/ecore_x/xlib/ecore_x.c > > trunk/ecore/src/lib/ecore_x/xlib/ecore_x_events.c > > trunk/ecore/src/lib/ecore_x/xlib/ecore_x_private.h > > > > Modified: trunk/ecore/src/lib/ecore_x/Ecore_X.h > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-08-18 11:13:43 UTC > > (rev 75408) +++ trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-08-18 > > 11:29:47 UTC (rev 75409) @@ -1045,6 +1045,8 @@ > > EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW; > > EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE; > > EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE; > > +EAPI extern int ECORE_X_EVENT_XKB_STATE_NOTIFY; /** @since 1.7 */ > > +EAPI extern int ECORE_X_EVENT_XKB_NEWKBD_NOTIFY; /** @since 1.7 */ > > > > EAPI extern int ECORE_X_EVENT_GENERIC; > > > > @@ -2169,6 +2171,12 @@ > > > > typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage; > > > > +struct _Ecore_X_Event_Xkb > > +{ > > + int group; > > +}; > > +typedef struct _Ecore_X_Event_Xkb Ecore_X_Event_Xkb; /** @since 1.7 */ > > + > > EAPI Eina_Bool ecore_x_damage_query(void); > > EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, > > Ecore_X_Damage_Report_Level level); EAPI void ecore_x_damage_free > > (Ecore_X_Damage damage); @@ -2375,8 +2383,8 @@ > > ecore_x_e_illume_window_state_set(Ecore_X_Window win, > > Ecore_X_Illume_Window_State state); > > > > -EAPI Ecore_X_Illume_Window_State > > -ecore_x_e_illume_window_state_get(Ecore_X_Window win); > > +EAPI Ecore_X_Illume_Window_State > > ecore_x_e_illume_window_state_get(Ecore_X_Window win); +EAPI > > void ecore_x_xkb_select_group(int > > group); /* @since 1.7 */ > > > > #ifdef __cplusplus > > } > > > > Modified: trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb.c > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb.c 2012-08-18 11:13:43 UTC > > (rev 75408) +++ trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb.c 2012-08-18 > > 11:29:47 UTC (rev 75409) @@ -1404,6 +1404,12 @@ > > return s->root_depth; > > } > > > > +API void > > +ecore_x_xkb_select_group(int group) > > +{ > > + // XXX: implement me */ > > +} > > + > > /** > > * Sets the timeout for a double and triple clicks to be flagged. > > * > > > > Modified: trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c 2012-08-18 11:13:43 > > UTC (rev 75408) +++ trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c > > 2012-08-18 11:29:47 UTC (rev 75409) @@ -180,6 +180,8 @@ > > EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW = 0; > > EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE = 0; > > EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE = 0; > > +EAPI int ECORE_X_EVENT_XKB_STATE_NOTIFY = 0; > > +EAPI int ECORE_X_EVENT_XKB_NEWKBD_NOTIFY = 0; > > EAPI int ECORE_X_EVENT_GENERIC = 0; > > > > void > > @@ -243,6 +245,8 @@ > > ECORE_X_EVENT_STARTUP_SEQUENCE_NEW = ecore_event_type_new(); > > ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE = ecore_event_type_new(); > > ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE = ecore_event_type_new(); > > + ECORE_X_EVENT_XKB_STATE_NOTIFY = ecore_event_type_new(); > > + ECORE_X_EVENT_XKB_NEWKBD_NOTIFY = ecore_event_type_new(); > > ECORE_X_EVENT_GENERIC = ecore_event_type_new(); > > } > > } > > > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x.c > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x.c 2012-08-18 11:13:43 UTC > > (rev 75408) +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x.c 2012-08-18 > > 11:29:47 UTC (rev 75409) @@ -50,6 +50,9 @@ > > #ifdef ECORE_XGESTURE > > static int _ecore_x_event_gesture_id = 0; > > #endif /* ifdef ECORE_XGESTURE */ > > +#ifdef ECORE_XKB > > +static int _ecore_x_event_xkb_id = 0; > > +#endif /* ifdef ECORE_XKB */ > > static int _ecore_x_event_handlers_num = 0; > > static void (**_ecore_x_event_handlers) (XEvent * event) = NULL; > > > > @@ -124,6 +127,10 @@ > > EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE = 0; > > EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE = 0; > > > > +EAPI int ECORE_X_EVENT_XKB_STATE_NOTIFY = 0; > > +EAPI int ECORE_X_EVENT_XKB_NEWKBD_NOTIFY = 0; > > + > > + > > EAPI int ECORE_X_EVENT_GENERIC = 0; > > > > EAPI int ECORE_X_MODIFIER_SHIFT = 0; > > @@ -299,7 +306,9 @@ > > int gesture_base = 0; > > int gesture_err_base = 0; > > #endif /* ifdef ECORE_XGESTURE */ > > - > > +#ifdef ECORE_XKB > > + int xkb_base = 0; > > +#endif /* ifdef ECORE_XKB */ > > if (++_ecore_x_init_count != 1) > > return _ecore_x_init_count; > > > > @@ -390,6 +399,18 @@ > > > > ECORE_X_EVENT_HANDLERS_GROW(gesture_base, GestureNumberEvents); > > #endif /* ifdef ECORE_XGESTURE */ > > +#ifdef ECORE_XKB > > + { > > + int dummy; > > + > > + if (XkbQueryExtension(_ecore_x_disp, &dummy, &xkb_base, > > + &dummy, &dummy, &dummy)) > > + _ecore_x_event_xkb_id = xkb_base; > > + XkbSelectEventDetails(_ecore_x_disp, XkbUseCoreKbd, XkbStateNotify, > > + XkbAllStateComponentsMask, > > XkbGroupStateMask); > > + } > > + ECORE_X_EVENT_HANDLERS_GROW(xkb_base, XkbNumberEvents); > > +#endif > > > > _ecore_x_event_handlers = calloc(_ecore_x_event_handlers_num, sizeof > > (void *)); if (!_ecore_x_event_handlers) > > @@ -502,7 +523,9 @@ > > Bool works = 0; > > XkbSetDetectableAutoRepeat(_ecore_x_disp, 1, &works); > > } > > - while (0); > > + while (0); > > + if (_ecore_x_event_xkb_id) > > + _ecore_x_event_handlers[_ecore_x_event_xkb_id] = > > _ecore_x_event_handle_xkb; > > #endif /* ifdef ECORE_XKB */ > > > > #ifdef ECORE_XGESTURE > > @@ -585,6 +608,9 @@ > > ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE = ecore_event_type_new(); > > ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE = ecore_event_type_new(); > > > > + ECORE_X_EVENT_XKB_STATE_NOTIFY = ecore_event_type_new(); > > + ECORE_X_EVENT_XKB_NEWKBD_NOTIFY = ecore_event_type_new(); > > + > > ECORE_X_EVENT_GENERIC = ecore_event_type_new(); > > } > > > > @@ -1016,14 +1042,12 @@ > > XEvent ev; > > > > XNextEvent(d, &ev); > > - > > #ifdef ENABLE_XIM > > /* Filter event for XIM */ > > if (XFilterEvent(&ev, ev.xkey.window)) > > continue; > > > > #endif /* ifdef ENABLE_XIM */ > > - > > if ((ev.type >= 0) && (ev.type < _ecore_x_event_handlers_num)) > > { > > if (_ecore_x_event_handlers[AnyXEvent]) > > @@ -2135,6 +2159,14 @@ > > return DefaultDepth(disp, ecore_x_screen_index_get(screen)); > > } > > > > +EAPI void > > +ecore_x_xkb_select_group(int group) > > +{ > > +#ifdef ECORE_XKB > > + XkbLockGroup(_ecore_x_disp, XkbUseCoreKbd, group); > > +#endif > > +} > > + > > > > /*****************************************************************************/ > > > > /*****************************************************************************/ > > > > /*****************************************************************************/ > > > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x_events.c > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x_events.c 2012-08-18 11:13:43 > > UTC (rev 75408) +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x_events.c > > 2012-08-18 11:29:47 UTC (rev 75409) @@ -2221,7 +2221,7 @@ > > void > > _ecore_x_event_handle_damage_notify(XEvent *event) > > { > > - XDamageNotifyEvent *damage_event; > > + XDamageNotifyEvent *damage_event; > > Ecore_X_Event_Damage *e; > > > > _ecore_x_last_event_mouse_move = 0; > > @@ -2496,4 +2496,21 @@ > > } > > > > #endif /* ifdef ECORE_XGESTURE */ > > - > > +#ifdef ECORE_XKB > > +void > > +_ecore_x_event_handle_xkb(XEvent *xevent) > > +{ > > + XkbEvent *xkbev; > > + Ecore_X_Event_Xkb *e; > > + > > + xkbev = (XkbEvent *) xevent; > > + e = calloc(1, sizeof(Ecore_X_Event_Xkb)); > > + if (!e) > > + return; > > + e->group = xkbev->state.group; > > + if (xkbev->any.xkb_type == XkbStateNotify) > > + ecore_event_add(ECORE_X_EVENT_XKB_STATE_NOTIFY, e, NULL, NULL); > > + else if (xkbev->any.xkb_type == XkbNewKeyboardNotify) > > + ecore_event_add(ECORE_X_EVENT_XKB_NEWKBD_NOTIFY, e, NULL, NULL); > > +} > > +#endif /* ifdef ECORE_XKB */ > > > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x_private.h > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x_private.h 2012-08-18 11:13:43 > > UTC (rev 75408) +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x_private.h > > 2012-08-18 11:29:47 UTC (rev 75409) @@ -258,6 +258,9 @@ > > #ifdef ECORE_XDAMAGE > > void _ecore_x_event_handle_damage_notify(XEvent *xevent); > > #endif /* ifdef ECORE_XDAMAGE */ > > +#ifdef ECORE_XKB > > +void _ecore_x_event_handle_xkb(XEvent *xevent); > > +#endif /* ifdef ECORE_XKB */ > > void _ecore_x_event_handle_generic_event(XEvent *xevent); > > > > void _ecore_x_selection_data_init(void); > > > > > > ------------------------------------------------------------------------------ > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > enlightenment-svn mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
