Adding fullscreen mode to tabbed.

This commit is contained in:
Christoph Lohmann 2012-12-03 21:28:02 +01:00
parent e70d87e83b
commit 29c5878d4c
3 changed files with 28 additions and 1 deletions

View file

@ -16,11 +16,13 @@ static Key keys[] = { \
/* modifier key function argument */
{ MODKEY|ShiftMask, XK_Return, focusonce, { 0 } },
{ MODKEY|ShiftMask, XK_Return, spawn, { 0 } },
{ MODKEY|ShiftMask, XK_l, rotate, { .i = +1 } },
{ MODKEY|ShiftMask, XK_h, rotate, { .i = -1 } },
{ MODKEY|ShiftMask, XK_j, movetab, { .i = -1 } },
{ MODKEY|ShiftMask, XK_k, movetab, { .i = +1 } },
{ MODKEY, XK_Tab, rotate, { .i = 0 } },
{ MODKEY, XK_1, move, { .i = 0 } },
{ MODKEY, XK_2, move, { .i = 1 } },
{ MODKEY, XK_3, move, { .i = 2 } },
@ -31,6 +33,9 @@ static Key keys[] = { \
{ MODKEY, XK_8, move, { .i = 7 } },
{ MODKEY, XK_9, move, { .i = 8 } },
{ MODKEY, XK_0, move, { .i = 9 } },
{ MODKEY, XK_q, killclient, { 0 } },
{ 0, XK_F11, fullscreen, { 0 } },
};

View file

@ -72,6 +72,9 @@ close tab
.TP
.B Ctrl\-[0..9]
jumps to nth tab
.TP
.B F11
Toggle fullscreen mode.
.SH EXAMPLES
$ tabbed surf -e
.TP

View file

@ -49,7 +49,8 @@
#define TEXTW(x) (textnw(x, strlen(x)) + dc.font.height)
enum { ColFG, ColBG, ColLast }; /* color */
enum { WMProtocols, WMDelete, WMName, XEmbed, WMLast }; /* default atoms */
enum { WMProtocols, WMDelete, WMName, WMState, WMFullscreen,
XEmbed, WMLast }; /* default atoms */
typedef union {
int i;
@ -103,6 +104,7 @@ static void expose(const XEvent *e);
static void focus(int c);
static void focusin(const XEvent *e);
static void focusonce(const Arg *arg);
static void fullscreen(const Arg *arg);
static int getclient(Window w);
static unsigned long getcolor(const char *colstr);
static int getfirsttab(void);
@ -463,6 +465,20 @@ focusonce(const Arg *arg) {
nextfocus = True;
}
void
fullscreen(const Arg *arg) {
XEvent e;
e.type = ClientMessage;
e.xclient.window = win;
e.xclient.message_type = wmatom[WMState];
e.xclient.format = 32;
e.xclient.data.l[0] = 2;
e.xclient.data.l[1] = wmatom[WMFullscreen];
e.xclient.data.l[2] = 0;
XSendEvent(dpy, root, False, SubstructureNotifyMask, &e);
}
int
getclient(Window w) {
int i;
@ -839,6 +855,9 @@ setup(void) {
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
wmatom[XEmbed] = XInternAtom(dpy, "_XEMBED", False);
wmatom[WMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
wmatom[WMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
wmatom[WMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN",
False);
/* init appearance */
wx = 0;