Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: Tag: branch-exp ecore-e16.c ecore-e16.h ewmh.c Log Message: Track ecore_x changes. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/Attic/ecore-e16.c,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- ecore-e16.c 27 Oct 2004 23:32:52 -0000 1.1.2.4 +++ ecore-e16.c 29 Nov 2004 23:29:29 -0000 1.1.2.5 @@ -70,6 +70,9 @@ * General stuff */ +/* + * Send client message (format 32) + */ int ecore_x_client_message32_send(Window win, Atom type, long d0, long d1, long d2, long d3, long d4) @@ -90,6 +93,48 @@ } /* + * Set UTF-8 string property + */ +static void +_ecore_x_window_prop_string_utf8_set(Ecore_X_Window win, Ecore_X_Atom atom, + const char *str) +{ + _ATOM_SET_UTF8_STRING(win, atom, str); +} + +/* + * Get UTF-8 string property + */ +static char * +_ecore_x_window_prop_string_utf8_get(Ecore_X_Window win, Ecore_X_Atom atom) +{ + char *str; + unsigned char *prop_return; + Atom type_ret; + unsigned long bytes_after, num_ret; + int format_ret; + + str = NULL; + prop_return = NULL; + XGetWindowProperty(_ecore_x_disp, win, atom, 0, 0x7fffffff, False, + _ecore_x_atom_utf8_string, &type_ret, + &format_ret, &num_ret, &bytes_after, &prop_return); + if (prop_return && num_ret > 0 && format_ret == 8) + { + str = malloc(num_ret + 1); + if (str) + { + memcpy(str, prop_return, num_ret); + str[num_ret] = '\0'; + } + } + if (prop_return) + XFree(prop_return); + + return str; +} + +/* * ICCCM stuff */ Atom _ecore_x_atom_wm_state = 0; @@ -197,6 +242,9 @@ Atom _ecore_x_atom_net_active_window; Atom _ecore_x_atom_net_wm_name; +Atom _ecore_x_atom_net_wm_visible_name; +Atom _ecore_x_atom_net_wm_icon_name; +Atom _ecore_x_atom_net_wm_visible_icon_name; void ecore_x_netwm_init(void) @@ -226,11 +274,11 @@ #endif _ecore_x_atom_net_wm_name = _ATOM_GET("_NET_WM_NAME"); -#if 0 _ecore_x_atom_net_wm_visible_name = _ATOM_GET("_NET_WM_VISIBLE_NAME"); _ecore_x_atom_net_wm_icon_name = _ATOM_GET("_NET_WM_ICON_NAME"); _ecore_x_atom_net_wm_visible_icon_name = _ATOM_GET("_NET_WM_VISIBLE_ICON_NAME"); +#if 0 _ecore_x_atom_net_wm_desktop = _ATOM_GET("_NET_WM_DESKTOP"); _ecore_x_atom_net_wm_window_type = _ATOM_GET("_NET_WM_WINDOW_TYPE"); _ecore_x_atom_net_wm_state = _ATOM_GET("_NET_WM_STATE"); @@ -440,4 +488,62 @@ _ATOM_SET_WINDOW(_ecore_x_atom_net_active_window, root, &win, 1); } +/* + * Client window properties + */ + +void +ecore_x_netwm_name_set(Ecore_X_Window win, const char *name) +{ + _ecore_x_window_prop_string_utf8_set(_ecore_x_atom_net_wm_name, win, name); +} + +char * +ecore_x_netwm_name_get(Ecore_X_Window win) +{ + return _ecore_x_window_prop_string_utf8_get(win, _ecore_x_atom_net_wm_name); +} + +void +ecore_x_netwm_visible_name_set(Ecore_X_Window win, const char *name) +{ + _ecore_x_window_prop_string_utf8_set(_ecore_x_atom_net_wm_visible_name, win, + name); +} + +char * +ecore_x_netwm_visible_name_get(Ecore_X_Window win) +{ + return _ecore_x_window_prop_string_utf8_get(win, + _ecore_x_atom_net_wm_visible_name); +} + +void +ecore_x_netwm_icon_name_set(Ecore_X_Window win, const char *name) +{ + _ecore_x_window_prop_string_utf8_set(_ecore_x_atom_net_wm_icon_name, win, + name); +} + +char * +ecore_x_netwm_icon_name_get(Ecore_X_Window win) +{ + return _ecore_x_window_prop_string_utf8_get(win, + _ecore_x_atom_net_wm_icon_name); +} + +void +ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, const char *name) +{ + _ecore_x_window_prop_string_utf8_set(_ecore_x_atom_net_wm_visible_icon_name, + win, name); +} + +char * +ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win) +{ + return _ecore_x_window_prop_string_utf8_get(win, + _ecore_x_atom_net_wm_visible_icon_name); +} + #endif /* USE_ECORE_X */ =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/Attic/ecore-e16.h,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -3 -r1.1.2.8 -r1.1.2.9 --- ecore-e16.h 27 Oct 2004 23:32:52 -0000 1.1.2.8 +++ ecore-e16.h 29 Nov 2004 23:29:29 -0000 1.1.2.9 @@ -118,6 +118,18 @@ p_clients); void ecore_x_netwm_client_active_set(Ecore_X_Window root, Ecore_X_Window win); +void ecore_x_netwm_name_set(Ecore_X_Window win, + const char *name); +char *ecore_x_netwm_name_get(Ecore_X_Window win); +void ecore_x_netwm_icon_name_set(Ecore_X_Window win, + const char *name); +char *ecore_x_netwm_icon_name_get(Ecore_X_Window win); +void ecore_x_netwm_visible_name_set(Ecore_X_Window win, + const char *name); +char *ecore_x_netwm_visible_name_get(Ecore_X_Window win); +void ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, + const char *name); +char *ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win); #endif =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewmh.c,v retrieving revision 1.55.2.16 retrieving revision 1.55.2.17 diff -u -3 -r1.55.2.16 -r1.55.2.17 --- ewmh.c 21 Nov 2004 22:15:20 -0000 1.55.2.16 +++ ewmh.c 29 Nov 2004 23:29:29 -0000 1.55.2.17 @@ -458,11 +458,9 @@ { const char *str; - EDBUG(6, "EWMH_SetWindowName"); str = EstrInt2Enc(name, 1); - _ATOM_SET_UTF8_STRING(_NET_WM_NAME, win, str); + ecore_x_netwm_name_set(win, str); EstrInt2EncFree(str, 1); - EDBUG_RETURN_; } void @@ -533,46 +531,32 @@ EWMH_GetWindowName(EWin * ewin) { char *val; - int size; - EDBUG(6, "EWMH_GetWindowName"); + _EFREE(ewin->ewmh.wm_name); - val = AtomGet(ewin->client.win, _NET_WM_NAME, E_XA_UTF8_STRING, &size); + val = ecore_x_netwm_name_get(ewin->client.win); if (!val) - goto done; - - if (ewin->ewmh.wm_name) - Efree(ewin->ewmh.wm_name); - ewin->ewmh.wm_name = EstrUtf82Int(val, size); - + return; + ewin->ewmh.wm_name = EstrUtf82Int(val, 0); Efree(val); - EwinChange(ewin, EWIN_CHANGE_NAME); - done: - EDBUG_RETURN_; + EwinChange(ewin, EWIN_CHANGE_NAME); } void EWMH_GetWindowIconName(EWin * ewin) { char *val; - int size; - EDBUG(6, "EWMH_GetWindowIconName"); + _EFREE(ewin->ewmh.wm_icon_name); - val = AtomGet(ewin->client.win, _NET_WM_ICON_NAME, E_XA_UTF8_STRING, &size); + val = ecore_x_netwm_icon_name_get(ewin->client.win); if (!val) - goto done; - - if (ewin->ewmh.wm_icon_name) - Efree(ewin->ewmh.wm_icon_name); - ewin->ewmh.wm_icon_name = EstrUtf82Int(val, size); - + return; + ewin->ewmh.wm_icon_name = EstrUtf82Int(val, 0); Efree(val); - EwinChange(ewin, EWIN_CHANGE_ICON_NAME); - done: - EDBUG_RETURN_; + EwinChange(ewin, EWIN_CHANGE_ICON_NAME); } void ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs