Browse Source

added togglefloat to hg tip (i consider this useful for some cases), using MODKEY-Shift-space as shortcut

arg@mig29 19 năm trước cách đây
mục cha
commit
46d5f9d1bf
4 tập tin đã thay đổi với 11 bổ sung0 xóa
  1. 1 0
      config.arg.h
  2. 1 0
      config.default.h
  3. 1 0
      dwm.h
  4. 8 0
      view.c

+ 1 - 0
config.arg.h

@@ -45,6 +45,7 @@ static Key key[] = { \
 	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	{ .i = 3 } }, \
 	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
 	{ MODKEY,			XK_space,	togglemode,	{ 0 } }, \
+	{ MODKEY|ShiftMask,		XK_space,	togglefloat,	{ 0 } }, \
 	{ MODKEY,			XK_0,		viewall,	{ 0 } }, \
 	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \
 	{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \

+ 1 - 0
config.default.h

@@ -42,6 +42,7 @@ static Key key[] = { \
 	{ MODKEY|ControlMask|ShiftMask,	XK_5,		toggletag,	{ .i = 4 } }, \
 	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
 	{ MODKEY,			XK_space,	togglemode,	{ 0 } }, \
+	{ MODKEY|ShiftMask,		XK_space,	togglefloat,	{ 0 } }, \
 	{ MODKEY,			XK_0,		viewall,	{ 0 } }, \
 	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \
 	{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \

+ 1 - 0
dwm.h

@@ -164,6 +164,7 @@ extern void focusprev(Arg *arg);		/* focuses previous visible client, arg is ign
 extern Bool isvisible(Client *c);		/* returns True if client is visible */
 extern void resizemaster(Arg *arg);		/* resizes the master percent with arg's index value */
 extern void restack(void);			/* restores z layers of all clients */
+extern void togglefloat(Arg *arg);		/* toggles selected client floating/tiled resp. */
 extern void togglemode(Arg *arg);		/* toggles global arrange function (dotile/dofloat) */
 extern void toggleview(Arg *arg);		/* toggles the tag with arg's index (in)visible */
 extern void view(Arg *arg);			/* views the tag with arg's index */

+ 8 - 0
view.c

@@ -200,6 +200,14 @@ restack(void) {
 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
 }
 
+void
+togglefloat(Arg *arg) {
+	if (!sel)
+		return;
+	sel->isfloat = !sel->isfloat;
+	arrange();
+}
+
 void
 togglemode(Arg *arg) {
 	arrange = (arrange == dofloat) ? dotile : dofloat;