Hi David (and ports@),

Since 4.14.1, $mod+e is broken. It has been reported upstream multiple
times:
https://github.com/i3/i3/issues/2846
https://github.com/i3/i3/issues/3026

I tried to backport the first chunk (see the patch inline) but it was
not enough, with the second chunk now it woks as before.

Comments? OK?

Cheers,
Daniel


Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/i3/Makefile,v
retrieving revision 1.110
diff -u -p -r1.110 Makefile
--- Makefile    21 Oct 2017 19:22:04 -0000      1.110
+++ Makefile    8 Nov 2017 17:39:45 -0000
@@ -3,7 +3,7 @@
 COMMENT =      improved dynamic tiling window manager
 
 DISTNAME =     i3-4.14.1
-REVISION =     0
+REVISION =     1
 CATEGORIES =   x11
 
 EXTRACT_SUFX = .tar.bz2
Index: patches/patch-src_con_c
===================================================================
RCS file: patches/patch-src_con_c
diff -N patches/patch-src_con_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_con_c     8 Nov 2017 17:39:45 -0000
@@ -0,0 +1,28 @@
+$OpenBSD$
+
+backport 
https://github.com/i3/i3/pull/2849/commits/c028f0cb173ebc4c7033c758c7f942adfbc224af
+an 
https://github.com/i3/i3/pull/2849/commits/26014ca1a22c1b862c782f4dfa3d40a5ab629627
+
+Index: src/con.c
+--- src/con.c.orig
++++ src/con.c
+@@ -1735,7 +1756,7 @@ void con_set_layout(Con *con, layout_t layout) {
+             con->workspace_layout = ws_layout;
+             DLOG("Setting layout to %d\n", layout);
+             con->layout = layout;
+-        } else if (layout == L_STACKED || layout == L_TABBED) {
++        } else if (layout == L_STACKED || layout == L_TABBED || layout == 
L_SPLITV || layout == L_SPLITH) {
+             DLOG("Creating new split container\n");
+             /* 1: create a new split container */
+             Con *new = con_new(NULL, NULL);
+@@ -1827,6 +1848,10 @@ void con_toggle_layout(Con *con, const char *toggle_mo
+                  * change to the opposite split layout. */
+                 if (parent->layout != L_SPLITH && parent->layout != L_SPLITV) 
{
+                     layout = parent->last_split_layout;
++                    /* In case last_split_layout was not initialized… */
++                    if (layout == L_DEFAULT) {
++                        layout = L_SPLITH;
++                    }
+                 } else {
+                     layout = (parent->layout == L_SPLITH) ? L_SPLITV : 
L_SPLITH;
+                 }

Reply via email to