diff --git a/.travis.yml b/.travis.yml index 9935cb631..81dd2b168 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ env: - secure: "uJuuefmnJUuEH15ZD8xQilibx7EeBvMHBLoIZ8bgGHeleEImBD0XbD1ypvhYJKpviOmw5BkZmc9bVO8DGDEHYbSlIa2xDlF6vGrwgCEaxcMIhOAhv+dW9C/maJVieLOEPM01/fK2qdKESZaLvlopkWmxZwDyMObI9L7AMW9zQD8=" # BINTRAY_USER - secure: "L3aPSNLySPXtWCW+xf8h/AAdquwNgxyTQpYOwexJmTPav82Qx8uQlp1yJkUmt+a+FLZDFfQeMivaHq0311RvuQVmkAJx49DjaddrwqOJut2UPsoVDn1WeuAcSHIXOq/0H+zgFMr/PGY0HXIsw1mTMhgheGJNqg09BvYWROCEAcA=" # BINTRAY_KEY - secure: "sBMVn4C/WRWgoAytEFGx4CC5O55Q63h02AcuBnb1jXcBm0RenoBpzUPtxSseJwDPUA1o/UkuEDDjm3PosT5NF+dvED01VDFMsPVE11K0u6+avYy3jYXqyUEDW3G2o6Wo/2aqNjmd++8jskBdS9+Cx9gaFbgxfzSp0Yfu3oJm/4c=" # GH_TOKEN + - secure: "HPMBtknjHM9CjaEoTVLiNtjg7JxmEZ+6AzqjT1LsA0e52dIlWzcRLVLL4uAR8SqMfR1iSj4lW74DzFXEnJCKa+04hiTp9Z/6zw/tX/mFOkkpz8H2gVttXh68NRHLJSJrRX/5fGCcl7AHypADBaoybjEmwjFxYRZ1Nwf81SwQVik=" # BALTO_TOKEN install: - if [ -a .git/shallow ]; then git fetch --unshallow; fi - docker pull ${BASENAME} || ./travis/docker-build-and-push.sh ${BASENAME} travis/travis-base.Dockerfile @@ -40,25 +41,9 @@ script: - ./travis/skip-pkg.sh || docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME_386} linux32 ./travis/debian-build.sh deb/debian-i386/DIST - ./travis/skip-pkg.sh || docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME_UBUNTU_386} linux32 ./travis/debian-build.sh deb/ubuntu-i386/DIST - ./travis/skip-pkg.sh || docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME} ./travis/docs.sh - - ./travis/skip-pkg.sh || travis/prep-bintray.sh + - ./travis/skip-pkg.sh || travis/push-balto.sh deploy: - - provider: bintray - file: travis/bintray-autobuild-debian.json - user: $BINTRAY_USER - key: $BINTRAY_KEY - skip_cleanup: true - on: - branch: next - condition: $CC = gcc - - provider: bintray - file: travis/bintray-autobuild-ubuntu.json - user: $BINTRAY_USER - key: $BINTRAY_KEY - skip_cleanup: true - on: - branch: next - condition: $CC = gcc - provider: script script: travis/deploy-github-pages.sh skip_cleanup: true @@ -66,6 +51,7 @@ deploy: branch: next condition: $CC = gcc -after_deploy: - - travis/cleanup-bintray.pl i3-autobuild - - travis/cleanup-bintray.pl i3-autobuild-ubuntu +# TODO: implement cleanup if we stick with balto +#after_deploy: +# - travis/cleanup-bintray.pl i3-autobuild +# - travis/cleanup-bintray.pl i3-autobuild-ubuntu diff --git a/RELEASE-NOTES-4.19.1 b/RELEASE-NOTES-4.19.2 similarity index 73% rename from RELEASE-NOTES-4.19.1 rename to RELEASE-NOTES-4.19.2 index 72e479c78..df859a8a2 100644 --- a/RELEASE-NOTES-4.19.1 +++ b/RELEASE-NOTES-4.19.2 @@ -1,6 +1,6 @@ ┌──────────────────────────────┐ - │ Release notes for i3 v4.19.1 │ + │ Release notes for i3 v4.19.2 │ └──────────────────────────────┘ This is i3 v4.19. This version is considered stable. All users of i3 are @@ -12,9 +12,7 @@ This is a bugfix release for v4.19 │ Bugfixes │ └────────────────────────────┘ - • fix workspaces not moving to assigned output after output becomes available - • fix duplicate bindcode after i3-config-wizard - • fix commented-out rofi call in default i3 config + • fix release tarball version number and debug log settings ┌────────────────────────────┐ │ Thanks! │ @@ -22,6 +20,6 @@ This is a bugfix release for v4.19 Thanks for testing, bugfixes, discussions and everything I forgot go out to: - Anaël Beutot, Imran Virani, Orestis Floros + Stuart Henderson --- Michael Stapelberg, 2021-02-01 +-- Michael Stapelberg, 2021-02-27 diff --git a/debian/changelog b/debian/changelog index 7d855a85b..e8d7c29d6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -i3-wm (4.19.1-1) unstable; urgency=medium +i3-wm (4.19.2-1) unstable; urgency=medium * New upstream release. - -- Michael Stapelberg Mon, 01 Feb 2021 09:00:07 +0100 + -- Michael Stapelberg Sat, 27 Feb 2021 10:32:17 +0100 i3-wm (4.19-1) unstable; urgency=medium diff --git a/include/libi3.h b/include/libi3.h index e693c3ad4..d17892f8b 100644 --- a/include/libi3.h +++ b/include/libi3.h @@ -445,18 +445,13 @@ bool font_is_pango(void); * specified coordinates (from the top left corner of the leftmost, uppermost * glyph) and using the provided gc. * + * The given cairo surface must refer to the specified X drawable. + * * Text must be specified as an i3String. * */ void draw_text(i3String *text, xcb_drawable_t drawable, xcb_gcontext_t gc, - xcb_visualtype_t *visual, int x, int y, int max_width); - -/** - * ASCII version of draw_text to print static strings. - * - */ -void draw_text_ascii(const char *text, xcb_drawable_t drawable, - xcb_gcontext_t gc, int x, int y, int max_width); + cairo_surface_t *surface, int x, int y, int max_width); /** * Predict the text width in pixels for the given text. Text must be diff --git a/libi3/draw_util.c b/libi3/draw_util.c index 313dc29ac..18cd0459c 100644 --- a/libi3/draw_util.c +++ b/libi3/draw_util.c @@ -133,7 +133,7 @@ void draw_util_text(i3String *text, surface_t *surface, color_t fg_color, color_ CAIRO_SURFACE_FLUSH(surface->surface); set_font_colors(surface->gc, fg_color, bg_color); - draw_text(text, surface->id, surface->gc, surface->visual_type, x, y, max_width); + draw_text(text, surface->id, surface->gc, surface->surface, x, y, max_width); /* Notify cairo that we (possibly) used another way to draw on the surface. */ cairo_surface_mark_dirty(surface->surface); diff --git a/libi3/font.c b/libi3/font.c index 477509d03..4b9d5128d 100644 --- a/libi3/font.c +++ b/libi3/font.c @@ -83,12 +83,10 @@ static bool load_pango_font(i3Font *font, const char *desc) { * */ static void draw_text_pango(const char *text, size_t text_len, - xcb_drawable_t drawable, xcb_visualtype_t *visual, int x, int y, - int max_width, bool pango_markup) { + xcb_drawable_t drawable, cairo_surface_t *surface, + int x, int y, int max_width, bool pango_markup) { /* Create the Pango layout */ /* root_visual_type is cached in load_pango_font */ - cairo_surface_t *surface = cairo_xcb_surface_create(conn, drawable, - visual, x + max_width, y + savedFont->height); cairo_t *cr = cairo_create(surface); PangoLayout *layout = create_layout_with_dpi(cr); gint height; @@ -116,7 +114,6 @@ static void draw_text_pango(const char *text, size_t text_len, /* Free resources */ g_object_unref(layout); cairo_destroy(cr); - cairo_surface_destroy(surface); } /* @@ -360,11 +357,8 @@ static void draw_text_xcb(const xcb_char2b_t *text, size_t text_len, xcb_drawabl * */ void draw_text(i3String *text, xcb_drawable_t drawable, xcb_gcontext_t gc, - xcb_visualtype_t *visual, int x, int y, int max_width) { + cairo_surface_t *surface, int x, int y, int max_width) { assert(savedFont != NULL); - if (visual == NULL) { - visual = root_visual_type; - } switch (savedFont->type) { case FONT_TYPE_NONE: @@ -377,42 +371,7 @@ void draw_text(i3String *text, xcb_drawable_t drawable, xcb_gcontext_t gc, case FONT_TYPE_PANGO: /* Render the text using Pango */ draw_text_pango(i3string_as_utf8(text), i3string_get_num_bytes(text), - drawable, visual, x, y, max_width, i3string_is_markup(text)); - return; - } -} - -/* - * ASCII version of draw_text to print static strings. - * - */ -void draw_text_ascii(const char *text, xcb_drawable_t drawable, - xcb_gcontext_t gc, int x, int y, int max_width) { - assert(savedFont != NULL); - - switch (savedFont->type) { - case FONT_TYPE_NONE: - /* Nothing to do */ - return; - case FONT_TYPE_XCB: { - size_t text_len = strlen(text); - if (text_len > 255) { - /* The text is too long to draw it directly to X */ - i3String *str = i3string_from_utf8(text); - draw_text(str, drawable, gc, NULL, x, y, max_width); - i3string_free(str); - } else { - /* X11 coordinates for fonts start at the baseline */ - int pos_y = y + savedFont->specific.xcb.info->font_ascent; - - xcb_image_text_8(conn, text_len, drawable, gc, x, pos_y, text); - } - break; - } - case FONT_TYPE_PANGO: - /* Render the text using Pango */ - draw_text_pango(text, strlen(text), - drawable, root_visual_type, x, y, max_width, false); + drawable, surface, x, y, max_width, i3string_is_markup(text)); return; } } diff --git a/meson.build b/meson.build index 8154bf342..8dcce213f 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project( 'i3', 'c', - version: '4.19.1', + version: '4.19.2', default_options: [ 'c_std=c11', 'warning_level=1', # enable all warnings (-Wall) diff --git a/travis/bintray-autobuild-debian.json b/travis/bintray-autobuild-debian.json deleted file mode 100644 index d01b7dbaa..000000000 --- a/travis/bintray-autobuild-debian.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "package": { - "name": "i3-wm", - "repo": "i3-autobuild", - "subject": "i3" - }, - - "version": { - "name": "%version%", - "desc": "TODO", - "gpgSign": false - }, - - "files": [ - { - "includePattern": "distbuild/deb/debian-amd64/(.*\\.deb)$", - "matrixParams": { - "deb_distribution": "sid", - "deb_component": "main", - "deb_architecture": "amd64" - }, - "uploadPattern": "$1" - }, - { - "includePattern": "distbuild/deb/debian-i386/(.*\\.deb)$", - "matrixParams": { - "deb_distribution": "sid", - "deb_component": "main", - "deb_architecture": "i386" - }, - "uploadPattern": "$1" - } - ], - - "publish": true -} diff --git a/travis/bintray-autobuild-ubuntu.json b/travis/bintray-autobuild-ubuntu.json deleted file mode 100644 index 4c0d6114c..000000000 --- a/travis/bintray-autobuild-ubuntu.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "package": { - "name": "i3-wm", - "repo": "i3-autobuild-ubuntu", - "subject": "i3" - }, - - "version": { - "name": "%version%", - "desc": "TODO", - "gpgSign": false - }, - - "files": [ - { - "includePattern": "distbuild/deb/ubuntu-amd64/(.*\\.deb)$", - "matrixParams": { - "deb_distribution": "bionic", - "deb_component": "main", - "deb_architecture": "amd64" - }, - "uploadPattern": "$1" - }, - { - "includePattern": "distbuild/deb/ubuntu-i386/(.*\\.deb)$", - "matrixParams": { - "deb_distribution": "bionic", - "deb_component": "main", - "deb_architecture": "i386" - }, - "uploadPattern": "$1" - } - ], - - "publish": true -} diff --git a/travis/prep-bintray.sh b/travis/prep-bintray.sh deleted file mode 100755 index 4ea56dcd4..000000000 --- a/travis/prep-bintray.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -set -e -set -x - -sed -i "s,%version%,$(git describe --tags),g" travis/bintray-autobuild-*.json diff --git a/travis/push-balto.sh b/travis/push-balto.sh new file mode 100755 index 000000000..ffa5ee15a --- /dev/null +++ b/travis/push-balto.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +for fn in distbuild/deb/debian-amd64/*.deb distbuild/deb/debian-i386/*.deb +do + echo "pushing $fn to balto" + curl \ + --header "Authorization: Bearer ${BALTO_TOKEN}" \ + --form "package=@${fn}" \ + --form distribution=all \ + https://i3.baltorepo.com/i3/i3-autobuild/upload/ +done + +for fn in distbuild/deb/ubuntu-amd64/*.deb distbuild/deb/ubuntu-i386/*.deb +do + echo "pushing $fn to balto" + curl \ + --header "Authorization: Bearer ${BALTO_TOKEN}" \ + --form "package=@${fn}" \ + --form distribution=all \ + https://i3.baltorepo.com/i3/i3-autobuild-ubuntu/upload/ +done