File indexing completed on 2024-09-15 12:58:31
0001 /* 0002 KWin - the KDE window manager 0003 This file is part of the KDE project. 0004 0005 SPDX-FileCopyrightText: 1999, 2000 Matthias Ettrich <ettrich@kde.org> 0006 SPDX-FileCopyrightText: 2003 Lubos Lunak <l.lunak@kde.org> 0007 SPDX-FileCopyrightText: 2013 Martin Gräßlin <mgraesslin@kde.org> 0008 0009 SPDX-License-Identifier: GPL-2.0-or-later 0010 */ 0011 0012 #pragma once 0013 0014 #include "utils/xcbutils.h" 0015 0016 namespace KWin 0017 { 0018 0019 class KWIN_EXPORT Atoms 0020 { 0021 public: 0022 Atoms(); 0023 0024 Xcb::Atom activities; 0025 0026 Xcb::Atom wm_protocols; 0027 Xcb::Atom wm_delete_window; 0028 Xcb::Atom wm_take_focus; 0029 Xcb::Atom wm_change_state; 0030 Xcb::Atom wm_client_leader; 0031 Xcb::Atom wm_window_role; 0032 Xcb::Atom wm_state; 0033 Xcb::Atom sm_client_id; 0034 0035 Xcb::Atom motif_wm_hints; 0036 Xcb::Atom net_wm_context_help; 0037 Xcb::Atom net_wm_ping; 0038 Xcb::Atom net_wm_user_time; 0039 Xcb::Atom kde_net_wm_user_creation_time; 0040 Xcb::Atom net_wm_take_activity; 0041 Xcb::Atom net_wm_window_opacity; 0042 Xcb::Atom xdnd_selection; 0043 Xcb::Atom xdnd_aware; 0044 Xcb::Atom xdnd_enter; 0045 Xcb::Atom xdnd_type_list; 0046 Xcb::Atom xdnd_position; 0047 Xcb::Atom xdnd_status; 0048 Xcb::Atom xdnd_action_copy; 0049 Xcb::Atom xdnd_action_move; 0050 Xcb::Atom xdnd_action_ask; 0051 Xcb::Atom xdnd_drop; 0052 Xcb::Atom xdnd_leave; 0053 Xcb::Atom xdnd_finished; 0054 Xcb::Atom net_frame_extents; 0055 Xcb::Atom kde_net_wm_frame_strut; 0056 Xcb::Atom net_wm_sync_request_counter; 0057 Xcb::Atom net_wm_sync_request; 0058 Xcb::Atom kde_net_wm_shadow; 0059 Xcb::Atom kde_first_in_window_list; 0060 Xcb::Atom kde_color_sheme; 0061 Xcb::Atom kde_skip_close_animation; 0062 Xcb::Atom kde_screen_edge_show; 0063 Xcb::Atom utf8_string; 0064 Xcb::Atom text; 0065 Xcb::Atom uri_list; 0066 Xcb::Atom netscape_url; 0067 Xcb::Atom moz_url; 0068 Xcb::Atom wl_surface_id; 0069 Xcb::Atom wl_surface_serial; 0070 Xcb::Atom kde_net_wm_appmenu_service_name; 0071 Xcb::Atom kde_net_wm_appmenu_object_path; 0072 Xcb::Atom clipboard; 0073 Xcb::Atom timestamp; 0074 Xcb::Atom targets; 0075 Xcb::Atom delete_atom; 0076 Xcb::Atom incr; 0077 Xcb::Atom wl_selection; 0078 Xcb::Atom primary; 0079 Xcb::Atom edid; 0080 0081 /** 0082 * @internal 0083 */ 0084 void retrieveHelpers(); 0085 0086 private: 0087 // helper atoms we need to resolve to "announce" support (see #172028) 0088 Xcb::Atom m_dtSmWindowInfo; 0089 Xcb::Atom m_motifSupport; 0090 bool m_helpersRetrieved; 0091 }; 0092 0093 extern KWIN_EXPORT Atoms *atoms; 0094 0095 } // namespace