Move NetWM atoms to ecore_x_netwm.c. Added ecore_x_netwm_wm_identify().

SVN revision: 12044
This commit is contained in:
Kim Woelders 2004-10-27 21:50:58 +00:00
parent ade8c6b269
commit f1cd7eb5c7
3 changed files with 163 additions and 170 deletions

View File

@ -899,9 +899,8 @@ int ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom t
Ecore_X_Window *window_group,
int *is_urgent);
#if 0 /* ??? */
void ecore_x_netwm_init(void);
#endif
void ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check, const char *wm_name);
void ecore_x_netwm_desk_count_set(Ecore_X_Window root, int n_desks);
void ecore_x_netwm_desk_roots_set(Ecore_X_Window root, int n_desks, Ecore_X_Window * vroots);
void ecore_x_netwm_desk_names_set(Ecore_X_Window root, int n_desks, const char **names);

View File

@ -26,7 +26,7 @@ int _ecore_x_event_last_root_x = 0;
int _ecore_x_event_last_root_y = 0;
/*
* ICCCM and Motif hints.
* ICCCM hints.
*/
Atom _ecore_x_atom_wm_state = 0;
Atom _ecore_x_atom_wm_delete_window = 0;
@ -45,10 +45,21 @@ Atom _ecore_x_atom_wm_client_leader = 0;
Atom _ecore_x_atom_wm_transient_for = 0;
Atom _ecore_x_atom_wm_save_yourself = 0;
Atom _ecore_x_atoms_wm_protocols[ECORE_X_WM_PROTOCOL_NUM];
/*
* Motif hints.
*/
Atom _ecore_x_atom_motif_wm_hints = 0;
/*
* GNOME hints.
*/
Atom _ecore_x_atom_win_layer = 0;
/*
* Other hints.
*/
Atom _ecore_x_atom_selection_primary = 0;
Atom _ecore_x_atom_selection_secondary = 0;
Atom _ecore_x_atom_selection_clipboard = 0;
@ -75,80 +86,12 @@ Atom _ecore_x_atom_xdnd_drop = 0;
Atom _ecore_x_atom_xdnd_finished = 0;
Atom _ecore_x_atom_xdnd_leave = 0;
/*
* Root window NetWM hints.
*/
Atom _ecore_x_atom_net_supported = 0;
Atom _ecore_x_atom_net_client_list = 0;
Atom _ecore_x_atom_net_client_list_stacking = 0;
Atom _ecore_x_atom_net_number_of_desktops = 0;
Atom _ecore_x_atom_net_desktop_geometry = 0;
Atom _ecore_x_atom_net_desktop_viewport = 0;
Atom _ecore_x_atom_net_current_desktop = 0;
Atom _ecore_x_atom_net_desktop_names = 0;
Atom _ecore_x_atom_net_active_window = 0;
Atom _ecore_x_atom_net_workarea = 0;
Atom _ecore_x_atom_net_supporting_wm_check = 0;
Atom _ecore_x_atom_net_virtual_roots = 0;
Atom _ecore_x_atom_net_desktop_layout = 0;
Atom _ecore_x_atom_net_showing_desktop = 0;
/*
* Client message types.
*/
Atom _ecore_x_atom_net_close_window = 0;
Atom _ecore_x_atom_net_wm_moveresize = 0;
/*
* Application window specific NetWM hints.
*/
Atom _ecore_x_atom_net_wm_desktop = 0;
Atom _ecore_x_atom_net_wm_name = 0;
Atom _ecore_x_atom_net_wm_visible_name = 0;
Atom _ecore_x_atom_net_wm_icon_name = 0;
Atom _ecore_x_atom_net_wm_visible_icon_name = 0;
Atom _ecore_x_atom_net_wm_window_type = 0;
Atom _ecore_x_atom_net_wm_state = 0;
Atom _ecore_x_atom_net_wm_allowed_actions = 0;
Atom _ecore_x_atom_net_wm_strut = 0;
Atom _ecore_x_atom_net_wm_strut_partial = 0;
Atom _ecore_x_atom_net_wm_icon_geometry = 0;
Atom _ecore_x_atom_net_wm_icon = 0;
Atom _ecore_x_atom_net_wm_pid = 0;
Atom _ecore_x_atom_net_wm_handle_icons = 0;
Atom _ecore_x_atom_net_wm_user_time = 0;
Atom _ecore_x_atom_net_wm_window_type_desktop = 0;
Atom _ecore_x_atom_net_wm_window_type_dock = 0;
Atom _ecore_x_atom_net_wm_window_type_toolbar = 0;
Atom _ecore_x_atom_net_wm_window_type_menu = 0;
Atom _ecore_x_atom_net_wm_window_type_utility = 0;
Atom _ecore_x_atom_net_wm_window_type_splash = 0;
Atom _ecore_x_atom_net_wm_window_type_dialog = 0;
Atom _ecore_x_atom_net_wm_window_type_normal = 0;
Atom _ecore_x_atom_net_wm_state_modal = 0;
Atom _ecore_x_atom_net_wm_state_sticky = 0;
Atom _ecore_x_atom_net_wm_state_maximized_vert = 0;
Atom _ecore_x_atom_net_wm_state_maximized_horz = 0;
Atom _ecore_x_atom_net_wm_state_shaded = 0;
Atom _ecore_x_atom_net_wm_state_skip_taskbar = 0;
Atom _ecore_x_atom_net_wm_state_skip_pager = 0;
Atom _ecore_x_atom_net_wm_state_hidden = 0;
Atom _ecore_x_atom_net_wm_state_fullscreen = 0;
Atom _ecore_x_atom_net_wm_state_above = 0;
Atom _ecore_x_atom_net_wm_state_below = 0;
Atom _ecore_x_atom_net_wm_window_opacity = 0;
Atom _ecore_x_atom_file_name = 0;
Atom _ecore_x_atom_string = 0;
Atom _ecore_x_atom_text = 0;
Atom _ecore_x_atom_utf8_string = 0;
Atom _ecore_x_atom_compound_text = 0;
Atom _ecore_x_atoms_wm_protocols[ECORE_X_WM_PROTOCOL_NUM];
/* Xdnd atoms that need to be exposed to the application interface */
Ecore_X_Atom ECORE_X_DND_ACTION_COPY = 0;
Ecore_X_Atom ECORE_X_DND_ACTION_MOVE = 0;
@ -372,6 +315,13 @@ ecore_x_init(const char *name)
return 0;
}
_ecore_x_filter_handler = ecore_event_filter_add(_ecore_x_event_filter_start, _ecore_x_event_filter_filter, _ecore_x_event_filter_end, NULL);
_ecore_x_atom_compound_text = XInternAtom(_ecore_x_disp, "COMPOUND_TEXT", False);
_ecore_x_atom_utf8_string = XInternAtom(_ecore_x_disp, "UTF8_STRING", False);
_ecore_x_atom_file_name = XInternAtom(_ecore_x_disp, "FILE_NAME", False);
_ecore_x_atom_string = XInternAtom(_ecore_x_disp, "STRING", False);
_ecore_x_atom_text = XInternAtom(_ecore_x_disp, "TEXT", False);
_ecore_x_atom_wm_state = XInternAtom(_ecore_x_disp, "WM_STATE", False);
_ecore_x_atom_wm_delete_window = XInternAtom(_ecore_x_disp, "WM_DELETE_WINDOW", False);
_ecore_x_atom_wm_take_focus = XInternAtom(_ecore_x_disp, "WM_TAKE_FOCUS", False);
@ -393,6 +343,9 @@ ecore_x_init(const char *name)
_ecore_x_atom_win_layer = XInternAtom(_ecore_x_disp, "_WIN_LAYER", False);
/* Set up the _NET_... hints */
ecore_x_netwm_init();
/* This is just to be anal about naming conventions */
_ecore_x_atom_selection_primary = XA_PRIMARY;
_ecore_x_atom_selection_secondary = XA_SECONDARY;
@ -425,67 +378,6 @@ ecore_x_init(const char *name)
ECORE_X_DND_ACTION_LINK = _ecore_x_atom_xdnd_action_link;
ECORE_X_DND_ACTION_ASK = _ecore_x_atom_xdnd_action_ask;
ECORE_X_DND_ACTION_PRIVATE = _ecore_x_atom_xdnd_action_private;
_ecore_x_atom_net_supported = XInternAtom(_ecore_x_disp, "_NET_SUPPORTED", False);
_ecore_x_atom_net_supporting_wm_check = XInternAtom(_ecore_x_disp, "_NET_SUPPORTING_WM_CHECK", False);
_ecore_x_atom_net_number_of_desktops = XInternAtom(_ecore_x_disp, "_NET_NUMBER_OF_DESKTOPS", False);
_ecore_x_atom_net_desktop_geometry = XInternAtom(_ecore_x_disp, "_NET_DESKTOP_GEOMETRY", False);
_ecore_x_atom_net_desktop_names = XInternAtom(_ecore_x_disp, "_NET_DESKTOP_NAMES", False);
_ecore_x_atom_net_current_desktop = XInternAtom(_ecore_x_disp, "_NET_CURRENT_DESKTOP", False);
_ecore_x_atom_net_desktop_viewport = XInternAtom(_ecore_x_disp, "_NET_DESKTOP_VIEWPORT", False);
_ecore_x_atom_net_workarea = XInternAtom(_ecore_x_disp, "_NET_WORKAREA", False);
_ecore_x_atom_net_virtual_roots = XInternAtom(_ecore_x_disp, "_NET_VIRTUAL_ROOTS", False);
_ecore_x_atom_net_client_list = XInternAtom(_ecore_x_disp, "_NET_CLIENT_LIST", False);
_ecore_x_atom_net_client_list_stacking = XInternAtom(_ecore_x_disp, "_NET_CLIENT_LIST_STACKING", False);
_ecore_x_atom_net_active_window = XInternAtom(_ecore_x_disp, "_NET_ACTIVE_WINDOW", False);
_ecore_x_atom_net_close_window = XInternAtom(_ecore_x_disp, "_NET_CLOSE_WINDOW", False);
_ecore_x_atom_net_wm_moveresize = XInternAtom(_ecore_x_disp, "_NET_WM_MOVERESIZE", False);
_ecore_x_atom_net_wm_name = XInternAtom(_ecore_x_disp, "_NET_WM_NAME", False);
_ecore_x_atom_net_wm_visible_name = XInternAtom(_ecore_x_disp, "_NET_WM_VISIBLE_NAME", False);
_ecore_x_atom_net_wm_icon_name = XInternAtom(_ecore_x_disp, "_NET_WM_ICON_NAME", False);
_ecore_x_atom_net_wm_visible_icon_name = XInternAtom(_ecore_x_disp, "_NET_WM_VISIBLE_ICON_NAME", False);
_ecore_x_atom_net_wm_desktop = XInternAtom(_ecore_x_disp, "_NET_WM_DESKTOP", False);
_ecore_x_atom_net_wm_window_type = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE", False);
_ecore_x_atom_net_wm_state = XInternAtom(_ecore_x_disp, "_NET_WM_STATE", False);
_ecore_x_atom_net_wm_allowed_actions = XInternAtom(_ecore_x_disp, "_NET_WM_ALLOWED_ACTIONS", False);
_ecore_x_atom_net_wm_strut = XInternAtom(_ecore_x_disp, "_NET_WM_STRUT", False);
_ecore_x_atom_net_wm_strut_partial = XInternAtom(_ecore_x_disp, "_NET_WM_STRUT_PARTIAL", False);
_ecore_x_atom_net_wm_icon_geometry = XInternAtom(_ecore_x_disp, "_NET_WM_ICON_GEOMETRY", False);
_ecore_x_atom_net_wm_icon = XInternAtom(_ecore_x_disp, "_NET_WM_ICON", False);
_ecore_x_atom_net_wm_pid = XInternAtom(_ecore_x_disp, "_NET_WM_PID", False);
_ecore_x_atom_net_wm_user_time = XInternAtom(_ecore_x_disp, "_NET_WM_USER_TIME", False);
_ecore_x_atom_net_wm_window_type_desktop = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_DESKTOP", False);
_ecore_x_atom_net_wm_window_type_dock = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_DOCK", False);
_ecore_x_atom_net_wm_window_type_toolbar = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_TOOLBAR", False);
_ecore_x_atom_net_wm_window_type_menu = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_MENU", False);
_ecore_x_atom_net_wm_window_type_utility = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_UTILITY", False);
_ecore_x_atom_net_wm_window_type_splash = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_SPLASH", False);
_ecore_x_atom_net_wm_window_type_dialog = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_DIALOG", False);
_ecore_x_atom_net_wm_window_type_normal = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_TYPE_NORMAL", False);
_ecore_x_atom_net_wm_state_modal = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_MODAL", False);
_ecore_x_atom_net_wm_state_sticky = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_STICKY", False);
_ecore_x_atom_net_wm_state_maximized_vert = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_MAXIMIZED_VERT", False);
_ecore_x_atom_net_wm_state_maximized_horz = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_MAXIMIZED_HORZ", False);
_ecore_x_atom_net_wm_state_shaded = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_SHADED", False);
_ecore_x_atom_net_wm_state_skip_taskbar = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_SKIP_TASKBAR", False);
_ecore_x_atom_net_wm_state_skip_pager = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_SKIP_PAGER", False);
_ecore_x_atom_net_wm_state_hidden = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_HIDDEN", False);
_ecore_x_atom_net_wm_state_fullscreen = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_FULLSCREEN", False);
_ecore_x_atom_net_wm_state_above = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_ABOVE", False);
_ecore_x_atom_net_wm_state_below = XInternAtom(_ecore_x_disp, "_NET_WM_STATE_BELOW", False);
_ecore_x_atom_net_wm_window_opacity = XInternAtom(_ecore_x_disp, "_NET_WM_WINDOW_OPACITY", False);
_ecore_x_atom_compound_text = XInternAtom(_ecore_x_disp, "COMPOUND_TEXT", False);
_ecore_x_atom_utf8_string = XInternAtom(_ecore_x_disp, "UTF8_STRING", False);
_ecore_x_atom_file_name = XInternAtom(_ecore_x_disp, "FILE_NAME", False);
_ecore_x_atom_string = XInternAtom(_ecore_x_disp, "STRING", False);
_ecore_x_atom_text = XInternAtom(_ecore_x_disp, "TEXT", False);
_ecore_x_atoms_wm_protocols[ECORE_X_WM_PROTOCOL_DELETE_REQUEST] = _ecore_x_atom_wm_delete_window;
_ecore_x_atoms_wm_protocols[ECORE_X_WM_PROTOCOL_TAKE_FOCUS] = _ecore_x_atom_wm_take_focus;

