Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_x
Modified Files:
Tag: SPLIT
Ecore_X.h ecore_x.c ecore_x_events.c
Log Message:
cleanup warnings
simplify event freeing for x module (less code, less worries)
optimise some of the event loop to only loop thru handlers, idlers, etc. for
deletion if the delete flag is set. not sure i can optimise this much more,
and even so i'm not sure anyone would ever notice if i could...
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/Ecore_X.h,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -3 -r1.1.2.6 -r1.1.2.7
--- Ecore_X.h 23 Jan 2003 11:12:18 -0000 1.1.2.6
+++ Ecore_X.h 23 Jan 2003 23:03:24 -0000 1.1.2.7
@@ -138,6 +138,8 @@
struct _Ecore_X_Event_Window_Focus_In
{
Window win;
+
+ Time time;
};
struct _Ecore_X_Event_Window_Focus_Out
@@ -284,6 +286,8 @@
int ecore_x_init(const char *name);
Display *ecore_x_display_get(void);
+void ecore_x_double_click_time_set(double t);
+double ecore_x_double_click_time_get(void);
void ecore_x_error_handler_set(void (*func) (void *data), const void *data);
int ecore_x_error_request_get(void);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/ecore_x.c,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -3 -r1.1.2.5 -r1.1.2.6
--- ecore_x.c 23 Jan 2003 11:12:18 -0000 1.1.2.5
+++ ecore_x.c 23 Jan 2003 23:03:24 -0000 1.1.2.6
@@ -200,6 +200,33 @@
return _ecore_x_disp;
}
+/**
+ * Set the timeout for double/triple click to be flagged
+ * @param t The time in seconds
+ *
+ * This sets the time between clicks before the double_click flag is set in a
+ * button down event. If 3 clicks occur within double this time then the
+ * triple_click flag is also set.
+ */
+void
+ecore_x_double_click_time_set(double t)
+{
+ if (t < 0.0) t = 0.0;
+ _ecore_x_double_click_time = t;
+}
+
+/**
+ * Get the double/triple click timeout
+ * @return The timeout for double clicks in seconds
+ *
+ * This returns the tiemout that can be set by ecore_x_double_click_time_set()
+ */
+double
+ecore_x_double_click_time_get(void)
+{
+ return _ecore_x_double_click_time;
+}
+
static int
_ecore_x_fd_handler(Ecore_Fd_Handler *fd_handler, void *data)
{
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/ecore_x_events.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- ecore_x_events.c 23 Jan 2003 11:12:18 -0000 1.1.2.3
+++ ecore_x_events.c 23 Jan 2003 23:03:24 -0000 1.1.2.4
@@ -2,16 +2,12 @@
#include "ecore_x_private.h"
#include "Ecore_X.h"
-static void _ecore_x_event_handle_key_press_free(void *ev, void *data);
-static void _ecore_x_event_handle_key_release_free(void *ev, void *data);
-static void _ecore_x_event_handle_button_press_free(void *ev, void *data);
-static void _ecore_x_event_handle_button_release_free(void *ev, void *data);
-static void _ecore_x_event_handle_motion_notify_free(void *ev, void *data);
-static void _ecore_x_event_handle_enter_notify_free(void *ev, void *data);
-static void _ecore_x_event_handle_leave_notify_free(void *ev, void *data);
+static void _ecore_x_event_free_key_down(void *ev, void *data);
+static void _ecore_x_event_free_key_up(void *ev, void *data);
+static void _ecore_x_event_free_generic(void *ev, void *data);
static void
-_ecore_x_event_handle_key_press_free(void *ev, void *data)
+_ecore_x_event_free_key_down(void *ev, void *data)
{
Ecore_X_Event_Key_Down *e;
@@ -21,6 +17,23 @@
free(e);
}
+static void
+_ecore_x_event_free_key_up(void *ev, void *data)
+{
+ Ecore_X_Event_Key_Up *e;
+
+ e = ev;
+ if (e->keyname) free(e->keyname);
+ if (e->key_compose) free(e->key_compose);
+ free(e);
+}
+
+static void
+_ecore_x_event_free_generic(void *ev, void *data)
+{
+ free(ev);
+}
+
void
_ecore_x_event_handle_key_press(XEvent *xevent)
{
@@ -53,19 +66,7 @@
e->subwin = xevent->xkey.subwindow;
e->time = xevent->xkey.time;
e->modifiers = xevent->xkey.state;
- ecore_event_add(ECORE_EVENT_X_KEY_DOWN, e,
- _ecore_x_event_handle_key_press_free, NULL);
-}
-
-static void
-_ecore_x_event_handle_key_release_free(void *ev, void *data)
-{
- Ecore_X_Event_Key_Up *e;
-
- e = ev;
- if (e->keyname) free(e->keyname);
- if (e->key_compose) free(e->key_compose);
- free(e);
+ ecore_event_add(ECORE_EVENT_X_KEY_DOWN, e, _ecore_x_event_free_key_down, NULL);
}
void
@@ -100,17 +101,7 @@
e->subwin = xevent->xkey.subwindow;
e->time = xevent->xkey.time;
e->modifiers = xevent->xkey.state;
- ecore_event_add(ECORE_EVENT_X_KEY_UP, e,
- _ecore_x_event_handle_key_release_free, NULL);
-}
-
-static void
-_ecore_x_event_handle_button_press_free(void *ev, void *data)
-{
- Ecore_X_Event_Mouse_Button_Down *e;
-
- e = ev;
- free(e);
+ ecore_event_add(ECORE_EVENT_X_KEY_UP, e, _ecore_x_event_free_key_up, NULL);
}
void
@@ -137,8 +128,7 @@
e->win = xevent->xbutton.window;
e->subwin = xevent->xbutton.subwindow;
e->time = xevent->xbutton.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e,
- _ecore_x_event_handle_motion_notify_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic,
+NULL);
}
{
Ecore_X_Event_Mouse_Button_Down *e;
@@ -161,8 +151,7 @@
did_triple = 1;
e->triple_click = 1;
}
- ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_DOWN, e,
- _ecore_x_event_handle_button_press_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_DOWN, e,
+_ecore_x_event_free_generic, NULL);
}
if (did_triple)
{
@@ -177,15 +166,6 @@
}
}
-static void
-_ecore_x_event_handle_button_release_free(void *ev, void *data)
-{
- Ecore_X_Event_Mouse_Button_Up *e;
-
- e = ev;
- free(e);
-}
-
void
_ecore_x_event_handle_button_release(XEvent *xevent)
{
@@ -203,8 +183,7 @@
e->win = xevent->xbutton.window;
e->subwin = xevent->xbutton.subwindow;
e->time = xevent->xbutton.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e,
- _ecore_x_event_handle_motion_notify_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic,
+NULL);
}
{
Ecore_X_Event_Mouse_Button_Up *e;
@@ -218,21 +197,11 @@
e->win = xevent->xbutton.window;
e->subwin = xevent->xbutton.subwindow;
e->time = xevent->xbutton.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_UP, e,
- _ecore_x_event_handle_button_release_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_UP, e,
+_ecore_x_event_free_generic, NULL);
}
}
}
-static void
-_ecore_x_event_handle_motion_notify_free(void *ev, void *data)
-{
- Ecore_X_Event_Mouse_Move *e;
-
- e = ev;
- free(e);
-}
-
void
_ecore_x_event_handle_motion_notify(XEvent *xevent)
{
@@ -246,17 +215,7 @@
e->win = xevent->xmotion.window;
e->subwin = xevent->xmotion.subwindow;
e->time = xevent->xmotion.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e,
- _ecore_x_event_handle_motion_notify_free, NULL);
-}
-
-static void
-_ecore_x_event_handle_enter_notify_free(void *ev, void *data)
-{
- Ecore_X_Event_Mouse_In *e;
-
- e = ev;
- free(e);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic, NULL);
}
void
@@ -273,8 +232,7 @@
e->win = xevent->xcrossing.window;
e->subwin = xevent->xcrossing.subwindow;
e->time = xevent->xcrossing.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e,
- _ecore_x_event_handle_motion_notify_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic,
+NULL);
}
{
Ecore_X_Event_Mouse_In *e;
@@ -310,20 +268,10 @@
e->notify.non_linear = 1;
}
e->time = xevent->xcrossing.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_IN, e,
- _ecore_x_event_handle_enter_notify_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_IN, e, _ecore_x_event_free_generic, NULL);
}
}
-static void
-_ecore_x_event_handle_leave_notify_free(void *ev, void *data)
-{
- Ecore_X_Event_Mouse_Out *e;
-
- e = ev;
- free(e);
-}
-
void
_ecore_x_event_handle_leave_notify(XEvent *xevent)
{
@@ -338,8 +286,7 @@
e->win = xevent->xcrossing.window;
e->subwin = xevent->xcrossing.subwindow;
e->time = xevent->xcrossing.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e,
- _ecore_x_event_handle_motion_notify_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic,
+NULL);
}
{
Ecore_X_Event_Mouse_Out *e;
@@ -375,8 +322,7 @@
e->notify.non_linear = 1;
}
e->time = xevent->xcrossing.time;
- ecore_event_add(ECORE_EVENT_X_MOUSE_OUT, e,
- _ecore_x_event_handle_leave_notify_free, NULL);
+ ecore_event_add(ECORE_EVENT_X_MOUSE_OUT, e, _ecore_x_event_free_generic, NULL);
}
}
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs