Il 08 nov 2017 6:41 PM, "Daniel Jakots" <[email protected]> ha scritto:

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?


Sure, it's from upstream.
Ok with me


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