View File

@ -8,6 +8,9 @@
/*
* Convenience macros
*/
#define _ATOM_GET(name) \
XInternAtom(_ecore_x_disp, name, False)
#define _ATOM_SET_UTF8_STRING(atom, win, string) \
XChangeProperty(_ecore_x_disp, win, atom, _ecore_x_atom_utf8_string, 8, PropModeReplace, \
(unsigned char *)string, strlen(string))
@ -24,51 +27,150 @@
XChangeProperty(_ecore_x_disp, win, atom, XA_CARDINAL, 32, PropModeReplace, \
(unsigned char *)p_val, cnt)
#if 0
/*
* All netwm atoms could be moved to here. Otherwise remove this.
*/
Atom _ecore_x_atom_net_number_of_desktops;
Atom _ecore_x_atom_net_virtual_roots;
Atom _ecore_x_atom_net_desktop_names;
Atom _ecore_x_atom_net_desktop_geometry;
Atom _ecore_x_atom_net_workarea;
Atom _ecore_x_atom_net_current_desktop;
Atom _ecore_x_atom_net_desktop_viewport;
Atom _ecore_x_atom_net_showing_desktop;
Atom _ecore_x_atom_net_client_list;
Atom _ecore_x_atom_net_client_list_stacking;
Atom _ecore_x_atom_net_active_window;
/*
* Root window NetWM hints.
*/
Atom _ecore_x_atom_net_supported = 0;
Atom _ecore_x_atom_net_supporting_wm_check = 0;
Atom _ecore_x_atom_net_number_of_desktops = 0;
Atom _ecore_x_atom_net_virtual_roots = 0;
Atom _ecore_x_atom_net_desktop_names = 0;
Atom _ecore_x_atom_net_desktop_geometry = 0;
Atom _ecore_x_atom_net_desktop_viewport = 0;
Atom _ecore_x_atom_net_workarea = 0;
Atom _ecore_x_atom_net_desktop_layout = 0;
Atom _ecore_x_atom_net_current_desktop = 0;
Atom _ecore_x_atom_net_showing_desktop = 0;
Atom _ecore_x_atom_net_client_list = 0;
Atom _ecore_x_atom_net_client_list_stacking = 0;
Atom _ecore_x_atom_net_active_window = 0;
/*
* Client message types.
*/
Atom _ecore_x_atom_net_close_window = 0;
Atom _ecore_x_atom_net_wm_moveresize = 0;
/*
* Application window specific NetWM hints.
*/
Atom _ecore_x_atom_net_wm_desktop = 0;
Atom _ecore_x_atom_net_wm_name = 0;
Atom _ecore_x_atom_net_wm_visible_name = 0;
Atom _ecore_x_atom_net_wm_icon_name = 0;
Atom _ecore_x_atom_net_wm_visible_icon_name = 0;
Atom _ecore_x_atom_net_wm_window_type = 0;
Atom _ecore_x_atom_net_wm_state = 0;
Atom _ecore_x_atom_net_wm_allowed_actions = 0;
Atom _ecore_x_atom_net_wm_strut = 0;
Atom _ecore_x_atom_net_wm_strut_partial = 0;
Atom _ecore_x_atom_net_wm_icon_geometry = 0;
Atom _ecore_x_atom_net_wm_icon = 0;
Atom _ecore_x_atom_net_wm_pid = 0;
Atom _ecore_x_atom_net_wm_handle_icons = 0;
Atom _ecore_x_atom_net_wm_user_time = 0;
Atom _ecore_x_atom_net_wm_window_type_desktop = 0;
Atom _ecore_x_atom_net_wm_window_type_dock = 0;
Atom _ecore_x_atom_net_wm_window_type_toolbar = 0;
Atom _ecore_x_atom_net_wm_window_type_menu = 0;
Atom _ecore_x_atom_net_wm_window_type_utility = 0;
Atom _ecore_x_atom_net_wm_window_type_splash = 0;
Atom _ecore_x_atom_net_wm_window_type_dialog = 0;
Atom _ecore_x_atom_net_wm_window_type_normal = 0;
Atom _ecore_x_atom_net_wm_state_modal = 0;
Atom _ecore_x_atom_net_wm_state_sticky = 0;
Atom _ecore_x_atom_net_wm_state_maximized_vert = 0;
Atom _ecore_x_atom_net_wm_state_maximized_horz = 0;
Atom _ecore_x_atom_net_wm_state_shaded = 0;
Atom _ecore_x_atom_net_wm_state_skip_taskbar = 0;
Atom _ecore_x_atom_net_wm_state_skip_pager = 0;
Atom _ecore_x_atom_net_wm_state_hidden = 0;
Atom _ecore_x_atom_net_wm_state_fullscreen = 0;
Atom _ecore_x_atom_net_wm_state_above = 0;
Atom _ecore_x_atom_net_wm_state_below = 0;
Atom _ecore_x_atom_net_wm_window_opacity = 0;
void
ecore_x_netwm_init(void)
{
_ecore_x_atom_net_number_of_desktops =
XInternAtom(_ecore_x_disp, "_NET_NUMBER_OF_DESKTOPS", False);
_ecore_x_atom_net_virtual_roots =
XInternAtom(_ecore_x_disp, "_NET_VIRTUAL_ROOTS", False);
_ecore_x_atom_net_desktop_names =
XInternAtom(_ecore_x_disp, "_NET_DESKTOP_NAMES", False);
_ecore_x_atom_net_desktop_geometry =
XInternAtom(_ecore_x_disp, "_NET_DESKTOP_GEOMETRY", False);
_ecore_x_atom_net_workarea =
XInternAtom(_ecore_x_disp, "_NET_WORKAREA", False);
_ecore_x_atom_net_current_desktop =
XInternAtom(_ecore_x_disp, "_NET_CURRENT_DESKTOP", False);
_ecore_x_atom_net_desktop_viewport =
XInternAtom(_ecore_x_disp, "_NET_DESKTOP_VIEWPORT", False);
_ecore_x_atom_net_showing_desktop =
XInternAtom(_ecore_x_disp, "_NET_SHOWING_DESKTOP", False);
_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_client_list =
XInternAtom(_ecore_x_disp, "_NET_CLIENT_LIST", False);
_ecore_x_atom_net_client_list_stacking =
XInternAtom(_ecore_x_disp, "_NET_CLIENT_LIST_STACKING", False);
_ecore_x_atom_net_active_window =
XInternAtom(_ecore_x_disp, "_NET_ACTIVE_WINDOW", False);
_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_current_desktop = _ATOM_GET("_NET_CURRENT_DESKTOP");
_ecore_x_atom_net_desktop_viewport = _ATOM_GET("_NET_DESKTOP_VIEWPORT");
_ecore_x_atom_net_workarea = _ATOM_GET("_NET_WORKAREA");
_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_active_window = _ATOM_GET("_NET_ACTIVE_WINDOW");
_ecore_x_atom_net_close_window = _ATOM_GET("_NET_CLOSE_WINDOW");
_ecore_x_atom_net_wm_moveresize = _ATOM_GET("_NET_WM_MOVERESIZE");
_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_state = _ATOM_GET("_NET_WM_STATE");
_ecore_x_atom_net_wm_allowed_actions = _ATOM_GET("_NET_WM_ALLOWED_ACTIONS");
_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_wm_icon_geometry = _ATOM_GET("_NET_WM_ICON_GEOMETRY");
_ecore_x_atom_net_wm_icon = _ATOM_GET("_NET_WM_ICON");
_ecore_x_atom_net_wm_pid = _ATOM_GET("_NET_WM_PID");
_ecore_x_atom_net_wm_user_time = _ATOM_GET("_NET_WM_USER_TIME");
_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_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_window_opacity = _ATOM_GET("_NET_WM_WINDOW_OPACITY");
}
#endif
/*
* WM identification
*/
void
ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check,
const char *wm_name)
{
_ATOM_SET_WINDOW(_ecore_x_atom_net_supporting_wm_check, root, &check, 1);
_ATOM_SET_WINDOW(_ecore_x_atom_net_supporting_wm_check, check, &check, 1);
_ATOM_SET_UTF8_STRING(_ecore_x_atom_net_wm_name, check, wm_name);
/* This one isn't mandatory */
_ATOM_SET_UTF8_STRING(_ecore_x_atom_net_wm_name, root, wm_name);
}
/*
* Desktop configuration and status