2019-09-05 20:10:00 +00:00
|
|
|
#define SYSTEM_TRAY_REQUEST_DOCK 0
|
|
|
|
#define _NET_SYSTEM_TRAY_ORIENTATION_HORZ 0
|
|
|
|
|
|
|
|
/* XEMBED messages */
|
|
|
|
#define XEMBED_EMBEDDED_NOTIFY 0
|
|
|
|
#define XEMBED_WINDOW_ACTIVATE 1
|
|
|
|
#define XEMBED_FOCUS_IN 4
|
|
|
|
#define XEMBED_MODALITY_ON 10
|
|
|
|
|
|
|
|
#define XEMBED_MAPPED (1 << 0)
|
|
|
|
#define XEMBED_WINDOW_ACTIVATE 1
|
|
|
|
#define XEMBED_WINDOW_DEACTIVATE 2
|
|
|
|
|
|
|
|
#define VERSION_MAJOR 0
|
|
|
|
#define VERSION_MINOR 0
|
|
|
|
#define XEMBED_EMBEDDED_VERSION (VERSION_MAJOR << 16) | VERSION_MINOR
|
|
|
|
|
|
|
|
/* enums */
|
|
|
|
enum { Manager, Xembed, XembedInfo, XLast }; /* Xembed atoms */
|
|
|
|
|
|
|
|
typedef struct Systray Systray;
|
|
|
|
struct Systray {
|
|
|
|
Window win;
|
|
|
|
Client *icons;
|
2020-07-18 11:03:30 +00:00
|
|
|
Bar *bar;
|
2019-09-05 20:10:00 +00:00
|
|
|
};
|
|
|
|
|
2020-07-15 06:57:30 +00:00
|
|
|
/* bar integration */
|
2020-07-18 11:03:30 +00:00
|
|
|
static int width_systray(Bar *bar, BarWidthArg *a);
|
|
|
|
static int draw_systray(Bar *bar, BarDrawArg *a);
|
|
|
|
static int click_systray(Bar *bar, Arg *arg, BarClickArg *a);
|
2020-07-15 06:57:30 +00:00
|
|
|
|
2019-09-05 20:10:00 +00:00
|
|
|
/* function declarations */
|
|
|
|
static Atom getatomprop(Client *c, Atom prop);
|
|
|
|
static void removesystrayicon(Client *i);
|
|
|
|
static void resizerequest(XEvent *e);
|
|
|
|
static void updatesystrayicongeom(Client *i, int w, int h);
|
|
|
|
static void updatesystrayiconstate(Client *i, XPropertyEvent *ev);
|
|
|
|
static Client *wintosystrayicon(Window w);
|
|
|
|
|