The diff below updates i3 to the latest version (4.5.1). works for me on my amd64 laptop and on my i386 netbook.
ciao, David Index: Makefile =================================================================== RCS file: /cvs/ports/x11/i3/Makefile,v retrieving revision 1.61 diff -u -p -u -p -r1.61 Makefile --- Makefile 11 Mar 2013 11:46:13 -0000 1.61 +++ Makefile 15 May 2013 18:49:57 -0000 @@ -2,8 +2,7 @@ COMMENT = improved dynamic tiling window manager -DISTNAME = i3-4.4 -REVISION = 6 +DISTNAME = i3-4.5.1 CATEGORIES = x11 EXTRACT_SUFX = .tar.bz2 @@ -14,13 +13,12 @@ MAINTAINER = David Coppa <dcoppa@openbsd # BSD PERMIT_PACKAGE_CDROM = Yes -WANTLIB = X11 Xcursor Xext Xrender c cairo ev expat \ - fontconfig freetype glib-2.0 gobject-2.0 m \ - pango-1.0 pangocairo-1.0 pangoft2-1.0 pcre \ - pixman-1 png pthread pthread-stubs \ - startup-notification-1 xcb xcb-atom xcb-aux \ - xcb-event xcb-icccm xcb-keysyms xcb-property \ - xcb-randr xcb-render xcb-shm xcb-xinerama yajl z +WANTLIB = X11 Xcursor c cairo ev fontconfig freetype \ + glib-2.0 gobject-2.0 m pango-1.0 pangocairo-1.0 \ + pangoft2-1.0 pcre pthread startup-notification-1 \ + xcb xcb-atom xcb-aux xcb-event xcb-icccm \ + xcb-keysyms xcb-property xcb-randr xcb-xinerama \ + yajl z MODULES = converters/libiconv \ devel/gettext @@ -31,9 +29,6 @@ LIB_DEPENDS = devel/libev \ devel/pcre \ devel/startup-notification -BUILD_DEPENDS = devel/bison \ - devel/flex - RUN_DEPENDS = devel/desktop-file-utils \ x11/dmenu \ x11/i3status @@ -43,8 +38,6 @@ USE_GMAKE = Yes NO_TEST = Yes MAKE_FLAGS = CC="${CC}" \ - BISON="${LOCALBASE}/bin/bison" \ - FLEX="${LOCALBASE}/bin/gflex" \ SYSCONFDIR=${SYSCONFDIR} \ V=1 @@ -60,23 +53,23 @@ FAKE_FLAGS = PREFIX=${PREFIX} \ post-configure: ${SUBST_CMD} ${WRKSRC}/i3-dmenu-desktop \ + ${WRKSRC}/i3-nagbar/main.c \ ${WRKSRC}/i3.config \ ${WRKSRC}/i3.config.keycodes \ - ${WRKSRC}/src/cfgparse.y \ ${WRKSRC}/src/commands.c \ - ${WRKSRC}/src/config.c \ - ${WRKSRC}/src/key_press.c + ${WRKSRC}/src/config.c post-install: ${INSTALL_MAN} ${WRKBUILD}/man/*.1 ${PREFIX}/man/man1/ - ${SUBST_CMD} -o ${SHAREOWN} -g ${SHAREGRP} \ + ${SUBST_CMD} -o ${SHAREOWN} -g ${SHAREGRP} -m ${MANMODE} \ -c ${WRKBUILD}/man/i3-config-wizard.1 \ ${PREFIX}/man/man1/i3-config-wizard.1 - ${SUBST_CMD} -o ${SHAREOWN} -g ${SHAREGRP} \ - -c ${WRKBUILD}/man/i3.1 \ - ${PREFIX}/man/man1/i3.1 - @rm ${PREFIX}/man/man1/i3-dmenu-desktop.1 \ - ${PREFIX}/man/man1/i3-dump-log.1 \ + ${SUBST_CMD} -o ${SHAREOWN} -g ${SHAREGRP} -m ${MANMODE} \ + -c ${WRKBUILD}/man/i3-dmenu-desktop.1 \ + ${PREFIX}/man/man1/i3-dmenu-desktop.1 + ${SUBST_CMD} -o ${SHAREOWN} -g ${SHAREGRP} -m ${MANMODE} \ + -c ${WRKBUILD}/man/i3.1 ${PREFIX}/man/man1/i3.1 + @rm ${PREFIX}/man/man1/i3-dump-log.1 \ ${PREFIX}/man/man1/i3-sensible*.1 .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/x11/i3/distinfo,v retrieving revision 1.12 diff -u -p -u -p -r1.12 distinfo --- distinfo 13 Dec 2012 12:10:13 -0000 1.12 +++ distinfo 15 May 2013 18:49:57 -0000 @@ -1,2 +1,2 @@ -SHA256 (i3-4.4.tar.bz2) = mYdXSeq21vWjBY8zJVMs0iOp+iJ3GlTC/QbA3tl/SBs= -SIZE (i3-4.4.tar.bz2) = 884182 +SHA256 (i3-4.5.1.tar.bz2) = uuVfHHxKIdcarhguT6tgOLplukvl0c7/niafT3S4I/I= +SIZE (i3-4.5.1.tar.bz2) = 878954 Index: patches/patch-i3-config-wizard_i3-config-wizard_mk =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-i3-config-wizard_i3-config-wizard_mk,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-i3-config-wizard_i3-config-wizard_mk --- patches/patch-i3-config-wizard_i3-config-wizard_mk 21 Sep 2012 17:16:14 -0000 1.1 +++ patches/patch-i3-config-wizard_i3-config-wizard_mk 15 May 2013 18:49:57 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-i3-config-wizard_i3-config-wizard_mk,v 1.1 2012/09/21 17:16:14 dcoppa Exp $ --- i3-config-wizard/i3-config-wizard.mk.orig Fri Sep 21 11:40:58 2012 +++ i3-config-wizard/i3-config-wizard.mk Fri Sep 21 11:42:00 2012 -@@ -30,7 +30,7 @@ i3-config-wizard/i3-config-wizard: libi3.a $(i3_config +@@ -21,7 +21,7 @@ i3-config-wizard/i3-config-wizard: libi3.a $(i3_config install-i3-config-wizard: i3-config-wizard/i3-config-wizard echo "[i3-config-wizard] Install" $(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/bin Index: patches/patch-i3-dmenu-desktop =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-i3-dmenu-desktop,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-i3-dmenu-desktop --- patches/patch-i3-dmenu-desktop 13 Dec 2012 12:10:13 -0000 1.1 +++ patches/patch-i3-dmenu-desktop 15 May 2013 18:49:57 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-i3-dmenu-desktop,v 1.1 2012/12/13 12:10:13 dcoppa Exp $ ---- i3-dmenu-desktop.orig Thu Dec 13 09:55:16 2012 -+++ i3-dmenu-desktop Thu Dec 13 10:00:16 2012 -@@ -88,7 +88,7 @@ $xdg_data_home = $ENV{HOME} . '/.local/share' if +--- i3-dmenu-desktop.orig Mon Mar 18 22:43:36 2013 ++++ i3-dmenu-desktop Mon May 13 08:27:23 2013 +@@ -103,7 +103,7 @@ $xdg_data_home = $ENV{HOME} . '/.local/share' if ! -d $xdg_data_home; my $xdg_data_dirs = $ENV{XDG_DATA_DIRS}; @@ -10,7 +10,7 @@ $OpenBSD: patch-i3-dmenu-desktop,v 1.1 2 !defined($xdg_data_dirs) || $xdg_data_dirs eq ''; -@@ -187,12 +187,12 @@ for my $file (values %desktops) { +@@ -204,12 +204,12 @@ for my $file (values %desktops) { # 'evince.desktop' => { # 'Exec' => 'evince %U', # 'Name' => 'Dokumentenbetrachter', @@ -25,7 +25,7 @@ $OpenBSD: patch-i3-dmenu-desktop,v 1.1 2 # } # }; -@@ -355,7 +355,7 @@ if (exists($app->{Terminal}) && $app->{Terminal}) { +@@ -404,7 +404,7 @@ if (exists($app->{Terminal}) && $app->{Terminal}) { # we need to create a temporary script that contains the full command line # as the syntax for starting commands with arguments varies from terminal # emulator to terminal emulator. @@ -34,7 +34,7 @@ $OpenBSD: patch-i3-dmenu-desktop,v 1.1 2 my ($fh, $filename) = tempfile(); binmode($fh, ':utf8'); say $fh <<EOT; -@@ -366,7 +366,7 @@ EOT +@@ -415,7 +415,7 @@ EOT close($fh); chmod 0755, $filename; @@ -43,7 +43,7 @@ $OpenBSD: patch-i3-dmenu-desktop,v 1.1 2 } else { # i3 executes applications by passing the argument to i3???s ???exec??? command # as-is to $SHELL -c. The i3 parser supports quoted strings: When a string -@@ -407,7 +407,7 @@ notifications. +@@ -456,7 +456,7 @@ notifications. The .desktop files are searched in $XDG_DATA_HOME/applications (by default $HOME/.local/share/applications) and in the "applications" subdirectory of each @@ -52,7 +52,7 @@ $OpenBSD: patch-i3-dmenu-desktop,v 1.1 2 Files with the same name in $XDG_DATA_HOME/applications take precedence over files in $XDG_DATA_DIRS, so that you can overwrite parts of the system-wide -@@ -421,7 +421,7 @@ file respectively) by appending it to the name of the +@@ -470,7 +470,7 @@ file respectively) by appending it to the name of the want to launch "GNU Emacs 24" with the patch /tmp/foobar.txt, you would type "emacs", press TAB, type " /tmp/foobar.txt" and press ENTER. Index: patches/patch-i3-input_main_c =================================================================== RCS file: patches/patch-i3-input_main_c diff -N patches/patch-i3-input_main_c --- patches/patch-i3-input_main_c 27 Dec 2012 19:58:05 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,58 +0,0 @@ -$OpenBSD: patch-i3-input_main_c,v 1.1 2012/12/27 19:58:05 dcoppa Exp $ - -Bugfix: restore input focus on exit() -(upstream git commit 5779f573e7316664e4bff9d3ff17a234edc9d337) - ---- i3-input/main.c.orig Wed Dec 12 00:08:22 2012 -+++ i3-input/main.c Thu Dec 27 15:08:34 2012 -@@ -54,6 +54,7 @@ static int limit; - xcb_window_t root; - xcb_connection_t *conn; - xcb_screen_t *root_screen; -+static xcb_get_input_focus_cookie_t focus_cookie; - - /* - * Having verboselog() and errorlog() is necessary when using libi3. -@@ -282,6 +283,24 @@ static int handle_key_press(void *ignored, xcb_connect - return 1; - } - -+/* -+ * Restores the X11 input focus to whereever it was before. -+ * This is necessary because i3-input's window has override_redirect=1 -+ * (unmanaged by the window manager) and thus i3-input changes focus itself. -+ * This function is called on exit(). -+ * -+ */ -+static void restore_input_focus(void) { -+ xcb_generic_error_t *error; -+ xcb_get_input_focus_reply_t *reply = xcb_get_input_focus_reply(conn, focus_cookie, &error); -+ if (error != NULL) { -+ fprintf(stderr, "[i3-input] ERROR: Could not restore input focus (X error %d)\n", error->error_code); -+ return; -+ } -+ xcb_set_input_focus(conn, XCB_INPUT_FOCUS_POINTER_ROOT, reply->focus, XCB_CURRENT_TIME); -+ xcb_flush(conn); -+} -+ - int main(int argc, char *argv[]) { - format = strdup("%s"); - socket_path = getenv("I3SOCK"); -@@ -357,6 +376,9 @@ int main(int argc, char *argv[]) { - if (!conn || xcb_connection_has_error(conn)) - die("Cannot open display\n"); - -+ /* Request the current InputFocus to restore when i3-input exits. */ -+ focus_cookie = xcb_get_input_focus(conn); -+ - root_screen = xcb_aux_get_screen(conn, screens); - root = root_screen->root; - -@@ -398,6 +420,7 @@ int main(int argc, char *argv[]) { - /* Set input focus (we have override_redirect=1, so the wm will not do - * this for us) */ - xcb_set_input_focus(conn, XCB_INPUT_FOCUS_POINTER_ROOT, win, XCB_CURRENT_TIME); -+ atexit(restore_input_focus); - - /* Grab the keyboard to get all input */ - xcb_flush(conn); Index: patches/patch-i3-nagbar_main_c =================================================================== RCS file: patches/patch-i3-nagbar_main_c diff -N patches/patch-i3-nagbar_main_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-i3-nagbar_main_c 15 May 2013 18:49:57 -0000 @@ -0,0 +1,12 @@ +$OpenBSD$ +--- i3-nagbar/main.c.orig Mon Mar 18 22:43:36 2013 ++++ i3-nagbar/main.c Mon May 13 08:33:49 2013 +@@ -165,7 +165,7 @@ static void handle_button_release(xcb_connection_t *co + fclose(script); + + char *terminal_cmd; +- sasprintf(&terminal_cmd, "i3-sensible-terminal -e %s", argv0); ++ sasprintf(&terminal_cmd, "${X11BASE}/bin/xterm -e %s", argv0); + printf("argv0 = %s\n", argv0); + printf("terminal_cmd = %s\n", terminal_cmd); + Index: patches/patch-i3bar_include_xcb_h =================================================================== RCS file: patches/patch-i3bar_include_xcb_h diff -N patches/patch-i3bar_include_xcb_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-i3bar_include_xcb_h 15 May 2013 18:49:57 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +Fix for our strange setup: up-to-date libxcb, older xcb-util. + +--- i3bar/include/xcb.h.orig Mon May 13 18:05:49 2013 ++++ i3bar/include/xcb.h Mon May 13 18:05:58 2013 +@@ -13,10 +13,6 @@ + #include <stdint.h> + //#include "outputs.h" + +-#ifdef XCB_COMPAT +-#define XCB_ATOM_CARDINAL CARDINAL +-#endif +- + #define _NET_SYSTEM_TRAY_ORIENTATION_HORZ 0 + #define _NET_SYSTEM_TRAY_ORIENTATION_VERT 1 + #define SYSTEM_TRAY_REQUEST_DOCK 0 Index: patches/patch-include_atoms_xmacro =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-include_atoms_xmacro,v retrieving revision 1.2 diff -u -p -u -p -r1.2 patch-include_atoms_xmacro --- patches/patch-include_atoms_xmacro 21 Sep 2012 17:16:14 -0000 1.2 +++ patches/patch-include_atoms_xmacro 15 May 2013 18:49:57 -0000 @@ -2,9 +2,9 @@ $OpenBSD: patch-include_atoms_xmacro,v 1 OpenBSD lacks POSIX shared memory support (shm_open() and friends) ---- include/atoms.xmacro.orig Wed Sep 19 18:08:09 2012 -+++ include/atoms.xmacro Thu Sep 20 14:12:10 2012 -@@ -26,5 +26,7 @@ xmacro(WM_WINDOW_ROLE) +--- include/atoms.xmacro.orig Mon Mar 18 22:43:36 2013 ++++ include/atoms.xmacro Mon May 13 08:27:23 2013 +@@ -27,5 +27,7 @@ xmacro(WM_WINDOW_ROLE) xmacro(I3_SOCKET_PATH) xmacro(I3_CONFIG_PATH) xmacro(I3_SYNC) Index: patches/patch-include_xcb_compat_h =================================================================== RCS file: patches/patch-include_xcb_compat_h diff -N patches/patch-include_xcb_compat_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-include_xcb_compat_h 15 May 2013 18:49:57 -0000 @@ -0,0 +1,21 @@ +$OpenBSD$ + +Fix for our strange setup: up-to-date libxcb, older xcb-util. + +--- include/xcb_compat.h.orig Mon May 13 17:59:30 2013 ++++ include/xcb_compat.h Mon May 13 18:01:03 2013 +@@ -34,14 +34,4 @@ + #define xcb_icccm_wm_hints_get_urgency xcb_wm_hints_get_urgency + #define xcb_icccm_get_wm_transient_for_from_reply xcb_get_wm_transient_for_from_reply + +-#define XCB_ATOM_CARDINAL CARDINAL +-#define XCB_ATOM_WINDOW WINDOW +-#define XCB_ATOM_WM_TRANSIENT_FOR WM_TRANSIENT_FOR +-#define XCB_ATOM_WM_NAME WM_NAME +-#define XCB_ATOM_WM_CLASS WM_CLASS +-#define XCB_ATOM_WM_HINTS WM_HINTS +-#define XCB_ATOM_ATOM ATOM +-#define XCB_ATOM_WM_NORMAL_HINTS WM_NORMAL_HINTS +-#define XCB_ATOM_STRING STRING +- + #endif Index: patches/patch-libi3_ipc_send_message_c =================================================================== RCS file: patches/patch-libi3_ipc_send_message_c diff -N patches/patch-libi3_ipc_send_message_c --- patches/patch-libi3_ipc_send_message_c 10 Jan 2013 08:20:52 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,41 +0,0 @@ -$OpenBSD: patch-libi3_ipc_send_message_c,v 1.1 2013/01/10 08:20:52 dcoppa Exp $ - -From f5b7bfb12ef74ddbf250e5076bbfaafd0027474c Mon Sep 17 00:00:00 2001 -From: Michael Stapelberg <mich...@stapelberg.de> -Date: Wed, 09 Jan 2013 17:11:03 +0000 -Subject: Bugfix: fix IPC messages writes with low buffer sizes (Thanks jasper, dcoppa) - -This fixes a problem where i3bar would exit due to malformed IPC -messages when switching between workspaces with some windows opened. - ---- libi3/ipc_send_message.c.orig Wed Dec 12 00:08:17 2012 -+++ libi3/ipc_send_message.c Thu Jan 10 09:07:13 2013 -@@ -10,6 +10,7 @@ - #include <unistd.h> - #include <stdint.h> - #include <err.h> -+#include <errno.h> - - #include <i3/ipc.h> - -@@ -38,14 +39,15 @@ int ipc_send_message(int sockfd, uint32_t message_size - memcpy(walk, payload, message_size); - - int sent_bytes = 0; -- int bytes_to_go = buffer_size; -- while (sent_bytes < bytes_to_go) { -- int n = write(sockfd, msg + sent_bytes, bytes_to_go); -- if (n == -1) -+ while (sent_bytes < buffer_size) { -+ int n = write(sockfd, msg + sent_bytes, buffer_size - sent_bytes); -+ if (n == -1) { -+ if (errno == EAGAIN) -+ continue; - return -1; -+ } - - sent_bytes += n; -- bytes_to_go -= n; - } - - return 0; Index: patches/patch-libi3_libi3_mk =================================================================== RCS file: patches/patch-libi3_libi3_mk diff -N patches/patch-libi3_libi3_mk --- patches/patch-libi3_libi3_mk 27 Dec 2012 19:58:05 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,16 +0,0 @@ -$OpenBSD: patch-libi3_libi3_mk,v 1.1 2012/12/27 19:58:05 dcoppa Exp $ - -Repect AR environment variable -(upstream git commit ef81bd183b579688b9f1a46a41c817b577d0b39e) - ---- libi3/libi3.mk.orig Thu Dec 27 15:01:05 2012 -+++ libi3/libi3.mk Thu Dec 27 15:01:40 2012 -@@ -14,7 +14,7 @@ libi3/%.o: libi3/%.c $(libi3_HEADERS) - - libi3.a: $(libi3_OBJECTS) - echo "[libi3] AR libi3.a" -- ar rcs $@ $^ $(libi3_LIBS) -+ $(AR) rcs $@ $^ $(libi3_LIBS) - - clean-libi3: - echo "[libi3] Clean" Index: patches/patch-man_i3-dmenu-desktop_1 =================================================================== RCS file: patches/patch-man_i3-dmenu-desktop_1 diff -N patches/patch-man_i3-dmenu-desktop_1 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-man_i3-dmenu-desktop_1 15 May 2013 18:49:57 -0000 @@ -0,0 +1,21 @@ +$OpenBSD$ +--- man/i3-dmenu-desktop.1.orig Wed May 15 09:09:28 2013 ++++ man/i3-dmenu-desktop.1 Wed May 15 09:12:05 2013 +@@ -89,7 +89,7 @@ notifications. + .PP + The .desktop files are searched in \f(CW$XDG_DATA_HOME\fR/applications (by default + \&\f(CW$HOME\fR/.local/share/applications) and in the \*(L"applications\*(R" subdirectory of each +-entry of \f(CW$XDG_DATA_DIRS\fR (by default /usr/local/share/:/usr/share/). ++entry of \f(CW$XDG_DATA_DIRS\fR (by default ${LOCALBASE}/share/). + .PP + Files with the same name in \f(CW$XDG_DATA_HOME\fR/applications take precedence over + files in \f(CW$XDG_DATA_DIRS\fR, so that you can overwrite parts of the system-wide +@@ -103,7 +103,7 @@ file respectively) by appending it to the name of the + want to launch \*(L"\s-1GNU\s0 Emacs 24\*(R" with the patch /tmp/foobar.txt, you would type + \&\*(L"emacs\*(R", press \s-1TAB\s0, type \*(L" /tmp/foobar.txt\*(R" and press \s-1ENTER\s0. + .PP +-\&.desktop files with Terminal=true are started using \fIi3\-sensible\-terminal\fR\|(1). ++\&.desktop files with Terminal=true are started using \fIxterm\fR\|(1). + .PP + \&.desktop files with NoDisplay=true or Hidden=true are skipped. + .PP Index: patches/patch-man_i3-migrate-config-to-v4_1 =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-man_i3-migrate-config-to-v4_1,v retrieving revision 1.7 diff -u -p -u -p -r1.7 patch-man_i3-migrate-config-to-v4_1 --- patches/patch-man_i3-migrate-config-to-v4_1 13 Dec 2012 12:10:13 -0000 1.7 +++ patches/patch-man_i3-migrate-config-to-v4_1 15 May 2013 18:49:57 -0000 @@ -2,14 +2,14 @@ $OpenBSD: patch-man_i3-migrate-config-to Fix fatal error: "argument count wrong: line arguments >= 2 (have 1)" ---- man/i3-migrate-config-to-v4.1.orig Thu Dec 13 10:12:44 2012 -+++ man/i3-migrate-config-to-v4.1 Thu Dec 13 10:13:03 2012 +--- man/i3-migrate-config-to-v4.1.orig Mon Mar 18 22:43:47 2013 ++++ man/i3-migrate-config-to-v4.1 Mon May 13 08:27:23 2013 @@ -7,7 +7,7 @@ - .\" Source: i3 4.4 + .\" Source: i3 4.5.1 .\" Language: English .\" --.TH "I3\-MIGRATE\-CONFIG\" "1" "12/12/2012" "i3 4\&.4" "i3 Manual" -+.TH "I3\-MIGRATE\-CONFIG" "1" "12/12/2012" "i3 4\&.4" "i3 Manual" +-.TH "I3\-MIGRATE\-CONFIG\" "1" "03/18/2013" "i3 4\&.5\&.1" "i3 Manual" ++.TH "I3\-MIGRATE\-CONFIG" "1" "03/18/2013" "i3 4\&.5\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- Index: patches/patch-parser-specs_commands_spec =================================================================== RCS file: patches/patch-parser-specs_commands_spec diff -N patches/patch-parser-specs_commands_spec --- patches/patch-parser-specs_commands_spec 30 Jan 2013 22:19:43 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,33 +0,0 @@ -$OpenBSD: patch-parser-specs_commands_spec,v 1.3 2013/01/30 22:19:43 dcoppa Exp $ - -From cf830f69a2467b79454b6916ccfbbff45abf5418 Mon Sep 17 00:00:00 2001 -From: Steven Allen <ste...@stebalien.com> -Date: Tue, 29 Jan 2013 08:05:23 +0000 -Subject: Bugfix: Correctly parse `move ... workspace *_on_output` - -The parse spec for `move ... workspace ...` ordered next/prev before -next_on_output/prev_on_output causing the parser to match next/prev -before next_on_output/prev_on_output. - -Ticket: http://bugs.i3wm.org/report/ticket/941 - ---- parser-specs/commands.spec.orig Wed Dec 12 00:08:17 2012 -+++ parser-specs/commands.spec Wed Jan 30 22:08:08 2013 -@@ -223,7 +223,7 @@ state RENAME_WORKSPACE_NEW_NAME: - -> call cmd_rename_workspace($old_name, $new_name) - - # move <direction> [<pixels> [px]] --# move [window|container] [to] workspace [<str>|next|prev|current] -+# move [window|container] [to] workspace [<str>|next|prev|next_on_output|prev_on_output|current] - # move [window|container] [to] output <str> - # move [window|container] [to] scratchpad - # move workspace to [output] <str> -@@ -264,7 +264,7 @@ state MOVE_DIRECTION_PX: - state MOVE_WORKSPACE: - 'to' - -> MOVE_WORKSPACE_TO_OUTPUT -- workspace = 'next', 'prev', 'next_on_output', 'prev_on_output', 'current' -+ workspace = 'next_on_output', 'prev_on_output', 'next', 'prev', 'current' - -> call cmd_move_con_to_workspace($workspace) - 'back_and_forth' - -> call cmd_move_con_to_workspace_back_and_forth() Index: patches/patch-parser-specs_config_spec =================================================================== RCS file: patches/patch-parser-specs_config_spec diff -N patches/patch-parser-specs_config_spec --- patches/patch-parser-specs_config_spec 27 Jan 2013 18:33:20 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,58 +0,0 @@ -$OpenBSD: patch-parser-specs_config_spec,v 1.3 2013/01/27 18:33:20 dcoppa Exp $ - -Workaround for an error caused by xcb-util-0.3.6 -In file included from src/config_parser.c:49: -include/GENERATED_config_enums.h:70: error: 'FONT' redeclared as different kind of symbol -/usr/X11R6/include/xcb/xcb_atom.h:60: error: previous declaration of 'FONT' was here - -Bugfix: parse outputs as "word", not "string", to ignore trailing -whitespaces (upstream git commit 8bc771ac16362f05d98bf8b29877939d6edb3c91) - -Fix bind[code|sym] --release -(upstream git commit 6dfb08170cb1b0bd1875b80c85fbc225ff22274d) - ---- parser-specs/config.spec.orig Wed Dec 12 00:08:17 2012 -+++ parser-specs/config.spec Sun Jan 27 19:04:57 2013 -@@ -20,7 +20,7 @@ state INITIAL: - 'set' -> IGNORE_LINE - bindtype = 'bindsym', 'bindcode', 'bind' -> BINDING - 'bar' -> BARBRACE -- 'font' -> FONT -+ 'font' -> WINDOW_FONT - 'mode' -> MODENAME - 'floating_minimum_size' -> FLOATING_MINIMUM_SIZE_WIDTH - 'floating_maximum_size' -> FLOATING_MAXIMUM_SIZE_WIDTH -@@ -214,7 +214,7 @@ state WORKSPACE_OUTPUT: - -> WORKSPACE_OUTPUT_STR - - state WORKSPACE_OUTPUT_STR: -- output = string -+ output = word - -> call cfg_workspace($workspace, $output) - - # ipc-socket <path> -@@ -264,12 +264,14 @@ state EXEC: - -> call cfg_exec($exectype, $no_startup_id, $command) - - # font font --state FONT: -+state WINDOW_FONT: - font = string - -> call cfg_font($font) - - # bindsym/bindcode - state BINDING: -+ release = '--release' -+ -> - modifiers = 'Mod1', 'Mod2', 'Mod3', 'Mod4', 'Mod5', 'Shift', 'Control', 'Ctrl', 'Mode_switch' - -> - '+' -@@ -313,6 +315,8 @@ state MODE_IGNORE_LINE: - -> MODE - - state MODE_BINDING: -+ release = '--release' -+ -> - modifiers = 'Mod1', 'Mod2', 'Mod3', 'Mod4', 'Mod5', 'Shift', 'Control', 'Ctrl', 'Mode_switch' - -> - '+' Index: patches/patch-src_cfgparse_y =================================================================== RCS file: patches/patch-src_cfgparse_y diff -N patches/patch-src_cfgparse_y --- patches/patch-src_cfgparse_y 13 Dec 2012 12:10:13 -0000 1.7 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,24 +0,0 @@ -$OpenBSD: patch-src_cfgparse_y,v 1.7 2012/12/13 12:10:13 dcoppa Exp $ ---- src/cfgparse.y.orig Wed Dec 12 00:08:17 2012 -+++ src/cfgparse.y Thu Dec 13 09:45:54 2012 -@@ -328,16 +328,16 @@ static void start_configerror_nagbar(const char *confi - /* child */ - if (configerror_pid == 0) { - char *edit_command, *pager_command; -- sasprintf(&edit_command, "i3-sensible-editor \"%s\" && i3-msg reload\n", config_path); -- sasprintf(&pager_command, "i3-sensible-pager \"%s\"\n", errorfilename); -+ sasprintf(&edit_command, "/usr/bin/vi \"%s\" && i3-msg reload\n", config_path); -+ sasprintf(&pager_command, "/usr/bin/less \"%s\"\n", errorfilename); - if (!write_nagbar_script(edit_script_path, edit_command) || - !write_nagbar_script(pager_script_path, pager_command)) - return; - - char *editaction, - *pageraction; -- sasprintf(&editaction, "i3-sensible-terminal -e \"%s\"", edit_script_path); -- sasprintf(&pageraction, "i3-sensible-terminal -e \"%s\"", pager_script_path); -+ sasprintf(&editaction, "${X11BASE}/bin/xterm -e \"%s\"", edit_script_path); -+ sasprintf(&pageraction, "${X11BASE}/bin/xterm -e \"%s\"", pager_script_path); - char *argv[] = { - NULL, /* will be replaced by the executable path */ - "-t", Index: patches/patch-src_click_c =================================================================== RCS file: patches/patch-src_click_c diff -N patches/patch-src_click_c --- patches/patch-src_click_c 27 Dec 2012 19:58:05 -0000 1.8 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,25 +0,0 @@ -$OpenBSD: patch-src_click_c,v 1.8 2012/12/27 19:58:05 dcoppa Exp $ - -Fix scrolling on a tabbed titlebar which contains split cons -(upstream git commit 721fa7bdadac6d7f0c78f8c1eac0e66252ba2dc6) - ---- src/click.c.orig Wed Dec 12 00:08:17 2012 -+++ src/click.c Thu Dec 27 15:26:45 2012 -@@ -211,9 +211,16 @@ static int route_click(Con *con, xcb_button_press_even - event->detail == XCB_BUTTON_INDEX_5)) { - DLOG("Scrolling on a window decoration\n"); - orientation_t orientation = (con->parent->layout == L_STACKED ? VERT : HORIZ); -+ /* Focus the currently focused container on the same level that the -+ * user scrolled on. e.g. the tabbed decoration contains -+ * "urxvt | i3: V[xterm geeqie] | firefox", -+ * focus is on the xterm, but the user scrolled on urxvt. -+ * The splitv container will be focused. */ -+ Con *focused = con->parent; -+ focused = TAILQ_FIRST(&(focused->focus_head)); -+ con_focus(focused); - /* To prevent scrolling from going outside the container (see ticket - * #557), we first check if scrolling is possible at all. */ -- Con *focused = con_descend_focused(con->parent); - bool scroll_prev_possible = (TAILQ_PREV(focused, nodes_head, nodes) != NULL); - bool scroll_next_possible = (TAILQ_NEXT(focused, nodes) != NULL); - if (event->detail == XCB_BUTTON_INDEX_4 && scroll_prev_possible) Index: patches/patch-src_commands_c =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-src_commands_c,v retrieving revision 1.5 diff -u -p -u -p -r1.5 patch-src_commands_c --- patches/patch-src_commands_c 13 Dec 2012 12:10:13 -0000 1.5 +++ patches/patch-src_commands_c 15 May 2013 18:49:57 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-src_commands_c,v 1.5 2012/12/13 12:10:13 dcoppa Exp $ ---- src/commands.c.orig Wed Dec 12 00:08:17 2012 -+++ src/commands.c Thu Dec 13 09:45:54 2012 -@@ -182,7 +182,7 @@ void cmd_MIGRATION_start_nagbar(void) { +--- src/commands.c.orig Mon Mar 18 22:43:36 2013 ++++ src/commands.c Mon May 13 08:27:23 2013 +@@ -174,7 +174,7 @@ void cmd_MIGRATION_start_nagbar(void) { /* child */ if (migration_pid == 0) { char *pageraction; Index: patches/patch-src_config_c =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-src_config_c,v retrieving revision 1.10 diff -u -p -u -p -r1.10 patch-src_config_c --- patches/patch-src_config_c 25 Jan 2013 10:34:02 -0000 1.10 +++ patches/patch-src_config_c 15 May 2013 18:49:57 -0000 @@ -1,80 +1,7 @@ $OpenBSD: patch-src_config_c,v 1.10 2013/01/25 10:34:02 dcoppa Exp $ - -From 2eb4ed95bcd5f039014db51eb56f0ac411401fa5 Mon Sep 17 00:00:00 2001 -From: Michael Stapelberg <mich...@stapelberg.de> -Date: Thu, 24 Jan 2013 13:44:01 +0000 -Subject: Bugfix: fix "overlapping" --release key bindings (Thanks phlux) - ---- src/config.c.orig Wed Dec 12 00:08:17 2012 -+++ src/config.c Fri Jan 25 07:41:46 2013 -@@ -31,7 +31,7 @@ void ungrab_all_keys(xcb_connection_t *conn) { - } - - static void grab_keycode_for_binding(xcb_connection_t *conn, Binding *bind, uint32_t keycode) { -- DLOG("Grabbing %d\n", keycode); -+ DLOG("Grabbing %d with modifiers %d (with mod_mask_lock %d)\n", keycode, bind->mods, bind->mods | XCB_MOD_MASK_LOCK); - /* Grab the key in all combinations */ - #define GRAB_KEY(modifier) \ - do { \ -@@ -65,14 +65,6 @@ Binding *get_binding(uint16_t modifiers, bool key_rele - if (bind->release == B_UPON_KEYRELEASE_IGNORE_MODS) - bind->release = B_UPON_KEYRELEASE; - } -- -- /* Then we transition the KeyRelease bindings into a state where the -- * modifiers no longer matter for the KeyRelease event so that users -- * can release the modifier key before releasing the actual key. */ -- TAILQ_FOREACH(bind, bindings, bindings) { -- if (bind->release == B_UPON_KEYRELEASE && !key_release) -- bind->release = B_UPON_KEYRELEASE_IGNORE_MODS; -- } - } - - TAILQ_FOREACH(bind, bindings, bindings) { -@@ -84,23 +76,33 @@ Binding *get_binding(uint16_t modifiers, bool key_rele - !key_release)) - continue; - -- /* Check if the binding is for a KeyPress or a KeyRelease event */ -- if ((bind->release == B_UPON_KEYPRESS && key_release) || -- (bind->release >= B_UPON_KEYRELEASE && !key_release)) -- continue; -- - /* If a symbol was specified by the user, we need to look in - * the array of translated keycodes for the event???s keycode */ - if (bind->symbol != NULL) { - if (memmem(bind->translated_to, - bind->number_keycodes * sizeof(xcb_keycode_t), -- &keycode, sizeof(xcb_keycode_t)) != NULL) -- break; -+ &keycode, sizeof(xcb_keycode_t)) == NULL) -+ continue; - } else { - /* This case is easier: The user specified a keycode */ -- if (bind->keycode == keycode) -- break; -+ if (bind->keycode != keycode) -+ continue; - } -+ -+ /* If this keybinding is a KeyRelease binding, it matches the key which -+ * the user pressed. We therefore mark it as -+ * B_UPON_KEYRELEASE_IGNORE_MODS for later, so that the user can -+ * release the modifiers before the actual key and the KeyRelease will -+ * still be matched. */ -+ if (bind->release == B_UPON_KEYRELEASE && !key_release) -+ bind->release = B_UPON_KEYRELEASE_IGNORE_MODS; -+ -+ /* Check if the binding is for a KeyPress or a KeyRelease event */ -+ if ((bind->release == B_UPON_KEYPRESS && key_release) || -+ (bind->release >= B_UPON_KEYRELEASE && !key_release)) -+ continue; -+ -+ break; - } - - return (bind == TAILQ_END(bindings) ? NULL : bind); -@@ -254,7 +256,7 @@ static char *get_config_path(const char *override_conf +--- src/config.c.orig Mon Mar 18 22:43:36 2013 ++++ src/config.c Mon May 13 08:27:23 2013 +@@ -256,7 +256,7 @@ static char *get_config_path(const char *override_conf /* 4: check for $XDG_CONFIG_DIRS/i3/config */ if ((xdg_config_dirs = getenv("XDG_CONFIG_DIRS")) == NULL) Index: patches/patch-src_config_parser_c =================================================================== RCS file: patches/patch-src_config_parser_c diff -N patches/patch-src_config_parser_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_config_parser_c 15 May 2013 18:49:57 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ +--- src/config_parser.c.orig Mon Mar 18 22:43:36 2013 ++++ src/config_parser.c Mon May 13 08:32:19 2013 +@@ -1055,8 +1055,8 @@ void parse_file(const char *f) { + + char *editaction, + *pageraction; +- sasprintf(&editaction, "i3-sensible-editor \"%s\" && i3-msg reload\n", f); +- sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename); ++ sasprintf(&editaction, "/usr/bin/vi \"%s\" && i3-msg reload\n", f); ++ sasprintf(&pageraction, "/usr/bin/less \"%s\"\n", errorfilename); + char *argv[] = { + NULL, /* will be replaced by the executable path */ + "-f", Index: patches/patch-src_handlers_c =================================================================== RCS file: patches/patch-src_handlers_c diff -N patches/patch-src_handlers_c --- patches/patch-src_handlers_c 27 Dec 2012 19:58:05 -0000 1.11 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,19 +0,0 @@ -$OpenBSD: patch-src_handlers_c,v 1.11 2012/12/27 19:58:05 dcoppa Exp $ - -Bugfix: ignore ConfigureRequests for scratchpad windows -(upstream git commit 36b106a9d39727b06909113e3f11552f2f1b6abe) - ---- src/handlers.c.orig Wed Dec 12 00:08:17 2012 -+++ src/handlers.c Thu Dec 27 18:09:49 2012 -@@ -349,6 +349,11 @@ static void handle_configure_request(xcb_configure_req - } - Con *floatingcon = con->parent; - -+ if (strcmp(con_get_workspace(floatingcon)->name, "__i3_scratch") == 0) { -+ DLOG("This is a scratchpad container, ignoring ConfigureRequest\n"); -+ return; -+ } -+ - Rect newrect = floatingcon->rect; - - if (event->value_mask & XCB_CONFIG_WINDOW_X) { Index: patches/patch-src_i3_mk =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-src_i3_mk,v retrieving revision 1.2 diff -u -p -u -p -r1.2 patch-src_i3_mk --- patches/patch-src_i3_mk 13 Dec 2012 12:10:13 -0000 1.2 +++ patches/patch-src_i3_mk 15 May 2013 18:49:57 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-src_i3_mk,v 1.2 2012/12/13 12:10:13 dcoppa Exp $ ---- src/i3.mk.orig Thu Dec 13 10:15:15 2012 -+++ src/i3.mk Thu Dec 13 10:19:39 2012 -@@ -82,17 +82,14 @@ install-i3: i3 +--- src/i3.mk.orig Mon Mar 18 22:43:36 2013 ++++ src/i3.mk Mon May 13 08:27:23 2013 +@@ -73,17 +73,14 @@ install-i3: i3 $(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/include/i3 $(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/share/xsessions $(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/share/applications Index: patches/patch-src_key_press_c =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-src_key_press_c,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_key_press_c --- patches/patch-src_key_press_c 21 Sep 2012 17:16:14 -0000 1.1 +++ patches/patch-src_key_press_c 15 May 2013 18:49:57 -0000 @@ -1,18 +1,12 @@ $OpenBSD: patch-src_key_press_c,v 1.1 2012/09/21 17:16:14 dcoppa Exp $ --- src/key_press.c.orig Thu Sep 20 14:44:02 2012 +++ src/key_press.c Thu Sep 20 14:44:46 2012 -@@ -118,12 +118,12 @@ static void start_commanderror_nagbar(void) { - /* child */ - if (nagbar_pid == 0) { - char *pager_command; -- sasprintf(&pager_command, "i3-sensible-pager \"%s\"\n", errorfilename); -+ sasprintf(&pager_command, "/usr/bin/less \"%s\"\n", errorfilename); - if (!write_nagbar_script(pager_script_path, pager_command)) - return; - - char *pageraction; -- sasprintf(&pageraction, "i3-sensible-terminal -e \"%s\"", pager_script_path); -+ sasprintf(&pageraction, "${X11BASE}/bin/xterm -e \"%s\"", pager_script_path); - char *argv[] = { - NULL, /* will be replaced by the executable path */ - "-t", +@@ -142,7 +142,7 @@ void handle_key_press(xcb_key_press_event_t *event) { + } else { + if (command_failed) { + char *pageraction; +- sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename); ++ sasprintf(&pageraction, "/usr/bin/less \"%s\"\n", errorfilename); + char *argv[] = { + NULL, /* will be replaced by the executable path */ + "-f", Index: patches/patch-src_main_c =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-src_main_c,v retrieving revision 1.7 diff -u -p -u -p -r1.7 patch-src_main_c --- patches/patch-src_main_c 27 Dec 2012 19:58:05 -0000 1.7 +++ patches/patch-src_main_c 15 May 2013 18:49:58 -0000 @@ -2,12 +2,8 @@ $OpenBSD: patch-src_main_c,v 1.7 2012/12 OpenBSD lacks POSIX shared memory support (shm_open() and friends) -Bugfix: handle MapRequests sent between i3 registering as a wm and -handling events -(upstream git commit 625401d1628757a67a2ab4eeaa68be965683889c) - ---- src/main.c.orig Wed Dec 12 00:08:17 2012 -+++ src/main.c Thu Dec 27 19:02:25 2012 +--- src/main.c.orig Mon Mar 18 22:43:36 2013 ++++ src/main.c Mon May 13 08:27:23 2013 @@ -219,11 +219,13 @@ static void i3_exit(void) { ev_loop_destroy(main_loop); #endif @@ -72,7 +68,7 @@ handling events } else if (strcmp(long_options[option_index].name, "restart") == 0) { FREE(layout_path); layout_path = sstrdup(optarg); -@@ -399,11 +409,13 @@ int main(int argc, char *argv[]) { +@@ -398,11 +408,13 @@ int main(int argc, char *argv[]) { fprintf(stderr, "\t--get-socketpath\n" "\tRetrieve the i3 IPC socket path from X11, print it, then exit.\n"); fprintf(stderr, "\n"); @@ -86,7 +82,7 @@ handling events fprintf(stderr, "If you pass plain text arguments, i3 will interpret them as a command\n" "to send to a currently running i3 (like i3-msg). This allows you to\n" "use nice and logical commands, such as:\n" -@@ -473,8 +485,10 @@ int main(int argc, char *argv[]) { +@@ -474,8 +486,10 @@ int main(int argc, char *argv[]) { return 0; } @@ -97,24 +93,3 @@ handling events /* Try to enable core dumps by default when running a debug build */ if (is_debug_build()) { -@@ -777,6 +791,20 @@ int main(int argc, char *argv[]) { - xcb_aux_sync(conn); - xcb_generic_event_t *event; - while ((event = xcb_poll_for_event(conn)) != NULL) { -+ if (event->response_type == 0) { -+ free(event); -+ continue; -+ } -+ -+ /* Strip off the highest bit (set if the event is generated) */ -+ int type = (event->response_type & 0x7F); -+ -+ /* We still need to handle MapRequests which are sent in the -+ * timespan starting from when we register as a window manager and -+ * this piece of code which drops events. */ -+ if (type == XCB_MAP_REQUEST) -+ handle_event(type, event); -+ - free(event); - } - manage_existing_windows(root); Index: patches/patch-src_manage_c =================================================================== RCS file: patches/patch-src_manage_c diff -N patches/patch-src_manage_c --- patches/patch-src_manage_c 11 Jan 2013 09:44:12 -0000 1.11 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -$OpenBSD: patch-src_manage_c,v 1.11 2013/01/11 09:44:12 dcoppa Exp $ - -From 138e04fd4d50e5f80d445761de86c0c9617916b3 Mon Sep 17 00:00:00 2001 -From: Michael Stapelberg <mich...@stapelberg.de> -Date: Tue, 01 Jan 2013 15:31:08 +0000 -Subject: Bugfix: Fix for_window moving of assigned windows (Thanks bafain) - -This fixes a segfault when creating assigned and to be moved windows - ---- src/manage.c.orig Wed Dec 12 00:08:17 2012 -+++ src/manage.c Fri Jan 11 09:58:48 2013 -@@ -402,6 +402,10 @@ void manage_window(xcb_window_t window, xcb_get_window - /* Check if any assignments match */ - run_assignments(cwindow); - -+ /* 'ws' may be invalid because of the assignments, e.g. when the user uses -+ * "move window to workspace 1", but had it assigned to workspace 2. */ -+ ws = con_get_workspace(nc); -+ - /* If this window was put onto an invisible workspace (via assignments), we - * render this workspace. It wouldn???t be rendered in our normal code path - * because only the visible workspaces get rendered. Index: patches/patch-src_scratchpad_c =================================================================== RCS file: patches/patch-src_scratchpad_c diff -N patches/patch-src_scratchpad_c --- patches/patch-src_scratchpad_c 27 Jan 2013 18:33:20 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,34 +0,0 @@ -$OpenBSD: patch-src_scratchpad_c,v 1.1 2013/01/27 18:33:20 dcoppa Exp $ - -From 7be5ece6636f7a4c800ab0c5dd6289b38db7b435 Mon Sep 17 00:00:00 2001 -From: Michael Stapelberg <mich...@stapelberg.de> -Date: Fri, 25 Jan 2013 14:47:43 +0000 -Subject: Bugfix: fix coordinates of scratchpad windows on output changes (Thanks badboy) - ---- src/scratchpad.c.orig Wed Dec 12 00:08:17 2012 -+++ src/scratchpad.c Sun Jan 27 19:12:12 2013 -@@ -218,8 +218,24 @@ void scratchpad_fix_resolution(void) { - new_height = _lcm(new_height, output->rect.height); - } - } -+ -+ Rect old_rect = __i3_output->rect; -+ - DLOG("new width = %d, new height = %d\n", - new_width, new_height); - __i3_output->rect.width = new_width; - __i3_output->rect.height = new_height; -+ -+ Rect new_rect = __i3_output->rect; -+ -+ if (memcmp(&old_rect, &new_rect, sizeof(Rect)) == 0) { -+ DLOG("Scratchpad size unchanged.\n"); -+ return; -+ } -+ -+ DLOG("Fixing coordinates of scratchpad windows\n"); -+ Con *con; -+ TAILQ_FOREACH(con, &(__i3_scratch->floating_head), floating_windows) { -+ floating_fix_coordinates(con, &old_rect, &new_rect); -+ } - } Index: patches/patch-src_x_c =================================================================== RCS file: /cvs/ports/x11/i3/patches/patch-src_x_c,v retrieving revision 1.11 diff -u -p -u -p -r1.11 patch-src_x_c --- patches/patch-src_x_c 27 Dec 2012 19:58:05 -0000 1.11 +++ patches/patch-src_x_c 15 May 2013 18:49:58 -0000 @@ -1,30 +1,10 @@ $OpenBSD: patch-src_x_c,v 1.11 2012/12/27 19:58:05 dcoppa Exp $ -Bugfix: draw right tab border for split containers -(upstream git commit ae605bdd394bdf83a8015ac626b222fd40e35b04) - OpenBSD lacks POSIX shared memory support (shm_open() and friends) ---- src/x.c.orig Wed Dec 12 00:08:17 2012 -+++ src/x.c Thu Dec 27 15:19:49 2012 -@@ -505,7 +505,7 @@ void x_draw_decoration(Con *con) { - con->deco_rect.width - 2); - free(title); - -- goto copy_pixmaps; -+ goto after_title; - } - - if (win->name == NULL) -@@ -533,6 +533,7 @@ void x_draw_decoration(Con *con) { - con->deco_rect.x + 2 + indent_px, con->deco_rect.y + text_offset_y, - con->deco_rect.width - 2 - indent_px); - -+after_title: - /* Since we don???t clip the text at all, it might in some cases be painted - * on the border pixels on the right side of a window. Therefore, we draw - * the right border again after rendering the text (and the unconnected -@@ -1057,8 +1058,10 @@ void x_set_i3_atoms(void) { +--- src/x.c.orig Mon Mar 18 22:43:36 2013 ++++ src/x.c Mon May 13 08:27:23 2013 +@@ -1064,8 +1064,10 @@ void x_set_i3_atoms(void) { xcb_change_property(conn, XCB_PROP_MODE_REPLACE, root, A_I3_PID, XCB_ATOM_CARDINAL, 32, 1, &pid); xcb_change_property(conn, XCB_PROP_MODE_REPLACE, root, A_I3_CONFIG_PATH, A_UTF8_STRING, 8, strlen(current_configpath), current_configpath); Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/x11/i3/pkg/PLIST,v retrieving revision 1.6 diff -u -p -u -p -r1.6 PLIST --- pkg/PLIST 13 Dec 2012 12:10:14 -0000 1.6 +++ pkg/PLIST 15 May 2013 18:49:58 -0000 @@ -12,6 +12,7 @@ bin/i3-migrate-config-to-v4 include/i3/ include/i3/ipc.h @man man/man1/i3-config-wizard.1 +@man man/man1/i3-dmenu-desktop.1 @man man/man1/i3-input.1 @man man/man1/i3-migrate-config-to-v4.1 @man man/man1/i3-msg.1