Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: comms.c e16-ecore_hints.c e16-ecore_hints.h hints.c hints.h Log Message: Use XInternAtoms to speed up initial atom fetch. =================================================================== RCS file: /cvs/e/e16/e/src/comms.c,v retrieving revision 1.87 retrieving revision 1.88 diff -u -3 -r1.87 -r1.88 --- comms.c 15 Dec 2007 12:36:58 -0000 1.87 +++ comms.c 23 Feb 2008 11:57:41 -0000 1.88 @@ -1,6 +1,6 @@ /* * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors - * Copyright (C) 2004-2007 Kim Woelders + * Copyright (C) 2004-2008 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -23,6 +23,7 @@ */ #include "E.h" #include "comms.h" +#include "hints.h" #include "ipc.h" #include "e16-ecore_hints.h" #include "e16-ecore_list.h" @@ -45,9 +46,6 @@ static Win comms_win = NoWin; -static Atom XA_ENLIGHTENMENT_COMMS = 0; -static Atom XA_ENL_MSG = 0; - static Client * ClientCreate(Window xwin) { @@ -165,7 +163,7 @@ if ((!ev) || (!c)) return NULL; - if (ev->message_type != XA_ENL_MSG) + if (ev->message_type != E16_ATOM_COMMS_MSG) return NULL; s[12] = 0; @@ -304,12 +302,8 @@ EventCallbackRegister(VRoot.win, 0, ClientHandleRootEvents, NULL); Esnprintf(s, sizeof(s), "WINID %8lx", WinGetXwin(comms_win)); - XA_ENLIGHTENMENT_COMMS = XInternAtom(disp, "ENLIGHTENMENT_COMMS", False); - ecore_x_window_prop_string_set(WinGetXwin(comms_win), XA_ENLIGHTENMENT_COMMS, - s); - ecore_x_window_prop_string_set(VRoot.xwin, XA_ENLIGHTENMENT_COMMS, s); - - XA_ENL_MSG = XInternAtom(disp, "ENL_MSG", False); + ecore_x_window_prop_string_set(WinGetXwin(comms_win), E16_ATOM_COMMS_WIN, s); + ecore_x_window_prop_string_set(VRoot.xwin, E16_ATOM_COMMS_WIN, s); } static void @@ -327,7 +321,7 @@ ev.xclient.serial = 0; ev.xclient.send_event = True; ev.xclient.window = win; - ev.xclient.message_type = XA_ENL_MSG; + ev.xclient.message_type = E16_ATOM_COMMS_MSG; ev.xclient.format = 8; for (i = 0; i < len + 1; i += 12) { =================================================================== RCS file: /cvs/e/e16/e/src/e16-ecore_hints.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- e16-ecore_hints.c 11 Jul 2007 08:29:46 -0000 1.11 +++ e16-ecore_hints.c 23 Feb 2008 11:57:41 -0000 1.12 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Kim Woelders + * Copyright (C) 2004-2008 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -33,9 +33,6 @@ #include "config.h" #include "e16-ecore_hints.h" -#define _ATOM_GET(name) \ - XInternAtom(_ecore_x_disp, name, False) - /* Window property change actions (must match _NET_WM_STATE_... ones) */ #define ECORE_X_PROP_LIST_REMOVE 0 #define ECORE_X_PROP_LIST_ADD 1 @@ -67,6 +64,14 @@ #else /* USE_ECORE_X */ +#define DEBUG_CHECK 0 +#if DEBUG_CHECK +#include <assert.h> +#endif +#include "hints.h" + +#define N_ITEMS(x) (sizeof(x)/sizeof(x[0])) + /* * General stuff */ @@ -640,55 +645,37 @@ /* * ICCCM stuff */ -Ecore_X_Atom ECORE_X_ATOM_WM_STATE; -Ecore_X_Atom ECORE_X_ATOM_WM_NAME; -Ecore_X_Atom ECORE_X_ATOM_WM_ICON_NAME; -Ecore_X_Atom ECORE_X_ATOM_WM_CLASS; -Ecore_X_Atom ECORE_X_ATOM_WM_WINDOW_ROLE; -Ecore_X_Atom ECORE_X_ATOM_WM_NORMAL_HINTS; -Ecore_X_Atom ECORE_X_ATOM_WM_HINTS; -Ecore_X_Atom ECORE_X_ATOM_WM_COMMAND; -Ecore_X_Atom ECORE_X_ATOM_WM_CLIENT_MACHINE; -Ecore_X_Atom ECORE_X_ATOM_WM_CLIENT_LEADER; -Ecore_X_Atom ECORE_X_ATOM_WM_TRANSIENT_FOR; - -Ecore_X_Atom ECORE_X_ATOM_WM_COLORMAP_WINDOWS; - -Ecore_X_Atom ECORE_X_ATOM_WM_CHANGE_STATE; - -Ecore_X_Atom ECORE_X_ATOM_WM_PROTOCOLS; -Ecore_X_Atom ECORE_X_ATOM_WM_DELETE_WINDOW; -Ecore_X_Atom ECORE_X_ATOM_WM_TAKE_FOCUS; +static const char *const atoms_icccm_names[] = { +/* *INDENT-OFF* */ + + /* ICCCM */ + "WM_STATE", + "WM_WINDOW_ROLE", + "WM_CLIENT_LEADER", + "WM_COLORMAP_WINDOWS", + "WM_CHANGE_STATE", + "WM_PROTOCOLS", + "WM_DELETE_WINDOW", + "WM_TAKE_FOCUS", #if 0 -Ecore_X_Atom ECORE_X_ATOM_WM_SAVE_YOURSELF; + "WM_SAVE_YOURSELF", #endif + /* Misc. */ + "UTF8_STRING", + +/* *INDENT-ON* */ +}; +unsigned int atoms_icccm[CHECK_COUNT_ICCCM]; + void ecore_x_icccm_init(void) { - ECORE_X_ATOM_WM_STATE = _ATOM_GET("WM_STATE"); - ECORE_X_ATOM_WM_NAME = XA_WM_NAME; - ECORE_X_ATOM_WM_ICON_NAME = XA_WM_ICON_NAME; - ECORE_X_ATOM_WM_CLASS = XA_WM_CLASS; - ECORE_X_ATOM_WM_WINDOW_ROLE = _ATOM_GET("WM_WINDOW_ROLE"); - ECORE_X_ATOM_WM_NORMAL_HINTS = XA_WM_NORMAL_HINTS; - ECORE_X_ATOM_WM_HINTS = XA_WM_HINTS; - ECORE_X_ATOM_WM_COMMAND = XA_WM_COMMAND; - ECORE_X_ATOM_WM_CLIENT_MACHINE = XA_WM_CLIENT_MACHINE; - ECORE_X_ATOM_WM_CLIENT_LEADER = _ATOM_GET("WM_CLIENT_LEADER"); - ECORE_X_ATOM_WM_TRANSIENT_FOR = XA_WM_TRANSIENT_FOR; - - ECORE_X_ATOM_WM_COLORMAP_WINDOWS = _ATOM_GET("WM_COLORMAP_WINDOWS"); - - ECORE_X_ATOM_WM_CHANGE_STATE = _ATOM_GET("WM_CHANGE_STATE"); - - ECORE_X_ATOM_WM_PROTOCOLS = _ATOM_GET("WM_PROTOCOLS"); - ECORE_X_ATOM_WM_DELETE_WINDOW = _ATOM_GET("WM_DELETE_WINDOW"); - ECORE_X_ATOM_WM_TAKE_FOCUS = _ATOM_GET("WM_TAKE_FOCUS"); -#if 0 - ECORE_X_ATOM_WM_SAVE_YOURSELF = _ATOM_GET("WM_SAVE_YOURSELF"); +#if DEBUG_CHECK + assert(CHECK_COUNT_ICCCM == N_ITEMS(atoms_icccm)); #endif + AtomListIntern(atoms_icccm_names, N_ITEMS(atoms_icccm), atoms_icccm); } static void @@ -801,229 +788,121 @@ /* * _NET_WM hints (EWMH) */ -Ecore_X_Atom ECORE_X_ATOM_UTF8_STRING; -/* Window manager info */ -Ecore_X_Atom ECORE_X_ATOM_NET_SUPPORTED; -Ecore_X_Atom ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK; - -/* Desktop status/requests */ -Ecore_X_Atom ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS; -Ecore_X_Atom ECORE_X_ATOM_NET_VIRTUAL_ROOTS; -Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_NAMES; -Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_GEOMETRY; -Ecore_X_Atom ECORE_X_ATOM_NET_WORKAREA; -Ecore_X_Atom ECORE_X_ATOM_NET_CURRENT_DESKTOP; -Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_VIEWPORT; -Ecore_X_Atom ECORE_X_ATOM_NET_SHOWING_DESKTOP; - -Ecore_X_Atom ECORE_X_ATOM_NET_ACTIVE_WINDOW; -Ecore_X_Atom ECORE_X_ATOM_NET_CLIENT_LIST; -Ecore_X_Atom ECORE_X_ATOM_NET_CLIENT_LIST_STACKING; - -/* Client window props/client messages */ -Ecore_X_Atom ECORE_X_ATOM_NET_WM_NAME; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_VISIBLE_NAME; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON_NAME; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME; - -Ecore_X_Atom ECORE_X_ATOM_NET_WM_DESKTOP; - -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE; - -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL; - -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE; - -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MODAL; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_STICKY; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SHADED; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_HIDDEN; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_ABOVE; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_BELOW; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION; - -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MOVE; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_RESIZE; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_SHADE; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_STICK; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_CLOSE; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_ABOVE; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_BELOW; +static const char *const atoms_netwm_names[] = { +/* *INDENT-OFF* */ + + /* Window manager info */ + "_NET_SUPPORTED", + "_NET_SUPPORTING_WM_CHECK", + + /* Desktop status/requests */ + "_NET_NUMBER_OF_DESKTOPS", + "_NET_VIRTUAL_ROOTS", + "_NET_DESKTOP_GEOMETRY", + "_NET_DESKTOP_NAMES", + "_NET_DESKTOP_VIEWPORT", + "_NET_WORKAREA", + "_NET_CURRENT_DESKTOP", + "_NET_SHOWING_DESKTOP", + + "_NET_ACTIVE_WINDOW", + "_NET_CLIENT_LIST", + "_NET_CLIENT_LIST_STACKING", + + /* Client window props/client messages */ + "_NET_WM_NAME", + "_NET_WM_VISIBLE_NAME", + "_NET_WM_ICON_NAME", + "_NET_WM_VISIBLE_ICON_NAME", + + "_NET_WM_DESKTOP", + + "_NET_WM_WINDOW_TYPE", + "_NET_WM_WINDOW_TYPE_DESKTOP", + "_NET_WM_WINDOW_TYPE_DOCK", + "_NET_WM_WINDOW_TYPE_TOOLBAR", + "_NET_WM_WINDOW_TYPE_MENU", + "_NET_WM_WINDOW_TYPE_UTILITY", + "_NET_WM_WINDOW_TYPE_SPLASH", + "_NET_WM_WINDOW_TYPE_DIALOG", + "_NET_WM_WINDOW_TYPE_NORMAL", + + "_NET_WM_STATE", + "_NET_WM_STATE_MODAL", + "_NET_WM_STATE_STICKY", + "_NET_WM_STATE_MAXIMIZED_VERT", + "_NET_WM_STATE_MAXIMIZED_HORZ", + "_NET_WM_STATE_SHADED", + "_NET_WM_STATE_SKIP_TASKBAR", + "_NET_WM_STATE_SKIP_PAGER", + "_NET_WM_STATE_HIDDEN", + "_NET_WM_STATE_FULLSCREEN", + "_NET_WM_STATE_ABOVE", + "_NET_WM_STATE_BELOW", + "_NET_WM_STATE_DEMANDS_ATTENTION", + + "_NET_WM_ALLOWED_ACTIONS", + "_NET_WM_ACTION_MOVE", + "_NET_WM_ACTION_RESIZE", + "_NET_WM_ACTION_MINIMIZE", + "_NET_WM_ACTION_SHADE", + "_NET_WM_ACTION_STICK", + "_NET_WM_ACTION_MAXIMIZE_HORZ", + "_NET_WM_ACTION_MAXIMIZE_VERT", + "_NET_WM_ACTION_FULLSCREEN", + "_NET_WM_ACTION_CHANGE_DESKTOP", + "_NET_WM_ACTION_CLOSE", + "_NET_WM_ACTION_ABOVE", + "_NET_WM_ACTION_BELOW", -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STRUT; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_STRUT_PARTIAL; + "_NET_WM_STRUT", + "_NET_WM_STRUT_PARTIAL", -Ecore_X_Atom ECORE_X_ATOM_NET_FRAME_EXTENTS; + "_NET_FRAME_EXTENTS", -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON; + "_NET_WM_ICON", -Ecore_X_Atom ECORE_X_ATOM_NET_WM_USER_TIME; + "_NET_WM_USER_TIME", #if 0 /* Not used */ -Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON_GEOMETRY; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_PID; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_HANDLED_ICONS; + "_NET_WM_ICON_GEOMETRY", + "_NET_WM_PID", + "_NET_WM_HANDLED_ICONS", -Ecore_X_Atom ECORE_X_ATOM_NET_WM_PING; + "_NET_WM_PING", #endif -Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER; + "_NET_WM_SYNC_REQUEST", + "_NET_WM_SYNC_REQUEST_COUNTER", -Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_OPACITY; + "_NET_WM_WINDOW_OPACITY", -/* Misc window ops */ -Ecore_X_Atom ECORE_X_ATOM_NET_CLOSE_WINDOW; -Ecore_X_Atom ECORE_X_ATOM_NET_MOVERESIZE_WINDOW; -Ecore_X_Atom ECORE_X_ATOM_NET_WM_MOVERESIZE; -Ecore_X_Atom ECORE_X_ATOM_NET_RESTACK_WINDOW; + /* Misc window ops */ + "_NET_CLOSE_WINDOW", + "_NET_MOVERESIZE_WINDOW", + "_NET_WM_MOVERESIZE", + "_NET_RESTACK_WINDOW", #if 0 /* Not yet implemented */ -Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS; + "_NET_REQUEST_FRAME_EXTENTS", #endif -/* Startup notification */ -Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_ID; -Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN; -Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO; + /* Startup notification */ + "_NET_STARTUP_ID", + "_NET_STARTUP_INFO_BEGIN", + "_NET_STARTUP_INFO", + +/* *INDENT-ON* */ +}; +unsigned int atoms_netwm[CHECK_COUNT_NETWM]; void ecore_x_netwm_init(void) { - ECORE_X_ATOM_UTF8_STRING = _ATOM_GET("UTF8_STRING"); - - ECORE_X_ATOM_NET_SUPPORTED = _ATOM_GET("_NET_SUPPORTED"); - ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK = _ATOM_GET("_NET_SUPPORTING_WM_CHECK"); - - ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS = _ATOM_GET("_NET_NUMBER_OF_DESKTOPS"); - ECORE_X_ATOM_NET_VIRTUAL_ROOTS = _ATOM_GET("_NET_VIRTUAL_ROOTS"); - ECORE_X_ATOM_NET_DESKTOP_GEOMETRY = _ATOM_GET("_NET_DESKTOP_GEOMETRY"); - ECORE_X_ATOM_NET_DESKTOP_NAMES = _ATOM_GET("_NET_DESKTOP_NAMES"); - ECORE_X_ATOM_NET_DESKTOP_VIEWPORT = _ATOM_GET("_NET_DESKTOP_VIEWPORT"); - ECORE_X_ATOM_NET_WORKAREA = _ATOM_GET("_NET_WORKAREA"); - ECORE_X_ATOM_NET_CURRENT_DESKTOP = _ATOM_GET("_NET_CURRENT_DESKTOP"); - ECORE_X_ATOM_NET_SHOWING_DESKTOP = _ATOM_GET("_NET_SHOWING_DESKTOP"); - - ECORE_X_ATOM_NET_ACTIVE_WINDOW = _ATOM_GET("_NET_ACTIVE_WINDOW"); - ECORE_X_ATOM_NET_CLIENT_LIST = _ATOM_GET("_NET_CLIENT_LIST"); - ECORE_X_ATOM_NET_CLIENT_LIST_STACKING = - _ATOM_GET("_NET_CLIENT_LIST_STACKING"); - - ECORE_X_ATOM_NET_WM_NAME = _ATOM_GET("_NET_WM_NAME"); - 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"); - - 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_WINDOW_TYPE_DESKTOP = - _ATOM_GET("_NET_WM_WINDOW_TYPE_DESKTOP"); - ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK = _ATOM_GET("_NET_WM_WINDOW_TYPE_DOCK"); - ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR = - _ATOM_GET("_NET_WM_WINDOW_TYPE_TOOLBAR"); - ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU = _ATOM_GET("_NET_WM_WINDOW_TYPE_MENU"); - ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY = - _ATOM_GET("_NET_WM_WINDOW_TYPE_UTILITY"); - ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH = - _ATOM_GET("_NET_WM_WINDOW_TYPE_SPLASH"); - ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG = - _ATOM_GET("_NET_WM_WINDOW_TYPE_DIALOG"); - ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL = - _ATOM_GET("_NET_WM_WINDOW_TYPE_NORMAL"); - - ECORE_X_ATOM_NET_WM_STATE = _ATOM_GET("_NET_WM_STATE"); - - ECORE_X_ATOM_NET_WM_STATE_MODAL = _ATOM_GET("_NET_WM_STATE_MODAL"); - ECORE_X_ATOM_NET_WM_STATE_STICKY = _ATOM_GET("_NET_WM_STATE_STICKY"); - ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT = - _ATOM_GET("_NET_WM_STATE_MAXIMIZED_VERT"); - ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ = - _ATOM_GET("_NET_WM_STATE_MAXIMIZED_HORZ"); - ECORE_X_ATOM_NET_WM_STATE_SHADED = _ATOM_GET("_NET_WM_STATE_SHADED"); - ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR = - _ATOM_GET("_NET_WM_STATE_SKIP_TASKBAR"); - ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER = _ATOM_GET("_NET_WM_STATE_SKIP_PAGER"); - ECORE_X_ATOM_NET_WM_STATE_HIDDEN = _ATOM_GET("_NET_WM_STATE_HIDDEN"); - ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN = _ATOM_GET("_NET_WM_STATE_FULLSCREEN"); - ECORE_X_ATOM_NET_WM_STATE_ABOVE = _ATOM_GET("_NET_WM_STATE_ABOVE"); - ECORE_X_ATOM_NET_WM_STATE_BELOW = _ATOM_GET("_NET_WM_STATE_BELOW"); - ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION = - _ATOM_GET("_NET_WM_STATE_DEMANDS_ATTENTION"); - - ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS = _ATOM_GET("_NET_WM_ALLOWED_ACTIONS"); - ECORE_X_ATOM_NET_WM_ACTION_MOVE = _ATOM_GET("_NET_WM_ACTION_MOVE"); - ECORE_X_ATOM_NET_WM_ACTION_RESIZE = _ATOM_GET("_NET_WM_ACTION_RESIZE"); - ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE = _ATOM_GET("_NET_WM_ACTION_MINIMIZE"); - ECORE_X_ATOM_NET_WM_ACTION_SHADE = _ATOM_GET("_NET_WM_ACTION_SHADE"); - ECORE_X_ATOM_NET_WM_ACTION_STICK = _ATOM_GET("_NET_WM_ACTION_STICK"); - ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ = - _ATOM_GET("_NET_WM_ACTION_MAXIMIZE_HORZ"); - ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT = - _ATOM_GET("_NET_WM_ACTION_MAXIMIZE_VERT"); - ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN = - _ATOM_GET("_NET_WM_ACTION_FULLSCREEN"); - ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP = - _ATOM_GET("_NET_WM_ACTION_CHANGE_DESKTOP"); - ECORE_X_ATOM_NET_WM_ACTION_CLOSE = _ATOM_GET("_NET_WM_ACTION_CLOSE"); - ECORE_X_ATOM_NET_WM_ACTION_ABOVE = _ATOM_GET("_NET_WM_ACTION_ABOVE"); - ECORE_X_ATOM_NET_WM_ACTION_BELOW = _ATOM_GET("_NET_WM_ACTION_BELOW"); - - ECORE_X_ATOM_NET_WM_STRUT = _ATOM_GET("_NET_WM_STRUT"); - ECORE_X_ATOM_NET_WM_STRUT_PARTIAL = _ATOM_GET("_NET_WM_STRUT_PARTIAL"); - - ECORE_X_ATOM_NET_FRAME_EXTENTS = _ATOM_GET("_NET_FRAME_EXTENTS"); - - ECORE_X_ATOM_NET_WM_ICON = _ATOM_GET("_NET_WM_ICON"); - - ECORE_X_ATOM_NET_WM_USER_TIME = _ATOM_GET("_NET_WM_USER_TIME"); - -#if 0 /* Not used */ - ECORE_X_ATOM_NET_WM_ICON_GEOMETRY = _ATOM_GET("_NET_WM_ICON_GEOMETRY"); - ECORE_X_ATOM_NET_WM_PID = _ATOM_GET("_NET_WM_PID"); - ECORE_X_ATOM_NET_WM_HANDLED_ICONS = _ATOM_GET("_NET_WM_HANDLED_ICONS"); - - ECORE_X_ATOM_NET_WM_PING = _ATOM_GET("_NET_WM_PING"); +#if DEBUG_CHECK + assert(CHECK_COUNT_NETWM == N_ITEMS(atoms_netwm)); #endif - ECORE_X_ATOM_NET_WM_SYNC_REQUEST = _ATOM_GET("_NET_WM_SYNC_REQUEST"); - ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER = - _ATOM_GET("_NET_WM_SYNC_REQUEST_COUNTER"); - - ECORE_X_ATOM_NET_WM_WINDOW_OPACITY = _ATOM_GET("_NET_WM_WINDOW_OPACITY"); - - ECORE_X_ATOM_NET_CLOSE_WINDOW = _ATOM_GET("_NET_CLOSE_WINDOW"); - ECORE_X_ATOM_NET_MOVERESIZE_WINDOW = _ATOM_GET("_NET_MOVERESIZE_WINDOW"); - ECORE_X_ATOM_NET_WM_MOVERESIZE = _ATOM_GET("_NET_WM_MOVERESIZE"); - ECORE_X_ATOM_NET_RESTACK_WINDOW = _ATOM_GET("_NET_RESTACK_WINDOW"); - -#if 0 /* Not yet implemented */ - ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS = - _ATOM_GET("_NET_REQUEST_FRAME_EXTENTS"); -#endif - - ECORE_X_ATOM_NET_STARTUP_ID = _ATOM_GET("_NET_STARTUP_ID"); - ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN = _ATOM_GET("_NET_STARTUP_INFO_BEGIN"); - ECORE_X_ATOM_NET_STARTUP_INFO = _ATOM_GET("_NET_STARTUP_INFO"); + AtomListIntern(atoms_netwm_names, N_ITEMS(atoms_netwm), atoms_netwm); } /* =================================================================== RCS file: /cvs/e/e16/e/src/e16-ecore_hints.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e16-ecore_hints.h 17 Apr 2007 21:20:34 -0000 1.6 +++ e16-ecore_hints.h 23 Feb 2008 11:57:41 -0000 1.7 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Kim Woelders + * Copyright (C) 2004-2008 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -106,30 +106,31 @@ Ecore_X_Atom atom); /* Misc. */ -extern Ecore_X_Atom ECORE_X_ATOM_UTF8_STRING; +#include "X11/Xatom.h" +extern unsigned int atoms_icccm[]; -/* ICCCM */ -extern Ecore_X_Atom ECORE_X_ATOM_WM_STATE; -extern Ecore_X_Atom ECORE_X_ATOM_WM_DELETE_WINDOW; -extern Ecore_X_Atom ECORE_X_ATOM_WM_TAKE_FOCUS; -extern Ecore_X_Atom ECORE_X_ATOM_WM_PROTOCOLS; -extern Ecore_X_Atom ECORE_X_ATOM_WM_CLASS; -extern Ecore_X_Atom ECORE_X_ATOM_WM_NAME; -extern Ecore_X_Atom ECORE_X_ATOM_WM_COMMAND; -extern Ecore_X_Atom ECORE_X_ATOM_WM_ICON_NAME; -extern Ecore_X_Atom ECORE_X_ATOM_WM_CLIENT_MACHINE; -extern Ecore_X_Atom ECORE_X_ATOM_WM_CHANGE_STATE; -extern Ecore_X_Atom ECORE_X_ATOM_WM_COLORMAP_WINDOWS; -extern Ecore_X_Atom ECORE_X_ATOM_WM_WINDOW_ROLE; -extern Ecore_X_Atom ECORE_X_ATOM_WM_HINTS; -extern Ecore_X_Atom ECORE_X_ATOM_WM_NORMAL_HINTS; -extern Ecore_X_Atom ECORE_X_ATOM_WM_CLIENT_LEADER; -extern Ecore_X_Atom ECORE_X_ATOM_WM_TRANSIENT_FOR; -extern Ecore_X_Atom ECORE_X_ATOM_WM_SAVE_YOURSELF; +#define ECORE_X_ATOM_UTF8_STRING atoms_icccm[8] -#if 0 -extern Ecore_X_Atom ECORE_X_ATOM_WM_SAVE_YOURSELF; -#endif +/* ICCCM */ +#define ECORE_X_ATOM_WM_STATE atoms_icccm[0] +#define ECORE_X_ATOM_WM_WINDOW_ROLE atoms_icccm[1] +#define ECORE_X_ATOM_WM_CLIENT_LEADER atoms_icccm[2] +#define ECORE_X_ATOM_WM_COLORMAP_WINDOWS atoms_icccm[3] +#define ECORE_X_ATOM_WM_CHANGE_STATE atoms_icccm[4] +#define ECORE_X_ATOM_WM_PROTOCOLS atoms_icccm[5] +#define ECORE_X_ATOM_WM_DELETE_WINDOW atoms_icccm[6] +#define ECORE_X_ATOM_WM_TAKE_FOCUS atoms_icccm[7] + +#define CHECK_COUNT_ICCCM 9 + +#define ECORE_X_ATOM_WM_CLASS XA_WM_CLASS +#define ECORE_X_ATOM_WM_NAME XA_WM_NAME +#define ECORE_X_ATOM_WM_COMMAND XA_WM_COMMAND +#define ECORE_X_ATOM_WM_ICON_NAME XA_WM_ICON_NAME +#define ECORE_X_ATOM_WM_CLIENT_MACHINE XA_WM_CLIENT_MACHINE +#define ECORE_X_ATOM_WM_HINTS XA_WM_HINTS +#define ECORE_X_ATOM_WM_NORMAL_HINTS XA_WM_NORMAL_HINTS +#define ECORE_X_ATOM_WM_TRANSIENT_FOR XA_WM_TRANSIENT_FOR void ecore_x_icccm_init(void); @@ -148,104 +149,109 @@ char **name, char **clss); /* NETWM (EWMH) */ -extern Ecore_X_Atom ECORE_X_ATOM_NET_SUPPORTED; -extern Ecore_X_Atom ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK; +extern unsigned int atoms_netwm[]; -extern Ecore_X_Atom ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS; -extern Ecore_X_Atom ECORE_X_ATOM_NET_VIRTUAL_ROOTS; -extern Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_GEOMETRY; -extern Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_NAMES; -extern Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_VIEWPORT; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WORKAREA; -extern Ecore_X_Atom ECORE_X_ATOM_NET_CURRENT_DESKTOP; -extern Ecore_X_Atom ECORE_X_ATOM_NET_SHOWING_DESKTOP; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_ACTIVE_WINDOW; -extern Ecore_X_Atom ECORE_X_ATOM_NET_CLIENT_LIST; -extern Ecore_X_Atom ECORE_X_ATOM_NET_CLIENT_LIST_STACKING; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_NAME; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_VISIBLE_NAME; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON_NAME; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_DESKTOP; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MODAL; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_STICKY; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SHADED; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_HIDDEN; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_ABOVE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_BELOW; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION; - -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MOVE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_RESIZE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_SHADE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_STICK; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_CLOSE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_ABOVE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_BELOW; +/* Window manager info */ +#define ECORE_X_ATOM_NET_SUPPORTED atoms_netwm[0] +#define ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK atoms_netwm[1] + +/* Desktop status/requests */ +#define ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS atoms_netwm[2] +#define ECORE_X_ATOM_NET_VIRTUAL_ROOTS atoms_netwm[3] +#define ECORE_X_ATOM_NET_DESKTOP_GEOMETRY atoms_netwm[4] +#define ECORE_X_ATOM_NET_DESKTOP_NAMES atoms_netwm[5] +#define ECORE_X_ATOM_NET_DESKTOP_VIEWPORT atoms_netwm[6] +#define ECORE_X_ATOM_NET_WORKAREA atoms_netwm[7] +#define ECORE_X_ATOM_NET_CURRENT_DESKTOP atoms_netwm[8] +#define ECORE_X_ATOM_NET_SHOWING_DESKTOP atoms_netwm[9] + +#define ECORE_X_ATOM_NET_ACTIVE_WINDOW atoms_netwm[10] +#define ECORE_X_ATOM_NET_CLIENT_LIST atoms_netwm[11] +#define ECORE_X_ATOM_NET_CLIENT_LIST_STACKING atoms_netwm[12] + +/* Client window props/client messages */ +#define ECORE_X_ATOM_NET_WM_NAME atoms_netwm[13] +#define ECORE_X_ATOM_NET_WM_VISIBLE_NAME atoms_netwm[14] +#define ECORE_X_ATOM_NET_WM_ICON_NAME atoms_netwm[15] +#define ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME atoms_netwm[16] + +#define ECORE_X_ATOM_NET_WM_DESKTOP atoms_netwm[17] + +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE atoms_netwm[18] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP atoms_netwm[19] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK atoms_netwm[20] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR atoms_netwm[21] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU atoms_netwm[22] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY atoms_netwm[23] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH atoms_netwm[24] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG atoms_netwm[25] +#define ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL atoms_netwm[26] + +#define ECORE_X_ATOM_NET_WM_STATE atoms_netwm[27] +#define ECORE_X_ATOM_NET_WM_STATE_MODAL atoms_netwm[28] +#define ECORE_X_ATOM_NET_WM_STATE_STICKY atoms_netwm[29] +#define ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT atoms_netwm[30] +#define ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ atoms_netwm[31] +#define ECORE_X_ATOM_NET_WM_STATE_SHADED atoms_netwm[32] +#define ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR atoms_netwm[33] +#define ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER atoms_netwm[34] +#define ECORE_X_ATOM_NET_WM_STATE_HIDDEN atoms_netwm[35] +#define ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN atoms_netwm[36] +#define ECORE_X_ATOM_NET_WM_STATE_ABOVE atoms_netwm[37] +#define ECORE_X_ATOM_NET_WM_STATE_BELOW atoms_netwm[38] +#define ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION atoms_netwm[39] + +#define ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS atoms_netwm[40] +#define ECORE_X_ATOM_NET_WM_ACTION_MOVE atoms_netwm[41] +#define ECORE_X_ATOM_NET_WM_ACTION_RESIZE atoms_netwm[42] +#define ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE atoms_netwm[43] +#define ECORE_X_ATOM_NET_WM_ACTION_SHADE atoms_netwm[44] +#define ECORE_X_ATOM_NET_WM_ACTION_STICK atoms_netwm[45] +#define ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ atoms_netwm[46] +#define ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT atoms_netwm[47] +#define ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN atoms_netwm[48] +#define ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP atoms_netwm[49] +#define ECORE_X_ATOM_NET_WM_ACTION_CLOSE atoms_netwm[50] +#define ECORE_X_ATOM_NET_WM_ACTION_ABOVE atoms_netwm[51] +#define ECORE_X_ATOM_NET_WM_ACTION_BELOW atoms_netwm[52] -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STRUT; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STRUT_PARTIAL; +#define ECORE_X_ATOM_NET_WM_STRUT atoms_netwm[53] +#define ECORE_X_ATOM_NET_WM_STRUT_PARTIAL atoms_netwm[54] -extern Ecore_X_Atom ECORE_X_ATOM_NET_FRAME_EXTENTS; +#define ECORE_X_ATOM_NET_FRAME_EXTENTS atoms_netwm[55] -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON; +#define ECORE_X_ATOM_NET_WM_ICON atoms_netwm[56] -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_USER_TIME; +#define ECORE_X_ATOM_NET_WM_USER_TIME atoms_netwm[57] #if 0 /* Not used */ -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON_GEOMETRY; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_PID; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_HANDLED_ICONS; +#define ECORE_X_ATOM_NET_WM_ICON_GEOMETRY atoms_netwm[0] +#define ECORE_X_ATOM_NET_WM_PID atoms_netwm[0] +#define ECORE_X_ATOM_NET_WM_HANDLED_ICONS atoms_netwm[0] -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_PING; +#define ECORE_X_ATOM_NET_WM_PING atoms_netwm[0] #endif -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER; +#define ECORE_X_ATOM_NET_WM_SYNC_REQUEST atoms_netwm[58] +#define ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER atoms_netwm[59] -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_OPACITY; +#define ECORE_X_ATOM_NET_WM_WINDOW_OPACITY atoms_netwm[60] /* Misc window ops */ -extern Ecore_X_Atom ECORE_X_ATOM_NET_CLOSE_WINDOW; -extern Ecore_X_Atom ECORE_X_ATOM_NET_MOVERESIZE_WINDOW; -extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_MOVERESIZE; -extern Ecore_X_Atom ECORE_X_ATOM_NET_RESTACK_WINDOW; +#define ECORE_X_ATOM_NET_CLOSE_WINDOW atoms_netwm[61] +#define ECORE_X_ATOM_NET_MOVERESIZE_WINDOW atoms_netwm[62] +#define ECORE_X_ATOM_NET_WM_MOVERESIZE atoms_netwm[63] +#define ECORE_X_ATOM_NET_RESTACK_WINDOW atoms_netwm[64] #if 0 /* Not yet implemented */ -extern Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS; +#define ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS atoms_netwm[0] #endif /* Startup notification */ -extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_ID; -extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN; -extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO; +#define ECORE_X_ATOM_NET_STARTUP_ID atoms_netwm[65] +#define ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN atoms_netwm[66] +#define ECORE_X_ATOM_NET_STARTUP_INFO atoms_netwm[67] + +#define CHECK_COUNT_NETWM 68 void ecore_x_netwm_init(void); =================================================================== RCS file: /cvs/e/e16/e/src/hints.c,v retrieving revision 1.85 retrieving revision 1.86 diff -u -3 -r1.85 -r1.86 --- hints.c 3 Feb 2008 17:03:23 -0000 1.85 +++ hints.c 23 Feb 2008 11:57:41 -0000 1.86 @@ -33,33 +33,57 @@ #include "xwin.h" #include <X11/Xatom.h> -/* Misc atoms */ -Atom E_XA_MANAGER = 0; +#define N_ITEMS(x) (sizeof(x)/sizeof(x[0])) -Atom E_XROOTPMAP_ID; -Atom E_XROOTCOLOR_PIXEL; +static const char *const atoms_misc_names[] = { + /* Misc atoms */ + "MANAGER", -/* E16 atoms */ -static Ecore_X_Atom ENL_INTERNAL_AREA_DATA; -static Ecore_X_Atom ENL_INTERNAL_DESK_DATA; -static Ecore_X_Atom ENL_WIN_DATA; -static Ecore_X_Atom ENL_WIN_BORDER; + /* Root background atoms */ + "_XROOTPMAP_ID", + "_XROOTCOLOR_PIXEL", + + /* E16 atoms */ + "ENLIGHTENMENT_VERSION", + + "ENLIGHTENMENT_COMMS", + "ENL_MSG", + + "ENL_INTERNAL_AREA_DATA", + "ENL_INTERNAL_DESK_DATA", + "ENL_WIN_DATA", + "ENL_WIN_BORDER" +}; + +unsigned int atoms_misc[10]; void -HintsInit(void) +AtomListIntern(const char *const *names, unsigned int num, unsigned int *atoms) { - Atom atom; - Window win; +#if SIZEOF_INT == SIZEOF_LONG + XInternAtoms(disp, (char **)names, num, False, (Atom *) atoms); +#else + unsigned int i; + Atom *_atoms; + + _atoms = EMALLOC(Atom, num); + if (!_atoms) + return; + + XInternAtoms(disp, (char **)names, num, False, _atoms); + for (i = 0; i < num; i++) + atoms[i] = _atoms[i]; - E_XA_MANAGER = XInternAtom(disp, "MANAGER", False); + Efree(_atoms); +#endif +} - E_XROOTPMAP_ID = XInternAtom(disp, "_XROOTPMAP_ID", False); - E_XROOTCOLOR_PIXEL = XInternAtom(disp, "_XROOTCOLOR_PIXEL", False); +void +HintsInit(void) +{ + Window win; - ENL_INTERNAL_AREA_DATA = XInternAtom(disp, "ENL_INTERNAL_AREA_DATA", False); - ENL_INTERNAL_DESK_DATA = XInternAtom(disp, "ENL_INTERNAL_DESK_DATA", False); - ENL_WIN_DATA = XInternAtom(disp, "ENL_WIN_DATA", False); - ENL_WIN_BORDER = XInternAtom(disp, "ENL_WIN_BORDER", False); + AtomListIntern(atoms_misc_names, N_ITEMS(atoms_misc_names), atoms_misc); win = XCreateSimpleWindow(disp, VRoot.xwin, -200, -200, 5, 5, 0, 0, 0); @@ -69,8 +93,8 @@ GNOME_SetHints(win); #endif EWMH_Init(win); - atom = XInternAtom(disp, "ENLIGHTENMENT_VERSION", False); - ecore_x_window_prop_string_set(VRoot.xwin, atom, e_wm_version); + + ecore_x_window_prop_string_set(VRoot.xwin, E16_ATOM_VERSION, e_wm_version); if (Mode.wm.window) { @@ -374,10 +398,10 @@ c[10] = ewin->save_fs.h; c[11] = ewin->save_fs.layer; - ecore_x_window_prop_card32_set(EwinGetClientXwin(ewin), ENL_WIN_DATA, + ecore_x_window_prop_card32_set(EwinGetClientXwin(ewin), E16_ATOM_WIN_DATA, (unsigned int *)c, ENL_DATA_ITEMS); - ecore_x_window_prop_string_set(EwinGetClientXwin(ewin), ENL_WIN_BORDER, + ecore_x_window_prop_string_set(EwinGetClientXwin(ewin), E16_ATOM_WIN_BORDER, ewin->normal_border->name); if (EDebug(EDBUG_TYPE_SNAPS)) @@ -398,8 +422,9 @@ if (EwinIsInternal(ewin)) return; - num = ecore_x_window_prop_card32_get(EwinGetClientXwin(ewin), ENL_WIN_DATA, - (unsigned int *)c, ENL_DATA_ITEMS + 1); + num = + ecore_x_window_prop_card32_get(EwinGetClientXwin(ewin), E16_ATOM_WIN_DATA, + (unsigned int *)c, ENL_DATA_ITEMS + 1); if (num < 0) return; @@ -434,7 +459,8 @@ } str = - ecore_x_window_prop_string_get(EwinGetClientXwin(ewin), ENL_WIN_BORDER); + ecore_x_window_prop_string_get(EwinGetClientXwin(ewin), + E16_ATOM_WIN_BORDER); if (str) EwinSetBorderByName(ewin, str); Efree(str); @@ -469,11 +495,12 @@ c[(i * 2) + 1] = ay; } - ecore_x_window_prop_card32_set(VRoot.xwin, ENL_INTERNAL_AREA_DATA, + ecore_x_window_prop_card32_set(VRoot.xwin, E16_ATOM_INTERNAL_AREA_DATA, c, 2 * n_desks); c[0] = DesksGetCurrentNum(); - ecore_x_window_prop_card32_set(VRoot.xwin, ENL_INTERNAL_DESK_DATA, c, 1); + ecore_x_window_prop_card32_set(VRoot.xwin, E16_ATOM_INTERNAL_DESK_DATA, c, + 1); Efree(c); @@ -496,7 +523,7 @@ if (!c) return; - num = ecore_x_window_prop_card32_get(VRoot.xwin, ENL_INTERNAL_AREA_DATA, + num = ecore_x_window_prop_card32_get(VRoot.xwin, E16_ATOM_INTERNAL_AREA_DATA, c, 2 * n_desks); if (num > 0) { @@ -504,7 +531,7 @@ DeskSetArea(DeskGet(i), c[(i * 2)], c[(i * 2) + 1]); } - num = ecore_x_window_prop_card32_get(VRoot.xwin, ENL_INTERNAL_DESK_DATA, + num = ecore_x_window_prop_card32_get(VRoot.xwin, E16_ATOM_INTERNAL_DESK_DATA, c, 1); if (num > 0) { =================================================================== RCS file: /cvs/e/e16/e/src/hints.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- hints.h 5 Sep 2007 19:12:55 -0000 1.17 +++ hints.h 23 Feb 2008 11:57:41 -0000 1.18 @@ -1,6 +1,6 @@ /* * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors - * Copyright (C) 2004-2007 Kim Woelders + * Copyright (C) 2004-2008 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -24,11 +24,30 @@ #ifndef _HINTS_H_ #define _HINTS_H_ +#include "etypes.h" +#include "xwin.h" + +void AtomListIntern(const char *const *names, unsigned int num, + unsigned int *atoms); + /* Misc atoms */ -extern Atom E_XA_MANAGER; -extern Atom E_XROOTPMAP_ID; -extern Atom E_XROOTCOLOR_PIXEL; +extern unsigned int atoms_misc[]; + +#define E_XA_MANAGER atoms_misc[0] + +#define E_XROOTPMAP_ID atoms_misc[1] +#define E_XROOTCOLOR_PIXEL atoms_misc[2] + +#define E16_ATOM_VERSION atoms_misc[3] + +#define E16_ATOM_COMMS_WIN atoms_misc[4] +#define E16_ATOM_COMMS_MSG atoms_misc[5] + +#define E16_ATOM_INTERNAL_AREA_DATA atoms_misc[6] +#define E16_ATOM_INTERNAL_DESK_DATA atoms_misc[7] +#define E16_ATOM_WIN_DATA atoms_misc[8] +#define E16_ATOM_WIN_BORDER atoms_misc[9] /* ewmh.c */ void EWMH_Init(Window win_wm_check); ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs