diff options
author | Yixun Lan <dlan@gentoo.org> | 2021-11-24 17:31:55 +0800 |
---|---|---|
committer | Yixun Lan <dlan@gentoo.org> | 2021-11-24 17:33:36 +0800 |
commit | 003bcb4ae9e303c8c491dac0e60ca8be2188e1c3 (patch) | |
tree | a401a27f7635c86416bc73404e3a4312919e3795 /app-i18n | |
parent | media-sound/mpg123: removed obsolete 1.29.0 (diff) | |
download | gentoo-003bcb4ae9e303c8c491dac0e60ca8be2188e1c3.tar.gz gentoo-003bcb4ae9e303c8c491dac0e60ca8be2188e1c3.tar.bz2 gentoo-003bcb4ae9e303c8c491dac0e60ca8be2188e1c3.zip |
app-i18n/ibus: fix wrong candidate window position issue
Closes: https://bugs.gentoo.org/824494
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Yixun Lan <dlan@gentoo.org>
Diffstat (limited to 'app-i18n')
-rw-r--r-- | app-i18n/ibus/files/ibus-1.5.25-ibusimcontext.patch | 35 | ||||
-rw-r--r-- | app-i18n/ibus/ibus-1.5.25-r1.ebuild | 194 |
2 files changed, 229 insertions, 0 deletions
diff --git a/app-i18n/ibus/files/ibus-1.5.25-ibusimcontext.patch b/app-i18n/ibus/files/ibus-1.5.25-ibusimcontext.patch new file mode 100644 index 000000000000..6187ff77fbac --- /dev/null +++ b/app-i18n/ibus/files/ibus-1.5.25-ibusimcontext.patch @@ -0,0 +1,35 @@ +https://github.com/ibus/ibus/issues/2337 +https://bugs.gentoo.org/824494 +--- +diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c +index da9a402..b1ccede 100644 +--- a/client/gtk2/ibusimcontext.c ++++ b/client/gtk2/ibusimcontext.c +@@ -1497,7 +1497,10 @@ _set_cursor_location_internal (IBusIMContext *ibusimcontext) + + #if GTK_CHECK_VERSION (3, 98, 4) + #elif GTK_CHECK_VERSION (2, 91, 0) +- area.y += gdk_window_get_height (ibusimcontext->client_window); ++ if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { ++ area.x = 0; ++ area.y += gdk_window_get_height (ibusimcontext->client_window); ++ } + #else + if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { + gint w, h; +diff --git a/client/gtk3/ibusimcontext.c b/client/gtk3/ibusimcontext.c +index da9a402..b1ccede 100644 +--- a/client/gtk3/ibusimcontext.c ++++ b/client/gtk3/ibusimcontext.c +@@ -1497,7 +1497,10 @@ _set_cursor_location_internal (IBusIMContext *ibusimcontext) + + #if GTK_CHECK_VERSION (3, 98, 4) + #elif GTK_CHECK_VERSION (2, 91, 0) +- area.y += gdk_window_get_height (ibusimcontext->client_window); ++ if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { ++ area.x = 0; ++ area.y += gdk_window_get_height (ibusimcontext->client_window); ++ } + #else + if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { + gint w, h; diff --git a/app-i18n/ibus/ibus-1.5.25-r1.ebuild b/app-i18n/ibus/ibus-1.5.25-r1.ebuild new file mode 100644 index 000000000000..e4d24fa2a59a --- /dev/null +++ b/app-i18n/ibus/ibus-1.5.25-r1.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +VALA_MIN_API_VERSION="0.34" +VALA_MAX_API_VERSION="0.50" +VALA_USE_DEPEND="vapigen" + +inherit autotools bash-completion-r1 gnome2-utils python-r1 vala virtualx xdg-utils + +GENTOO_VER= +DESCRIPTION="Intelligent Input Bus for Linux / Unix OS" +HOMEPAGE="https://github.com/ibus/ibus/wiki" + +[[ -n ${GENTOO_VER} ]] && \ + GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-gentoo-patches-${GENTOO_VER}.tar.xz" +SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.gz + ${GENTOO_PATCHSET_URI}" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="+X +emoji +gtk +gtk2 +introspection kde nls +python test +unicode vala wayland" +RESTRICT="!test? ( test )" +REQUIRED_USE="emoji? ( gtk ) + gtk2? ( gtk ) + kde? ( gtk ) + python? ( + ${PYTHON_REQUIRED_USE} + introspection + ) + test? ( gtk ) + vala? ( introspection )" + +CDEPEND="app-text/iso-codes + dev-libs/glib:2 + gnome-base/dconf + gnome-base/librsvg:2 + sys-apps/dbus[X?] + X? ( + x11-libs/libX11 + >=x11-libs/libXfixes-6.0.0 + !gtk? ( x11-libs/gtk+:2 ) + ) + gtk? ( + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/libXi + gtk2? ( x11-libs/gtk+:2 ) + ) + introspection? ( dev-libs/gobject-introspection ) + kde? ( dev-qt/qtgui:5 ) + nls? ( virtual/libintl ) + python? ( + ${PYTHON_DEPS} + dev-python/pygobject:3[${PYTHON_USEDEP}] + ) + wayland? ( + dev-libs/wayland + x11-libs/libxkbcommon + )" +RDEPEND="${CDEPEND} + python? ( + gtk? ( + x11-libs/gtk+:3[introspection] + ) + )" +DEPEND="${CDEPEND} + $(vala_depend) + dev-util/glib-utils + virtual/pkgconfig + x11-misc/xkeyboard-config + emoji? ( + app-i18n/unicode-cldr + app-i18n/unicode-emoji + ) + nls? ( sys-devel/gettext ) + unicode? ( app-i18n/unicode-data )" + +PATCHES=( "${FILESDIR}"/${P}-ibusimcontext.patch ) + +src_prepare() { + vala_src_prepare --ignore-use + sed -i "/UCD_DIR=/s/\$with_emoji_annotation_dir/\$with_ucd_dir/" configure.ac + if ! has_version 'x11-libs/gtk+:3[wayland]'; then + touch ui/gtk3/panelbinding.vala + fi + if ! use emoji; then + touch \ + tools/main.vala \ + ui/gtk3/panel.vala + fi + if ! use kde; then + touch ui/gtk3/panel.vala + fi + if [[ -n ${GENTOO_VER} ]]; then + einfo "Try to apply Gentoo specific patch set" + eapply "${WORKDIR}"/patches-gentoo/*.patch + fi + + # for multiple Python implementations + sed -i "s/^\(PYGOBJECT_DIR =\).*/\1/" bindings/Makefile.am + # fix for parallel install + sed -i "/^if ENABLE_PYTHON2/,/^endif/d" bindings/pygobject/Makefile.am + # require user interaction + sed -i "/^TESTS += ibus-\(compose\|keypress\)/d" src/tests/Makefile.am + + sed -i "/^bash_completion/d" tools/Makefile.am + + default + eautoreconf + xdg_environment_reset +} + +src_configure() { + local unicodedir="${EPREFIX}"/usr/share/unicode + local python_conf=() + if use python; then + python_setup + python_conf+=( + $(use_enable gtk setup) + --with-python=${EPYTHON} + ) + else + python_conf+=( --disable-setup ) + fi + + econf \ + $(use_enable X xim) \ + $(use_enable emoji emoji-dict) \ + $(use_with emoji unicode-emoji-dir "${unicodedir}"/emoji) \ + $(use_with emoji emoji-annotation-dir "${unicodedir}"/cldr/common/annotations) \ + $(use_enable gtk gtk3) \ + $(use_enable gtk ui) \ + $(use_enable gtk2) \ + $(use_enable introspection) \ + $(use_enable kde appindicator) \ + $(use_enable nls) \ + $(use_enable test tests) \ + $(use_enable unicode unicode-dict) \ + $(use_with unicode ucd-dir "${EPREFIX}/usr/share/unicode-data") \ + $(use_enable vala) \ + $(use_enable wayland) \ + "${python_conf[@]}" +} + +src_test() { + unset DBUS_SESSION_BUS_ADDRESS + virtx emake -j1 check +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die + + if use python; then + python_install() { + emake -C bindings/pygobject \ + pyoverridesdir="$(${EPYTHON} -c 'import gi; print(gi._overridesdir)')" \ + DESTDIR="${D}" \ + install + + python_optimize + } + python_foreach_impl python_install + fi + + keepdir /usr/share/ibus/engine + + newbashcomp tools/${PN}.bash ${PN} + + insinto /etc/X11/xinit/xinput.d + newins xinput-${PN} ${PN}.conf + + # Undo compression of man page + find "${ED}"/usr/share/man -type f -name '*.gz' -exec gzip -d {} \; || die +} + +pkg_postinst() { + use gtk && gnome2_query_immodules_gtk3 + use gtk2 && gnome2_query_immodules_gtk2 + xdg_icon_cache_update + gnome2_schemas_update + dconf update +} + +pkg_postrm() { + use gtk && gnome2_query_immodules_gtk3 + use gtk2 && gnome2_query_immodules_gtk2 + xdg_icon_cache_update + gnome2_schemas_update +} |