X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fserver.h;h=07876c6a2d08d592f7eb58844fb18c1fcd1d3fd6;hb=d753ad772192bbcaa656c172b0405f7be2de7b24;hp=5356229350db736b9d03ba0d119e39e93f673fc6;hpb=e177e2a5f09e5037eb4b16fd6d6a1dbfa22b9558;p=chaz%2Ftint2 diff --git a/src/server.h b/src/server.h index 5356229..07876c6 100644 --- a/src/server.h +++ b/src/server.h @@ -13,12 +13,19 @@ #include #include +#ifdef HAVE_SN +#include +#include +#endif + typedef struct Global_atom { Atom _XROOTPMAP_ID; + Atom _XROOTMAP_ID; Atom _NET_CURRENT_DESKTOP; Atom _NET_NUMBER_OF_DESKTOPS; + Atom _NET_DESKTOP_NAMES; Atom _NET_DESKTOP_GEOMETRY; Atom _NET_DESKTOP_VIEWPORT; Atom _NET_ACTIVE_WINDOW; @@ -37,22 +44,28 @@ typedef struct Global_atom Atom _NET_WM_DESKTOP; Atom WM_STATE; Atom _NET_WM_STATE; + Atom _NET_WM_STATE_MAXIMIZED_VERT; + Atom _NET_WM_STATE_MAXIMIZED_HORZ; Atom _NET_WM_STATE_SHADED; + Atom _NET_WM_STATE_HIDDEN; Atom _NET_WM_STATE_BELOW; + Atom _NET_WM_STATE_ABOVE; Atom _NET_WM_STATE_MODAL; Atom _NET_CLIENT_LIST; Atom _NET_WM_NAME; Atom _NET_WM_VISIBLE_NAME; Atom _NET_WM_STRUT; Atom _NET_WM_ICON; + Atom _NET_WM_ICON_GEOMETRY; Atom _NET_CLOSE_WINDOW; Atom UTF8_STRING; Atom _NET_SUPPORTING_WM_CHECK; - Atom _WIN_LAYER; + Atom _NET_WM_CM_S0; Atom _NET_WM_STRUT_PARTIAL; Atom WM_NAME; Atom __SWM_VROOT; Atom _MOTIF_WM_HINTS; + Atom WM_HINTS; Atom _NET_SYSTEM_TRAY_SCREEN; Atom _NET_SYSTEM_TRAY_OPCODE; Atom MANAGER; @@ -60,6 +73,19 @@ typedef struct Global_atom Atom _NET_SYSTEM_TRAY_ORIENTATION; Atom _XEMBED; Atom _XEMBED_INFO; + Atom _XSETTINGS_SCREEN; + Atom _XSETTINGS_SETTINGS; + Atom XdndAware; + Atom XdndEnter; + Atom XdndPosition; + Atom XdndStatus; + Atom XdndDrop; + Atom XdndLeave; + Atom XdndSelection; + Atom XdndTypeList; + Atom XdndActionCopy; + Atom XdndFinished; + Atom TARGETS; } Global_atom; @@ -70,6 +96,7 @@ typedef struct Monitor int y; int width; int height; + char** names; } Monitor; @@ -77,6 +104,8 @@ typedef struct { Display *dsp; Window root_win; + Window composite_manager; + int real_transparency; // current desktop int desktop; int screen; @@ -87,30 +116,40 @@ typedef struct Monitor *monitor; int got_root_win; Visual *visual; + Visual *visual32; // root background Pixmap root_pmap; GC gc; + Colormap colormap; + Colormap colormap32; Global_atom atom; +#ifdef HAVE_SN + SnDisplay *sn_dsp; + GTree *pids; +#endif // HAVE_SN } Server_global; Server_global server; -void send_event32 (Window win, Atom at, long data1, long data2); +// freed memory +void cleanup_server(); + +void send_event32 (Window win, Atom at, long data1, long data2, long data3); int get_property32 (Window win, Atom at, Atom type); void *server_get_property (Window win, Atom at, Atom type, int *num_results); Atom server_get_atom (char *atom_name); -void server_refresh_root_pixmap (); -void server_refresh_main_pixmap (); void server_catch_error (Display *d, XErrorEvent *ev); void server_init_atoms (); +void server_init_visual(); // detect root background void get_root_pixmap(); // detect monitors and desktops -void get_monitors_and_desktops(); +void get_monitors(); +void get_desktops(); #endif