about summary refs log tree commit diff
path: root/patches/dwm-togglefullscreen.diff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/dwm-togglefullscreen.diff')
-rw-r--r--patches/dwm-togglefullscreen.diff51
1 files changed, 11 insertions, 40 deletions
diff --git a/patches/dwm-togglefullscreen.diff b/patches/dwm-togglefullscreen.diff
index 78de821..d91632b 100644
--- a/patches/dwm-togglefullscreen.diff
+++ b/patches/dwm-togglefullscreen.diff
@@ -1,22 +1,8 @@
-diff --git a/config.h b/config.h
-index 04fc97f..657e8f2 100644
---- a/config.h
-+++ b/config.h
-
- /* tagging */
-@@ -90,6 +90,7 @@ static Key keys[] = {
-        { MODKEY,                       XK_h,      setmfact,       {.f = -0.05} },
-        { MODKEY,                       XK_l,      setmfact,       {.f = +0.05} },
-        { MODKEY,                       XK_Return, zoom,           {0} },
-+       { MODKEY,                       XK_f,      togglefullscreen,  {0} },
-        { MODKEY,                       XK_Tab,    view,           {0} },
-        { MODKEY,                       XK_q,      killclient,     {0} },
-        /*
 diff --git a/dwm.c b/dwm.c
-index cdba5eb..c05ef8c 100644
+index 4465af1..7b63b1f 100644
 --- a/dwm.c
 +++ b/dwm.c
-@@ -218,6 +218,7 @@ static void tagmon(const Arg *arg);
+@@ -211,6 +211,7 @@ static void tagmon(const Arg *arg);
  static void tile(Monitor *);
  static void togglebar(const Arg *arg);
  static void togglefloating(const Arg *arg);
@@ -24,36 +10,21 @@ index cdba5eb..c05ef8c 100644
  static void toggletag(const Arg *arg);
  static void toggleview(const Arg *arg);
  static void unfocus(Client *c, int setfocus);
-
+@@ -1719,6 +1720,15 @@ togglefloating(const Arg *arg)
+        arrange(selmon);
+ }
 
 +void
 +togglefullscreen(const Arg *arg)
 +{
-+  if (!selmon->sel->isfullscreen) {
-+               XChangeProperty(dpy, selmon->sel->win, netatom[NetWMState], XA_ATOM, 32,
-+                       PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1);
-+               selmon->sel->isfullscreen = 1;
-+               selmon->sel->oldstate = selmon->sel->isfloating;
-+               selmon->sel->oldbw = selmon->sel->bw;
-+               selmon->sel->bw = 0;
-+               selmon->sel->isfloating = 1;
-+               resizeclient(selmon->sel, selmon->sel->mon->mx, selmon->sel->mon->my, selmon->sel->mon->mw, selmon->sel->mon->mh);
-+               XRaiseWindow(dpy, selmon->sel->win);
-+       } else if (selmon->sel->isfullscreen){
-+               XChangeProperty(dpy, selmon->sel->win, netatom[NetWMState], XA_ATOM, 32,
-+                       PropModeReplace, (unsigned char*)0, 0);
-+               selmon->sel->isfullscreen = 0;
-+               selmon->sel->isfloating = selmon->sel->oldstate;
-+               selmon->sel->bw = selmon->sel->oldbw;
-+               selmon->sel->x = selmon->sel->oldx;
-+               selmon->sel->y = selmon->sel->oldy;
-+               selmon->sel->w = selmon->sel->oldw;
-+               selmon->sel->h = selmon->sel->oldh;
-+               resizeclient(selmon->sel, selmon->sel->x, selmon->sel->y, selmon->sel->w, selmon->sel->h);
-+               arrange(selmon->sel->mon);
-+       }
++       if (!selmon->sel)
++               return;
++
++       setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
 +}
 +
  void
  toggletag(const Arg *arg)
  {
+--
+2.21.0