Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: ewmh.c gnome.c hints.c hints.h icccm.c Log Message: Don't use atom name in client message processing. =================================================================== RCS file: /cvs/e/e16/e/src/ewmh.c,v retrieving revision 1.114 retrieving revision 1.115 diff -u -3 -r1.114 -r1.115 --- ewmh.c 15 Apr 2007 14:39:07 -0000 1.114 +++ ewmh.c 15 Apr 2007 14:54:11 -0000 1.115 @@ -846,7 +846,7 @@ return -1; } -void +int EWMH_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * ev) { int source; @@ -858,14 +858,16 @@ ts = ev->data.l[1]; /* cwin = ev->data.l[2]; */ EwinOpActivate(ewin, source, 1); + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_CLOSE_WINDOW) + if (ev->message_type == ECORE_X_ATOM_NET_CLOSE_WINDOW) { /* ts = ev->data.l[0]; */ source = OPSRC(ev->data.l[1]); EwinOpClose(ewin, source); + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_WM_DESKTOP) + if (ev->message_type == ECORE_X_ATOM_NET_WM_DESKTOP) { source = OPSRC(ev->data.l[1]); if ((unsigned)ev->data.l[0] == 0xFFFFFFFF) @@ -880,8 +882,9 @@ else EwinMoveToDesktop(ewin, DeskGet(ev->data.l[0])); } + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_WM_STATE) + if (ev->message_type == ECORE_X_ATOM_NET_WM_STATE) { /* * It is assumed(!) that only the MAXIMIZE H/V ones can be set @@ -949,20 +952,18 @@ maxh = do_set(maxh, action); } - if ((ewin->state.maximized_horz == maxh) && - (ewin->state.maximized_vert == maxv)) - goto done; - - func(ewin, "available"); - EWMH_SetWindowState(ewin); + if ((ewin->state.maximized_horz != maxh) || + (ewin->state.maximized_vert != maxv)) + { + func(ewin, "available"); + EWMH_SetWindowState(ewin); + } } else if (atom == ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN) { action = do_set(ewin->state.fullscreen, action); - if (ewin->state.fullscreen == action) - goto done; - - EwinOpFullscreen(ewin, source, action); + if (ewin->state.fullscreen != action) + EwinOpFullscreen(ewin, source, action); } else if (atom == ECORE_X_ATOM_NET_WM_STATE_ABOVE) { @@ -986,8 +987,9 @@ ewin->state.attention = action; EWMH_SetWindowState(ewin); } + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_MOVERESIZE_WINDOW) + if (ev->message_type == ECORE_X_ATOM_NET_MOVERESIZE_WINDOW) { int flags, grav, x, y, w, h; @@ -1001,8 +1003,9 @@ h = (flags & 0x0800) ? ev->data.l[4] : ewin->client.h; /* source = OPSRC((flags & 0xF000) >> 12); */ EwinMoveResizeWithGravity(ewin, x, y, w, h, grav); + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_WM_MOVERESIZE) + if (ev->message_type == ECORE_X_ATOM_NET_WM_MOVERESIZE) { /* source = OPSRC(ev->data.l[4]); */ switch (ev->data.l[2]) @@ -1028,47 +1031,48 @@ /* doMove(NULL); */ break; } + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_RESTACK_WINDOW) + if (ev->message_type == ECORE_X_ATOM_NET_RESTACK_WINDOW) { /* source = OPSRC(ev->data.l[0]); */ /* FIXME - Implement */ + return 1; } - done: - ; + return 0; } -void +int EWMH_ProcessRootClientMessage(XClientMessageEvent * ev) { if (ev->message_type == ECORE_X_ATOM_NET_CURRENT_DESKTOP) { DeskGotoNum(ev->data.l[0]); - goto done; + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_DESKTOP_VIEWPORT) + if (ev->message_type == ECORE_X_ATOM_NET_DESKTOP_VIEWPORT) { DeskCurrentGotoArea(ev->data.l[0] / VRoot.w, ev->data.l[1] / VRoot.h); - goto done; + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_SHOWING_DESKTOP) + if (ev->message_type == ECORE_X_ATOM_NET_SHOWING_DESKTOP) { EwinsShowDesktop(ev->data.l[0]); - goto done; + return 1; } #if 0 /* These messages are sent to dedicated window */ - else if (ev->message_type == ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN) + if (ev->message_type == ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN) { Eprintf("ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN: %lx: %s\n", ev->window, (char *)ev->data.l); - goto done; + return 1; } - else if (ev->message_type == ECORE_X_ATOM_NET_STARTUP_INFO) + if (ev->message_type == ECORE_X_ATOM_NET_STARTUP_INFO) { Eprintf("ECORE_X_ATOM_NET_STARTUP_INFO : %lx: %s\n", ev->window, (char *)ev->data.l); - goto done; + return 1; } #endif @@ -1082,6 +1086,7 @@ if (ev->message_type == ECORE_X_ATOM_NET_WM_DESKTOP) { ecore_x_netwm_desktop_set(ev->window, ev->data.l[0]); + return 1; } else if (ev->message_type == ECORE_X_ATOM_NET_WM_STATE) { @@ -1096,11 +1101,9 @@ ECORE_X_ATOM_NET_WM_STATE, ev->data.l[2], ev->data.l[0]); + return 1; } - goto done; } #endif - - done: - ; + return 0; } =================================================================== RCS file: /cvs/e/e16/e/src/gnome.c,v retrieving revision 1.71 retrieving revision 1.72 diff -u -3 -r1.71 -r1.72 --- gnome.c 15 Apr 2007 14:39:07 -0000 1.71 +++ gnome.c 15 Apr 2007 14:54:11 -0000 1.72 @@ -750,7 +750,7 @@ } } -void +int GNOME_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event) { static Atom a4 = 0, a5 = 0; @@ -768,7 +768,7 @@ EoSetLayer(ewin, val); ecore_x_window_prop_card32_set(EwinGetClientXwin(ewin), a4, &val, 1); EwinRaise(ewin); - return; + return 1; } if (event->message_type == a5) { @@ -798,11 +798,13 @@ (event->data.l[1] & WIN_STATE_SHADED) != 0); } HintsSetWindowState(ewin); - return; + return 1; } + + return 0; } -void +int GNOME_ProcessRootClientMessage(XClientMessageEvent * event) { static Atom a2 = 0, a3 = 0; @@ -815,11 +817,13 @@ if (event->message_type == a2) { DeskCurrentGotoArea(event->data.l[0], event->data.l[1]); - return; + return 1; } if (event->message_type == a3) { DeskGotoNum(event->data.l[0]); - return; + return 1; } + + return 0; } =================================================================== RCS file: /cvs/e/e16/e/src/hints.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -3 -r1.80 -r1.81 --- hints.c 15 Apr 2007 14:34:46 -0000 1.80 +++ hints.c 15 Apr 2007 14:54:11 -0000 1.81 @@ -27,6 +27,7 @@ #include "borders.h" /* FIXME - Should not be here */ #include "desktops.h" /* FIXME - Should not be here */ #include "e16-ecore_hints.h" +#include "events.h" #include "ewins.h" #include "hints.h" #include "xwin.h" @@ -268,44 +269,39 @@ void HintsProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event) { - char *name; - - name = XGetAtomName(disp, event->message_type); - if (name == NULL) + if (ICCCM_ProcessClientClientMessage(ewin, event)) + return; + if (EWMH_ProcessClientClientMessage(ewin, event)) return; - - if (!memcmp(name, "WM_", 3)) - ICCCM_ProcessClientClientMessage(ewin, event); - else if (!memcmp(name, "_NET_", 5)) - EWMH_ProcessClientClientMessage(ewin, event); #if ENABLE_GNOME - else if (!memcmp(name, "_WIN_", 5)) - GNOME_ProcessClientClientMessage(ewin, event); + if (GNOME_ProcessClientClientMessage(ewin, event)) + return; #endif - XFree(name); + if (EDebug(1)) + { + Eprintf("HintsProcessClientClientMessage:\n"); + EventShow((XEvent *) event); + } } void HintsProcessRootClientMessage(XClientMessageEvent * event) { - char *name; - - name = XGetAtomName(disp, event->message_type); - if (name == NULL) - return; - #if 0 - if (!memcmp(name, "WM_", 3)) - ICCCM_ProcessRootClientMessage(event); - else + if (ICCCM_ProcessRootClientMessage(event)) + return; #endif - if (!memcmp(name, "_NET_", 5)) - EWMH_ProcessRootClientMessage(event); + if (EWMH_ProcessRootClientMessage(event)) + return; #if ENABLE_GNOME - else if (!memcmp(name, "_WIN_", 5)) - GNOME_ProcessRootClientMessage(event); + if (GNOME_ProcessRootClientMessage(event)) + return; #endif - XFree(name); + if (EDebug(1)) + { + Eprintf("HintsProcessRootClientMessage:\n"); + EventShow((XEvent *) event); + } } Pixmap =================================================================== RCS file: /cvs/e/e16/e/src/hints.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- hints.h 15 Apr 2007 14:34:46 -0000 1.12 +++ hints.h 15 Apr 2007 14:54:11 -0000 1.13 @@ -52,10 +52,10 @@ void EWMH_GetWindowHints(EWin * ewin); void EWMH_DelWindowHints(const EWin * ewin); void EWMH_ProcessPropertyChange(EWin * ewin, Atom atom_change); -void EWMH_ProcessClientClientMessage(EWin * ewin, +int EWMH_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event); -void EWMH_ProcessRootClientMessage(XClientMessageEvent * event); +int EWMH_ProcessRootClientMessage(XClientMessageEvent * event); #if ENABLE_GNOME /* gnome.c */ @@ -71,10 +71,10 @@ void GNOME_GetHints(EWin * ewin, Atom atom_change); void GNOME_DelHints(const EWin * ewin); void GNOME_SetHints(Window win_wm_check); -void GNOME_ProcessClientClientMessage(EWin * ewin, +int GNOME_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event); -void GNOME_ProcessRootClientMessage(XClientMessageEvent * event); +int GNOME_ProcessRootClientMessage(XClientMessageEvent * event); #endif /* hints.c */ @@ -119,7 +119,7 @@ /* icccm.c */ void ICCCM_Init(void); -void ICCCM_ProcessClientClientMessage(EWin * ewin, +int ICCCM_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event); void ICCCM_GetTitle(EWin * ewin, Atom atom_change); =================================================================== RCS file: /cvs/e/e16/e/src/icccm.c,v retrieving revision 1.137 retrieving revision 1.138 diff -u -3 -r1.137 -r1.138 --- icccm.c 15 Apr 2007 14:34:46 -0000 1.137 +++ icccm.c 15 Apr 2007 14:54:11 -0000 1.138 @@ -53,7 +53,7 @@ } } -void +int ICCCM_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event) { Atom a; @@ -64,13 +64,17 @@ { EwinIconify(ewin); } + return 1; } - else if (event->message_type == ECORE_X_ATOM_WM_PROTOCOLS) + if (event->message_type == ECORE_X_ATOM_WM_PROTOCOLS) { a = event->data.l[0]; if (a == ECORE_X_ATOM_WM_DELETE_WINDOW && event->window == VRoot.xwin) SessionExit(EEXIT_EXIT, NULL); + return 1; } + + return 0; } void ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs