From: <enl...@li...> - 2001-03-06 15:36:52
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_ev_x.c Log Message: and add selection clear handling... and we are done.. :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- Ecore.h 2001/03/06 07:59:08 1.17 +++ Ecore.h 2001/03/06 15:38:31 1.18 @@ -183,8 +183,6 @@ int e_window_is_ignored(Window win); Window e_window_get_at_xy(int x, int y); -char *e_selection_get_data(Window win, Atom prop); - int e_window_dnd_capable(Window win); void e_window_dnd_handle_motion(Window source_win, int x, int y, @@ -274,6 +272,8 @@ void e_keyboard_grab(Window win); void e_keyboard_ungrab(void); + +char *e_selection_get_data(Window win, Atom prop); Window e_selection_request(void); Window e_selection_set(char *string); @@ -321,6 +321,7 @@ typedef struct _ev_dnd_drop_status Ev_Dnd_Drop_Status; typedef struct _ev_dnd_data_request Ev_Dnd_Data_Request; typedef struct _ev_paste_request Ev_Paste_Request; +typedef struct _ev_clear_selection Ev_Clear_Selection; enum _eev_stack_detail { @@ -379,6 +380,7 @@ EV_DND_DROP_STATUS, EV_DND_DATA_REQUEST, EV_PASTE_REQUEST, + EV_CLEAR_SELECTION, EV_CHILD, EV_USER, @@ -634,6 +636,12 @@ { Window win, root, source_win; char *string; +}; + +struct _ev_clear_selection +{ + Window win, root; + Atom selection; }; struct _ev_dnd_drop_request =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_ev_x.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_ev_x.c 2001/03/06 08:01:16 1.12 +++ e_ev_x.c 2001/03/06 15:38:31 1.13 @@ -37,6 +37,7 @@ static void e_ev_x_handle_property_notify(XEvent * xevent); static void e_ev_x_handle_colormap_notify(XEvent * xevent); static void e_ev_x_handle_selection_notify(XEvent * xevent); +static void e_ev_x_handle_selection_clear(XEvent * xevent); static void e_ev_x_handle_selection_request(XEvent * xevent); static void e_ev_x_handle_client_message(XEvent * xevent); static void e_ev_x_handle_shape_change(XEvent * xevent); @@ -97,6 +98,7 @@ event_translator[ColormapNotify] = e_ev_x_handle_colormap_notify; event_translator[ClientMessage] = e_ev_x_handle_client_message; event_translator[SelectionNotify] = e_ev_x_handle_selection_notify; + event_translator[SelectionClear] = e_ev_x_handle_selection_clear; event_translator[SelectionRequest] = e_ev_x_handle_selection_request; event_translator[shape_event_id] = e_ev_x_handle_shape_change; @@ -885,6 +887,19 @@ } e_add_event(EV_DND_DROP_REQUEST, e, e_ev_dnd_drop_request_free); ev_drop_request_pending = NULL; +} + +static void +e_ev_x_handle_selection_clear(XEvent * xevent) +{ + Ev_Clear_Selection *e; + + e = NEW(Ev_Clear_Selection, 1); + e->win = xevent->xselectionclear.window; + printf("%x\n", e->win); + e->root = e_window_get_root(e->win); + e->selection = xevent->xselectionclear.selection; + e_add_event(EV_CLEAR_SELECTION, e, e_ev_generic_free); } static void |
From: <enl...@li...> - 2001-03-06 16:17:38
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Makefile.am e_ev_x.c e_x.c Log Message: 0.0.1 - fix up readme... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Makefile.am 2000/10/29 07:34:16 1.4 +++ Makefile.am 2001/03/06 16:19:17 1.5 @@ -15,4 +15,4 @@ e_x.c libecore_la_LIBADD = @x_ldflags@ @x_libs@ -lm - +libecore_la_LDFLAGS = -version-info 0:1:0 =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_ev_x.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- e_ev_x.c 2001/03/06 15:38:31 1.13 +++ e_ev_x.c 2001/03/06 16:19:17 1.14 @@ -896,7 +896,6 @@ e = NEW(Ev_Clear_Selection, 1); e->win = xevent->xselectionclear.window; - printf("%x\n", e->win); e->root = e_window_get_root(e->win); e->selection = xevent->xselectionclear.selection; e_add_event(EV_CLEAR_SELECTION, e, e_ev_generic_free); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- e_x.c 2001/03/06 07:59:52 1.20 +++ e_x.c 2001/03/06 16:19:17 1.21 @@ -4,6 +4,14 @@ #include <string.h> #include <unistd.h> +#ifdef XA_CLIPBOARD +#define X_CLIPBOARD_SELECTION XA_CLIPBOARD(disp) +#define X_CLIPBOARD_PROP XA_CLIPBOARD(disp) +#else +#define X_CLIPBOARD_SELECTION XA_PRIMARY +#define X_CLIPBOARD_PROP XA_CUT_BUFFER0 +#endif + typedef struct _window_list Window_List; struct _window_list @@ -2890,14 +2898,6 @@ keyboard_grab_win = 0; XUngrabKeyboard(disp, CurrentTime); } - -#ifdef XA_CLIPBOARD -#define X_CLIPBOARD_SELECTION XA_CLIPBOARD(disp) -#define X_CLIPBOARD_PROP XA_CLIPBOARD(disp) -#else -#define X_CLIPBOARD_SELECTION XA_PRIMARY -#define X_CLIPBOARD_PROP XA_CUT_BUFFER0 -#endif Window e_selection_set(char *string) |
From: <enl...@li...> - 2001-03-06 16:18:07
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore Modified Files: README configure.in Log Message: 0.0.1 - fix up readme... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/README,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- README 2000/10/20 10:48:20 1.1.1.1 +++ README 2001/03/06 16:19:17 1.2 @@ -0,0 +1,26 @@ +------------------------------------------------------------------------------- + E C O R E - 0 . 0 . 1 +------------------------------------------------------------------------------- + +Fast: +How ot build and install Ecore from this tarball? +./configure +make +su +<as root do:> +make install + +from CVS: +./autogen.sh +make +su +<as root do:> +make install + +------------------------------------------------------------------------------- + +What is Ecore? It is the core event abstraction layer and X abstraction +layer that makes doing selections, Xdnd, general X stuff, and event loops, +timeouts and idle handlers fast, optimised, and convenient. it's a separate +librayr so anyone can make use of the work put into Ecore to make this job +easy for applications. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/configure.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- configure.in 2001/02/14 16:14:10 1.5 +++ configure.in 2001/03/06 16:19:17 1.6 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(configure.in) -AM_INIT_AUTOMAKE(ecore, 0.0.0) +AM_INIT_AUTOMAKE(ecore, 0.0.1) AM_CONFIG_HEADER(config.h) AC_ISC_POSIX |
From: <enl...@li...> - 2001-03-06 18:01:58
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore Modified Files: ecore.spec Log Message: spec file up to date =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/ecore.spec,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- ecore.spec 2000/12/09 02:31:37 1.2 +++ ecore.spec 2001/03/06 18:03:27 1.3 @@ -1,6 +1,6 @@ # this is NOT relocatable, unless you alter the patch! %define name ecore -%define ver 0.0.0 +%define ver 0.0.1 %define rel 1 %define prefix /usr |
From: <enl...@li...> - 2001-03-06 18:08:01
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore Modified Files: Makefile.am ecore.spec Log Message: err - put spec file in packaged tarball =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- Makefile.am 2001/02/14 16:14:10 1.5 +++ Makefile.am 2001/03/06 18:09:41 1.6 @@ -19,7 +19,7 @@ bin_SCRIPTS = ecore-config -EXTRA_DIST = README AUTHORS COPYING ecore.m4 +EXTRA_DIST = README AUTHORS COPYING ecore.m4 ecore.spec m4datadir = $(datadir)/aclocal m4data_DATA = ecore.m4 =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/ecore.spec,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- ecore.spec 2001/03/06 18:03:27 1.3 +++ ecore.spec 2001/03/06 18:09:41 1.4 @@ -25,7 +25,7 @@ Requires: %{name} = %{ver} %description devel -Ecore development stuff +Ecore development files %prep %setup -q |
From: <enl...@li...> - 2001-03-06 20:31:46
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h Makefile.am e_events.c Added Files: e_ipc.c Log Message: add ipc :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- Ecore.h 2001/03/06 15:38:31 1.18 +++ Ecore.h 2001/03/06 20:33:26 1.19 @@ -272,7 +272,12 @@ void e_keyboard_grab(Window win); void e_keyboard_ungrab(void); +void e_ev_ipc_init(char *path); +void e_ev_ipc_cleanup(void); +void e_add_ipc_service(int service, char *(*func) (char *argv)); +void e_del_ipc_service(int service); + char *e_selection_get_data(Window win, Atom prop); Window e_selection_request(void); Window e_selection_set(char *string); @@ -322,6 +327,7 @@ typedef struct _ev_dnd_data_request Ev_Dnd_Data_Request; typedef struct _ev_paste_request Ev_Paste_Request; typedef struct _ev_clear_selection Ev_Clear_Selection; +typedef struct _ev_ipc_service Ev_Ipc_Service; enum _eev_stack_detail { @@ -692,6 +698,13 @@ { int num; int hup; +}; + +struct _ev_ipc_service +{ + int service; + char *(*func) (char *argv); + Ev_Ipc_Service *next; }; void e_add_event(Eevent_Type type, void *event, =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- Makefile.am 2001/03/06 16:19:17 1.5 +++ Makefile.am 2001/03/06 20:33:26 1.6 @@ -11,6 +11,7 @@ e_ev_signal.c \ e_ev_x.c \ e_events.c \ + e_ipc.c \ e_util.c \ e_x.c =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_events.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_events.c 2001/02/12 18:54:13 1.7 +++ e_events.c 2001/03/06 20:33:26 1.8 @@ -163,10 +163,11 @@ void e_event_loop(void) { - int count, fdsize, timed_out, were_events; + int fdcount, fdsize, ipccount, ipcsize; + int timed_out, were_events; double time1, time2, prev_time = 0.0; struct timeval tval; - fd_set fdset; + fd_set fdset, ipcset; Ev_Fd_Handler *fd_h; Ev_Pid_Handler *pid_h; Ev_Ipc_Handler *ipc_h; @@ -191,7 +192,17 @@ if (fd_h->fd > fdsize) fdsize = fd_h->fd; } - count = 1; + fdcount = 1; + ipcsize = 0; + FD_ZERO(&ipcset); + /* for ever fd handler add the fd to the array and incriment fdsize */ + for (ipc_h = ipc_handlers; ipc_h; ipc_h = ipc_h->next) + { + FD_SET(ipc_h->ipc, &ipcset); + if (ipc_h->ipc > ipcsize) + ipcsize = ipc_h->ipc; + } + ipccount = 1; /* if there are timers setup adjust timeout value and select */ if (timers) { @@ -214,23 +225,27 @@ if (tval.tv_usec <= 1000) tval.tv_usec = 1000; e_handle_zero_event_timer(); - if ((!e_events_pending()) && + if ((!e_events_pending()) && (!e_ev_signal_events_pending())) - count = select(fdsize + 1, &fdset, NULL, NULL, &tval); + fdcount = select(fdsize + 1, &fdset, NULL, NULL, &tval); } /* no timers - just sit and block */ else { - if ((!e_events_pending()) && - (!e_ev_signal_events_pending())) - count = select(fdsize + 1, &fdset, NULL, NULL, NULL); + if ((!e_events_pending()) && + (!e_ev_signal_events_pending())) + fdcount = select(fdsize + 1, &fdset, NULL, NULL, NULL); } for (pid_h = pid_handlers; pid_h; pid_h = pid_h->next) pid_h->func(pid_h->pid); - for (ipc_h = ipc_handlers; ipc_h; ipc_h = ipc_h->next) - ipc_h->func(ipc_h->ipc); + + /* see if we have any new ipc connections */ + tval.tv_sec = 0; + tval.tv_usec = 0; + ipccount =+ select(ipcsize + 1, &ipcset, NULL, NULL, &tval); + /* return < 0 - error or signal interrupt */ - if (count < 0) + if (fdcount < 0) { /* error */ if ((errno == ENOMEM) || (errno == EINVAL) || (errno == EBADF)) @@ -240,20 +255,20 @@ } } /* timers are available and its a timeout */ - if ((timers) && (count == 0)) + if ((timers) && (fdcount == 0)) { e_handle_event_timer(); timed_out = 1; } - if (count < 0) - count = 0; + if (fdcount < 0) + fdcount = 0; if (e_events_pending()) { - count++; + fdcount++; FD_SET(e_x_get_fd(), &fdset); } /* fd's are active */ - if (count > 0) + if (fdcount > 0) { /* for every fd handler - if its fd is set - call the func */ for (fd_h = fd_handlers; fd_h;) @@ -265,6 +280,20 @@ if (FD_ISSET(fdh->fd, &fdset)) fdh->func(fdh->fd); } + } + + /* ipc clients are active */ + if (ipccount > 0) + { + for (ipc_h = ipc_handlers; ipc_h;) + { + Ev_Ipc_Handler *ipch; + + ipch = ipc_h; + ipc_h = ipc_h->next; + if (FD_ISSET(ipch->ipc, &ipcset)) + ipch->func(ipch->ipc); + } } if (events) e_event_filter(events); |
From: <enl...@li...> - 2001-03-06 20:32:15
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore Modified Files: AUTHORS Log Message: add ipc :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/AUTHORS,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- AUTHORS 2000/10/20 10:48:20 1.1.1.1 +++ AUTHORS 2001/03/06 20:33:26 1.2 @@ -1,2 +1,3 @@ The Rasterman <ra...@ra...> Tom Gilbert <to...@li...> +Burra <bu...@co...> |
From: <enl...@li...> - 2001-03-12 00:57:43
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_ipc.c Log Message: some additions by burra on the ipc code.. now in ecore.. :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- Ecore.h 2001/03/06 20:33:26 1.19 +++ Ecore.h 2001/03/12 00:59:38 1.20 @@ -274,7 +274,7 @@ void e_ev_ipc_init(char *path); void e_ev_ipc_cleanup(void); -void e_add_ipc_service(int service, char *(*func) (char *argv)); +void e_add_ipc_service(int service, void (*func) (int fd)); void e_del_ipc_service(int service); @@ -703,7 +703,7 @@ struct _ev_ipc_service { int service; - char *(*func) (char *argv); + void (*func) (int fd); Ev_Ipc_Service *next; }; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_ipc.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_ipc.c 2001/03/06 20:33:26 1.1 +++ e_ipc.c 2001/03/12 00:59:38 1.2 @@ -9,7 +9,9 @@ void e_ipc_cleanup(void); static void e_ipc_connect_handler(int fd); static void e_ipc_client_handler(int fd); -void e_add_ipc_service(int service, char *(*func) (char *argv)); +void e_ipc_get_data(int fd, void *buf); +void e_ipc_send_data(int fd, void *buf, int size); +void e_add_ipc_service(int service, void (*func) (int fd)); void e_del_ipc_service(int service); Ev_Ipc_Service *ipc_services = NULL; @@ -24,10 +26,11 @@ return; /* a UNIX domain, stream socket */ - if((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { - printf("Cannot create ipc socket... disabling ipc.\n"); - return; - } + if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) + { + printf("Cannot create ipc socket... disabling ipc.\n"); + return; + } /* create the address we will be binding to */ saun.sun_family = AF_UNIX; @@ -37,16 +40,18 @@ unlink(path); len = sizeof(saun.sun_family) + strlen(saun.sun_path); - if(bind(fd, &saun, len) < 0) { - printf("Cannot bind ipc socket... disabling ipc.\n"); - return; - } + if (bind(fd, &saun, len) < 0) + { + printf("Cannot bind ipc socket... disabling ipc.\n"); + return; + } /* listen on the socket */ - if (listen(fd, 5) < 0) { - printf("Cannot listen on ipc socket... disabling ipc.\n"); - return; - } + if (listen(fd, 5) < 0) + { + printf("Cannot listen on ipc socket... disabling ipc.\n"); + return; + } /* add ipc listener */ e_add_event_ipc(fd, e_ipc_connect_handler); @@ -73,16 +78,11 @@ /* accept ipc connection */ fromlen = sizeof(fsaun); - if ((nfd = accept(fd, &fsaun, &fromlen)) < 0) { - printf("Cannot accept ipc connection... ignoring connection attempt.\n"); - return; - } - - /* set nonblocking */ - if (fcntl(nfd, F_SETFL, O_NONBLOCK) < 0) { - printf("Cannot fcntl ipc connection... ignoring connection attempt.\n"); - return; - } + if ((nfd = accept(fd, &fsaun, &fromlen)) < 0) + { + printf("Cannot accept ipc connection... ignoring connection attempt.\n"); + return; + } /* add ipc client */ e_add_event_ipc(nfd, e_ipc_client_handler); @@ -92,37 +92,72 @@ e_ipc_client_handler(int fd) { int nread, service; - char ptr[4096]; Ev_Ipc_Service *ipc_s; - /* in no way done here yet, lots to do */ - if ((nread = read(fd, ptr, sizeof(ptr))) == 0) + if ((nread = read(fd, &service, sizeof(service))) == 0) { close(fd); e_del_event_ipc(fd); } else if (nread > 0) { - printf("IPC Client sent %d bytes\n", nread); fflush(stdout); - service = atoi(&ptr[0]); - + /* call the service function */ for (ipc_s = ipc_services; ipc_s; ipc_s = ipc_s->next) { if (ipc_s->service == service) { - ipc_s->func("TESTING"); + ipc_s->func(fd); break; } } } else + { + printf("ipc error in read service.\n"); fflush(stdout); + } +} + +void +e_ipc_get_data(int fd, void *buf) +{ + int readn, nread; + + /* read number of bytes being sent */ + if ((nread = read(fd, &readn, sizeof(readn))) == -1) + { + printf("ipc error in get data.\n"); fflush(stdout); + return; + } + + /* get data structure */ + if ((nread = read(fd, buf, readn)) == -1) + { + printf("ipc error in get data.\n"); fflush(stdout); + return; + } +} + +void +e_ipc_send_data(int fd, void *buf, int size) +{ + int n; + /* send length of data being sent */ + if ((n = write(fd, &size, sizeof(size))) == -1) + { + printf("ipc error in send data length.\n"); fflush(stdout); + return; + } + + /* send data */ + if ((n = write(fd, buf, size)) == -1) { - printf("error\n"); fflush(stdout); + printf("ipc error in send data.\n"); fflush(stdout); + return; } } void -e_add_ipc_service(int service, char *(*func) (char *argv)) +e_add_ipc_service(int service, void (*func) (int fd)) { Ev_Ipc_Service *ipc_s; |
From: <enl...@li...> - 2001-03-18 00:31:05
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_ev_x.c e_x.c Log Message: better key grab handing support... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- Ecore.h 2001/03/12 00:59:38 1.20 +++ Ecore.h 2001/03/18 00:33:16 1.21 @@ -517,12 +517,14 @@ struct _ev_window_focus_in { Window win, root; + int key_grab; Time time; }; struct _ev_window_focus_out { Window win, root; + int key_grab; Time time; }; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_ev_x.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- e_ev_x.c 2001/03/06 16:19:17 1.14 +++ e_ev_x.c 2001/03/18 00:33:16 1.15 @@ -111,6 +111,7 @@ mod_mask_alt = e_mod_mask_alt_get(); mod_mask_win = e_mod_mask_win_get(); +/* HRRRMMM lets not do this e_key_grab("Num_Lock", EV_KEY_MODIFIER_NONE, 1, 1); e_key_grab("Scroll_Lock", EV_KEY_MODIFIER_NONE, 1, 1); e_key_grab("Caps_Lock", EV_KEY_MODIFIER_NONE, 1, 1); @@ -129,6 +130,7 @@ e_mod_alt_set(1); if (current_lock & mod_mask_win) e_mod_win_set(1); + */ e_add_event_fd(e_x_get_fd(), e_ev_x_handle_events); } @@ -251,6 +253,7 @@ return; previous_code = xevent->xkey.keycode; previous_time = xevent->xkey.time; +/* if (e_key_get_keysym_from_keycode(xevent->xkey.keycode) == XK_Scroll_Lock) { if (e_lock_scroll_get()) @@ -278,6 +281,7 @@ e_event_allow(ReplayKeyboard, xevent->xkey.time); e_flush(); } + */ e = NEW(Ev_Key_Down, 1); e->win = xevent->xkey.window; e->root = xevent->xkey.root; @@ -526,6 +530,8 @@ e = NEW(Ev_Window_Focus_In, 1); e->win = xevent->xfocus.window; e->root = e_window_get_root(e->win); + if (xevent->xfocus.mode != NotifyNormal) e->key_grab = 1; + else e->key_grab = 0; e_add_event(EV_WINDOW_FOCUS_IN, e, e_ev_generic_free); e_focus_window_set(e->win); } @@ -538,6 +544,8 @@ e = NEW(Ev_Window_Focus_Out, 1); e->win = xevent->xfocus.window; e->root = e_window_get_root(e->win); + if (xevent->xfocus.mode != NotifyNormal) e->key_grab = 1; + else e->key_grab = 0; e_add_event(EV_WINDOW_FOCUS_OUT, e, e_ev_generic_free); e_focus_window_set(0); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- e_x.c 2001/03/06 16:19:17 1.21 +++ e_x.c 2001/03/18 00:33:16 1.22 @@ -64,6 +64,11 @@ static void e_handle_x_error(Display * d, XErrorEvent * ev) { + char err[16384]; + + XGetErrorText(d, ev->error_code, err, 16000); + printf("X Error:\n" + "Error: %s\nrequest: %i\nminor: %i\n", err, ev->request_code, ev->minor_code); /* ignroe all X errors */ return; d = NULL; @@ -1153,8 +1158,13 @@ mode = GrabModeAsync; if (sync) mode = GrabModeSync; + if (!grabkey_win) + grabkey_win = default_root; if (!grabkey_win) - grabkey_win = default_root; + { + grabkey_win = e_window_override_new(0, -1, -1, 1, 1); + e_window_show(grabkey_win); + } if (mods & EV_KEY_MODIFIER_SHIFT) mod |= mod_shift; if (mods & EV_KEY_MODIFIER_CTRL) |
From: <enl...@li...> - 2001-03-18 01:05:06
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: e_ev_x.c e_x.c Log Message: oops.. ok.. NOw damn jeybindings work.. silly mistake.. fixed :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_ev_x.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- e_ev_x.c 2001/03/18 00:33:16 1.15 +++ e_ev_x.c 2001/03/18 01:07:19 1.16 @@ -115,6 +115,7 @@ e_key_grab("Num_Lock", EV_KEY_MODIFIER_NONE, 1, 1); e_key_grab("Scroll_Lock", EV_KEY_MODIFIER_NONE, 1, 1); e_key_grab("Caps_Lock", EV_KEY_MODIFIER_NONE, 1, 1); + */ current_lock = e_modifier_mask_get(); if (current_lock & lock_mask_scroll) e_lock_scroll_set(1); @@ -130,7 +131,6 @@ e_mod_alt_set(1); if (current_lock & mod_mask_win) e_mod_win_set(1); - */ e_add_event_fd(e_x_get_fd(), e_ev_x_handle_events); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- e_x.c 2001/03/18 00:33:16 1.22 +++ e_x.c 2001/03/18 01:07:19 1.23 @@ -1160,19 +1160,14 @@ mode = GrabModeSync; if (!grabkey_win) grabkey_win = default_root; - if (!grabkey_win) - { - grabkey_win = e_window_override_new(0, -1, -1, 1, 1); - e_window_show(grabkey_win); - } if (mods & EV_KEY_MODIFIER_SHIFT) - mod |= mod_shift; + mod |= e_mod_mask_shift_get(); if (mods & EV_KEY_MODIFIER_CTRL) - mod |= mod_ctrl; + mod |= e_mod_mask_ctrl_get(); if (mods & EV_KEY_MODIFIER_ALT) - mod |= mod_alt; + mod |= e_mod_mask_alt_get(); if (mods & EV_KEY_MODIFIER_WIN) - mod |= mod_win; + mod |= e_mod_mask_win_get(); mask_scroll = e_lock_mask_scroll_get(); mask_num = e_lock_mask_num_get(); mask_caps = e_lock_mask_caps_get(); @@ -1185,12 +1180,12 @@ masks[6] = mask_num | mask_caps; masks[7] = mask_scroll | mask_num | mask_caps; if (anymod) - XGrabKey(disp, keycode, AnyModifier, grabkey_win, False, mode, mode); + XGrabKey(disp, keycode, AnyModifier, grabkey_win, False, mode, mode); else { for (i = 0; i < 8; i++) - XGrabKey(disp, keycode, masks[i] | mod, grabkey_win, False, - mode, mode); + XGrabKey(disp, keycode, masks[i] | mod, grabkey_win, False, + mode, mode); } } @@ -1208,13 +1203,13 @@ mod = 0; if (mods & EV_KEY_MODIFIER_SHIFT) - mod |= mod_shift; + mod |= e_mod_mask_shift_get(); if (mods & EV_KEY_MODIFIER_CTRL) - mod |= mod_ctrl; + mod |= e_mod_mask_ctrl_get(); if (mods & EV_KEY_MODIFIER_ALT) - mod |= mod_alt; + mod |= e_mod_mask_alt_get(); if (mods & EV_KEY_MODIFIER_WIN) - mod |= mod_win; + mod |= e_mod_mask_win_get(); mask_scroll = e_lock_mask_scroll_get(); mask_num = e_lock_mask_num_get(); mask_caps = e_lock_mask_caps_get(); |
From: <enl...@li...> - 2001-03-18 01:34:57
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: e_x.c Log Message: get rid of that printf for xerrors =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- e_x.c 2001/03/18 01:07:19 1.23 +++ e_x.c 2001/03/18 01:37:09 1.24 @@ -64,12 +64,14 @@ static void e_handle_x_error(Display * d, XErrorEvent * ev) { +/* char err[16384]; - XGetErrorText(d, ev->error_code, err, 16000); + XGetErrorText(d, ev->error_code, err, 16000); printf("X Error:\n" "Error: %s\nrequest: %i\nminor: %i\n", err, ev->request_code, ev->minor_code); - /* ignroe all X errors */ + */ + /* ignore all X errors */ return; d = NULL; ev = NULL; |
From: <enl...@li...> - 2001-03-27 18:52:10
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: e_x.c Log Message: fix that quickly... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- e_x.c 2001/03/18 01:37:09 1.24 +++ e_x.c 2001/03/27 18:52:09 1.25 @@ -624,6 +624,7 @@ } xid->x = x; xid->y = y; + xid->coords_invalid = 0; XMoveWindow(disp, win, x, y); } } @@ -640,7 +641,13 @@ xid2 = e_validate_xid(xid->children[j]); \ if (xid2) \ { \ - switch (xid2->gravity) \ + xid2->coords_invalid = 1; \ + } \ + } \ +} + +#if 0 + switch (xid2->gravity) \ { \ case UnmapGravity: \ xid2->mapped = 0; \ @@ -683,6 +690,7 @@ } \ } \ } +#endif void e_window_resize(Window win, int w, int h) |
From: <enl...@li...> - 2001-04-02 18:26:38
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_events.c e_x.c Log Message: some minor changes to ecore done over the weekend.. :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- Ecore.h 2001/03/18 00:33:16 1.21 +++ Ecore.h 2001/04/02 18:26:32 1.22 @@ -65,6 +65,7 @@ int depth; int gravity; int coords_invalid; + int bw; }; void e_del_child(Window win, Window child); @@ -261,6 +262,7 @@ void e_window_del_from_save_set(Window win); void e_window_kill_client(Window win); void e_window_set_border_width(Window win, int bw); +int e_window_get_border_width(Window win); int e_window_get_wm_size_hints(Window win, XSizeHints *hints, int *mask); int e_window_is_visible(Window win); int e_window_is_normal(Window win); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_events.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- e_events.c 2001/03/06 20:33:26 1.8 +++ e_events.c 2001/04/02 18:26:32 1.9 @@ -3,6 +3,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <unistd.h> /* glocal (yes global/local) variabels for events */ Ev_Fd_Handler *fd_handlers = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- e_x.c 2001/03/27 18:52:09 1.25 +++ e_x.c 2001/04/02 18:26:32 1.26 @@ -205,6 +205,7 @@ xid->children_num = 0; xid->children = NULL; xid->gravity = e_window_get_gravity(win); + xid->bw = 0; XSaveContext(disp, xid->win, xid_context, (XPointer) xid); return xid; } @@ -262,6 +263,7 @@ xid->depth = att.depth; xid->mouse_in = 0; xid->gravity = att.win_gravity; + xid->bw = att.border_width; XSaveContext(disp, xid->win, xid_context, (XPointer) xid); } return xid; @@ -2769,7 +2771,27 @@ void e_window_set_border_width(Window win, int bw) { + E_XID *xid = NULL; + + xid = e_validate_xid(win); + if (xid) + { + xid->bw = bw; + } XSetWindowBorderWidth(disp, win, bw); +} + +int +e_window_get_border_width(Window win) +{ + E_XID *xid = NULL; + + xid = e_validate_xid(win); + if (xid) + { + return xid->bw; + } + return 0; } int |
From: <enl...@li...> - 2001-04-08 01:56:25
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_x.c Log Message: add error handler settign and resetting and retunr status of display init =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- Ecore.h 2001/04/02 18:26:32 1.22 +++ Ecore.h 2001/04/08 01:56:22 1.23 @@ -112,10 +112,11 @@ void e_window_move(Window win, int x, int y); void e_window_resize(Window win, int w, int h); void e_window_move_resize(Window win, int x, int y, int w, - int h); int e_x_get_fd(void); -void e_display_init(char *display); +void e_set_error_handler(void (*func) (Display * d, XErrorEvent * ev)); +void e_reset_error_handler(void); +int e_display_init(char *display); int e_events_pending(void); void e_get_next_event(XEvent * event); int e_event_shape_get_id(void); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- e_x.c 2001/04/02 18:26:32 1.26 +++ e_x.c 2001/04/08 01:56:22 1.27 @@ -745,6 +745,19 @@ } void +e_set_error_handler(void (*func) (Display * d, XErrorEvent * ev)) + +{ + XSetErrorHandler((XErrorHandler)func); +} + +void +e_reset_error_handler(void) +{ + XSetErrorHandler((XErrorHandler) e_handle_x_error); +} + +int e_display_init(char *display) { int revert; @@ -756,6 +769,7 @@ char *d; d = getenv("DISPLAY"); +/* no need for this anymore if (d) fprintf(stderr, "Fatal Error:\n" @@ -769,7 +783,8 @@ "No DISPLAY variable set so cannot determine display to connect to.\n" "Try setting your DISPLAY variable like:\n" "DISPLAY=host:0 appication_name\n"); - exit(1); +*/ + return 0; } XSetErrorHandler((XErrorHandler) e_handle_x_error); XSetIOErrorHandler((XIOErrorHandler) e_handle_x_io_error); @@ -787,6 +802,7 @@ XEV_CONFIGURE | XEV_CHILD_CHANGE | XEV_PROPERTY | XEV_COLORMAP | XEV_VISIBILITY); e_pointer_xy(0, NULL, NULL); + return 1; } int |
From: <enl...@li...> - 2001-04-18 22:42:34
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: e_ev_filter.c Log Message: more comparison outside loop) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_ev_filter.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_ev_filter.c 2000/10/29 07:34:16 1.3 +++ e_ev_filter.c 2001/04/18 22:42:34 1.4 @@ -75,10 +75,12 @@ { Ev_Handler *h; - for (h = handler[evp->type]; h; h = h->next) + if (!evp->ignore) { - if ((!evp->ignore) && (h->func)) - h->func(evp); + for (h = handler[evp->type]; h; h = h->next) + { + if (h->func) h->func(evp); + } } } } |
From: <enl...@li...> - 2001-04-29 05:58:04
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Makefile.am Log Message: up to 0.0.2 =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Makefile.am,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- Makefile.am 2001/03/06 20:33:26 1.6 +++ Makefile.am 2001/04/29 05:58:04 1.7 @@ -16,4 +16,4 @@ e_x.c libecore_la_LIBADD = @x_ldflags@ @x_libs@ -lm -libecore_la_LDFLAGS = -version-info 0:1:0 +libecore_la_LDFLAGS = -version-info 0:2:0 |
From: <enl...@li...> - 2001-04-29 05:58:34
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore Modified Files: configure.in ecore.spec Log Message: up to 0.0.2 =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/configure.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- configure.in 2001/03/06 16:19:17 1.6 +++ configure.in 2001/04/29 05:58:04 1.7 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(configure.in) -AM_INIT_AUTOMAKE(ecore, 0.0.1) +AM_INIT_AUTOMAKE(ecore, 0.0.2) AM_CONFIG_HEADER(config.h) AC_ISC_POSIX =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/ecore.spec,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- ecore.spec 2001/03/06 18:09:41 1.4 +++ ecore.spec 2001/04/29 05:58:04 1.5 @@ -1,6 +1,6 @@ # this is NOT relocatable, unless you alter the patch! %define name ecore -%define ver 0.0.1 +%define ver 0.0.2 %define rel 1 %define prefix /usr |
From: <enl...@li...> - 2001-07-05 18:48:47
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: e_events.c Log Message: oooooops =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_events.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_events.c 2001/04/02 18:26:32 1.9 +++ e_events.c 2001/07/05 14:44:55 1.10 @@ -243,7 +243,7 @@ /* see if we have any new ipc connections */ tval.tv_sec = 0; tval.tv_usec = 0; - ipccount =+ select(ipcsize + 1, &ipcset, NULL, NULL, &tval); + ipccount += select(ipcsize + 1, &ipcset, NULL, NULL, &tval); /* return < 0 - error or signal interrupt */ if (fdcount < 0) |
From: <enl...@li...> - 2001-08-07 05:31:04
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h Log Message: term: :-P =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- Ecore.h 2001/04/08 01:56:22 1.23 +++ Ecore.h 2001/08/07 05:30:59 1.24 @@ -68,6 +68,10 @@ int bw; }; +#ifdef __cplusplus +extern "C" { +#endif + void e_del_child(Window win, Window child); void e_add_child(Window win, Window child); void e_raise_child(Window win, Window child); @@ -204,7 +208,7 @@ void e_window_set_title(Window win, char *title); void e_window_set_name_class(Window win, char *name, - char *class); + char *); void e_window_set_min_size(Window win, int w, int h); void e_window_set_max_size(Window win, int w, int h); void e_window_set_xy_hints(Window win, int x, int y); @@ -769,5 +773,9 @@ return; } _pp = _p; _p = _p->next; } double e_get_time(void); + +#ifdef __cplusplus +} +#endif #endif |
From: <enl...@li...> - 2001-08-24 03:57:56
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_ev_signal.c e_x.c Log Message: add a call =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- Ecore.h 2001/08/07 05:30:59 1.24 +++ Ecore.h 2001/08/24 03:57:55 1.25 @@ -289,6 +289,8 @@ Window e_selection_request(void); Window e_selection_set(char *string); +void e_set_blank_pointer(Window w); + typedef struct _eev Eevent; typedef struct _ev_fd_handler Ev_Fd_Handler; typedef struct _ev_pid_handler Ev_Pid_Handler; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_ev_signal.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_ev_signal.c 2000/10/29 07:34:16 1.3 +++ e_ev_signal.c 2001/08/24 03:57:55 1.4 @@ -261,12 +261,12 @@ sa.sa_flags = SA_RESTART; sigemptyset(&sa.sa_mask); sigaction(SIGPIPE, &sa, (struct sigaction *)0); - +/* sa.sa_handler = e_ev_signal_handle_sigsegv; sa.sa_flags = SA_RESTART; sigemptyset(&sa.sa_mask); sigaction(SIGSEGV, &sa, (struct sigaction *)0); - +*/ sa.sa_handler = e_ev_signal_handle_sigfpe; sa.sa_flags = SA_RESTART; sigemptyset(&sa.sa_mask); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- e_x.c 2001/04/08 01:56:22 1.27 +++ e_x.c 2001/08/24 03:57:55 1.28 @@ -3073,3 +3073,24 @@ return string; } +void +e_set_blank_pointer(Window w) +{ + Cursor c; + XColor cl; + Pixmap p, m; + GC gc; + XGCValues gcv; + + p = XCreatePixmap(disp, w, 1, 1, 1); + m = XCreatePixmap(disp, w, 1, 1, 1); + gc = XCreateGC(disp, m, 0, &gcv); + XSetForeground(disp, gc, 0); + XDrawPoint(disp, m, gc, 0, 0); + XFreeGC(disp, gc); + c = XCreatePixmapCursor(disp, p, m, &cl, &cl, 0, 0); + XDefineCursor(disp, w, c); + XFreeCursor(disp, c); + XFreePixmap(disp, p); + XFreePixmap(disp, m); +} |
From: <enl...@li...> - 2001-09-24 21:12:33
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_x.c Log Message: i've been working on the railroad... all the long long day... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- Ecore.h 2001/08/25 19:05:04 1.26 +++ Ecore.h 2001/09/24 21:12:33 1.27 @@ -228,6 +228,7 @@ void e_draw_line(Drawable d, GC gc, int x1, int y1, int x2, int y2); +void e_draw_point(Drawable d, GC gc, int x, int y); void e_window_hint_set_layer(Window win, int layer); void e_window_hint_set_sticky(Window win, int sticky); void e_window_hint_set_borderless(Window win); @@ -290,6 +291,9 @@ Window e_selection_set(char *string); void e_set_blank_pointer(Window w); +Cursor e_cursor_new(Pixmap pmap, Pixmap mask, int x, int y, int fr, int fg, int fb, int br, int bg, int bb); +void e_cursor_free(Cursor c); +void e_cursor_set(Window win, Cursor c); typedef struct _eev Eevent; typedef struct _ev_fd_handler Ev_Fd_Handler; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- e_x.c 2001/08/24 03:57:55 1.28 +++ e_x.c 2001/09/24 21:12:33 1.29 @@ -2365,6 +2365,12 @@ } void +e_draw_point(Drawable d, GC gc, int x, int y) +{ + XDrawPoint(disp, d, gc, x, y); +} + +void e_window_hint_set_layer(Window win, int layer) { static Atom atom_win_layer = 0; @@ -3082,6 +3088,8 @@ GC gc; XGCValues gcv; + if (w == 0) + w = default_root; p = XCreatePixmap(disp, w, 1, 1, 1); m = XCreatePixmap(disp, w, 1, 1, 1); gc = XCreateGC(disp, m, 0, &gcv); @@ -3093,4 +3101,36 @@ XFreeCursor(disp, c); XFreePixmap(disp, p); XFreePixmap(disp, m); +} + +Cursor +e_cursor_new(Pixmap pmap, Pixmap mask, int x, int y, int fr, int fg, int fb, int br, int bg, int bb) +{ + XColor cl1, cl2; + + cl1.pixel = 0; + cl1.red = fr << 8 | fr; + cl1.green = fg << 8 | fg; + cl1.blue = fb << 8 | fb; + cl1.flags = DoRed|DoGreen|DoBlue; + cl2.pixel = 0; + cl2.red = br << 8 | br; + cl2.green = bg << 8 | bg; + cl2.blue = bb << 8 | bb; + cl2.flags = DoRed|DoGreen|DoBlue; + return XCreatePixmapCursor(disp, pmap, mask, &cl1, &cl2, x, y); +} + +void +e_cursor_free(Cursor c) +{ + XFreeCursor(disp, c); +} + +void +e_cursor_set(Window win, Cursor c) +{ + if (win == 0) + win = default_root; + XDefineCursor(disp, win, c); } |
From: <enl...@li...> - 2001-09-24 21:13:03
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore Modified Files: configure.ac Log Message: i've been working on the railroad... all the long long day... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/configure.ac,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- configure.ac 2001/08/28 07:19:12 1.1 +++ configure.ac 2001/09/24 21:12:33 1.2 @@ -1,7 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT -AC_CONFIG_SRCDIR([configure.in]) +AC_INIT(configure.in) AM_INIT_AUTOMAKE(ecore, 0.0.2) AM_CONFIG_HEADER(config.h) @@ -79,14 +78,12 @@ AC_SUBST(x_ldflags) AC_SUBST(x_libs) -AC_CONFIG_FILES([ +AC_OUTPUT([ Makefile ecore-config src/Makefile debian/Makefile -]) -AC_CONFIG_COMMANDS([default],[[ +], [ chmod +x ecore-config - -]],[[]]) -AC_OUTPUT +] +) |
From: <enl...@li...> - 2001-09-28 08:41:43
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: e_x.c Log Message: be paranoi abotu validating xid's etc. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- e_x.c 2001/09/24 21:12:33 1.29 +++ e_x.c 2001/09/28 08:41:39 1.30 @@ -118,11 +118,15 @@ E_XID *xid = NULL; if (XFindContext(disp, win, xid_context, (XPointer *) & xid) == XCNOENT) - { - xid = e_validate_xid(win); - } + return; if (xid) { + int i; + + for (i = 0; i < xid->children_num; i++) + { + if (xid->children[i] == child) return; + } xid->children_num++; if (!xid->children) xid->children = NEW(Window, xid->children_num); @@ -207,6 +211,7 @@ xid->gravity = e_window_get_gravity(win); xid->bw = 0; XSaveContext(disp, xid->win, xid_context, (XPointer) xid); + e_add_child(parent, win); return xid; } @@ -265,6 +270,7 @@ xid->gravity = att.win_gravity; xid->bw = att.border_width; XSaveContext(disp, xid->win, xid_context, (XPointer) xid); + e_add_child(xid->parent, win); } return xid; } @@ -275,13 +281,14 @@ E_XID *xid = NULL; if (XFindContext(disp, win, xid_context, (XPointer *) & xid) == XCNOENT) - return; + return; if (xid) { int i; for (i = 0; i < xid->children_num; i++) e_unvalidate_xid(xid->children[i]); + e_del_child(xid->parent, win); IF_FREE(xid->children); FREE(xid); XDeleteContext(disp, win, xid_context); @@ -323,6 +330,7 @@ CWDontPropagate, &attr); e_add_xid(win, x, y, w, h, default_depth, parent); e_add_child(parent, win); + e_validate_xid(parent); return win; } @@ -349,6 +357,7 @@ CWDontPropagate, &attr); e_add_xid(win, x, y, w, h, default_depth, parent); e_add_child(parent, win); + e_validate_xid(parent); return win; } @@ -368,6 +377,7 @@ CWOverrideRedirect | CWDontPropagate, &attr); e_add_xid(win, x, y, w, h, 0, parent); e_add_child(parent, win); + e_validate_xid(parent); return win; } |
From: E C. L. <enl...@so...> - 2001-10-08 06:50:18
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: Ecore.h e_x.c Log Message: add calls :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Ecore.h,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- Ecore.h 2001/09/24 21:12:33 1.27 +++ Ecore.h 2001/10/08 06:50:16 1.28 @@ -209,6 +209,13 @@ void e_window_set_name_class(Window win, char *name, char *); +void e_window_get_name_class(Window win, char **name, char **class); +char *e_window_get_machine(Window win); +char *e_window_get_command(Window win); +char *e_window_get_icon_name(Window win); +void e_window_get_hints(Window win, int *accepts_focus, int *initial_state, + Pixmap *icon_pixmap, Pixmap *icon_mask, + Window *icon_window, Window *window_group); void e_window_set_min_size(Window win, int w, int h); void e_window_set_max_size(Window win, int w, int h); void e_window_set_xy_hints(Window win, int x, int y); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- e_x.c 2001/09/28 08:41:39 1.30 +++ e_x.c 2001/10/08 06:50:16 1.31 @@ -2232,6 +2232,117 @@ } void +e_window_get_name_class(Window win, char **name, char **class) +{ + XClassHint xch; + + if (name) *name = NULL; + if (class) *class = NULL; + if (XGetClassHint(disp, win, &xch)) + { + if (name) + { + if (xch.res_name) *name = strdup(xch.res_name); + } + if (class) + { + if (xch.res_class) *class = strdup(xch.res_class); + } + XFree(xch.res_name); + XFree(xch.res_class); + } +} + +void +e_window_get_hints(Window win, int *accepts_focus, int *initial_state, + Pixmap *icon_pixmap, Pixmap *icon_mask, + Window *icon_window, Window *window_group) +{ + XWMHints *hints; + + hints = XGetWMHints(disp, win); + if (hints) + { + if ((hints->flags & InputHint) && (accepts_focus)) + { + if (hints->input) *accepts_focus = 1; + else *accepts_focus = 0; + } + if ((hints->flags & StateHint) && (initial_state)) + { + *initial_state = hints->initial_state; + } + if ((hints->flags & IconPixmapHint) && (icon_pixmap)) + { + *icon_pixmap = hints->icon_pixmap; + } + if ((hints->flags & IconMaskHint) && (icon_mask)) + { + *icon_mask = hints->icon_pixmap; + } + if ((hints->flags & IconWindowHint) && (icon_window)) + { + *icon_window = hints->icon_window; + } + if ((hints->flags & WindowGroupHint) && (window_group)) + { + *window_group = hints->window_group; + } + XFree(hints); + } +} + +char * +e_window_get_machine(Window win) +{ + XTextProperty xtp; + + if (XGetWMClientMachine(disp, win, &xtp)) + { + char *s; + + if (!xtp.value) return NULL; + s = strdup(xtp.value); + XFree(xtp.value); + return s; + } + return NULL; +} + +char * +e_window_get_command(Window win) +{ + int cargc; + char **cargv; + + if (XGetCommand(disp, win, &cargv, &cargc)) + { + if (cargc > 0) + { + char *s; + int size, i; + + s = NULL; + size = strlen(cargv[0]); + REALLOC(s, char, size + 1); + strcpy(s, cargv[0]); + for (i = 1; i < cargc; i++) + { + size += strlen(cargv[i]); + REALLOC(s, char, size + 2); + strcat(s, " "); + strcat(s, cargv[i]); + } + XFreeStringList(cargv); + return s; + } + else + return NULL; + } + return NULL; +} + +void e_window_set_min_size(Window win, int w, int h) { XSizeHints hints; |
From: E C. L. <enl...@so...> - 2001-10-08 06:51:15
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src Modified Files: e_x.c Log Message: and add that baby :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/e_x.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -3 -r1.31 -r1.32 --- e_x.c 2001/10/08 06:50:16 1.31 +++ e_x.c 2001/10/08 06:51:14 1.32 @@ -2342,6 +2342,23 @@ return NULL; } +char * +e_window_get_icon_name(Window win) +{ + XTextProperty xtp; + + if (XGetWMIconName(disp, win, &xtp)) + { + char *s; + + if (!xtp.value) return NULL; + s = strdup(xtp.value); + XFree(xtp.value); + return s; + } + return NULL; +} + void e_window_set_min_size(Window win, int w, int h) { |