Added panel extension for emoji keybinding not to depen on desktops

This commit is contained in:
Takao Fujiwara 2018-02-21 16:07:48 +09:00
parent e8182c8672
commit 98919f74e3
6 changed files with 4242 additions and 51 deletions

1
.gitignore vendored
View File

@ -29,6 +29,7 @@
/ibus-po-1.5.9-20141001.tar.gz
/ibus-po-1.5.10-20150402.tar.gz
/ibus-po-1.5.14-20160909.tar.gz
/ibus-po-1.5.17-20180221.tar.gz
ibus-1.3.6.tar.gz
/ibus-1.3.7.tar.gz
/ibus-1.3.8.tar.gz

View File

@ -1,6 +1,6 @@
From 8ea0d3f25078c612b4b16c955c1c0c17e764d8c5 Mon Sep 17 00:00:00 2001
From 4ad2f160e2af0b71148b3f7726e71f26a107ff1c Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 27 Jul 2017 18:56:01 +0900
Date: Wed, 21 Feb 2018 15:05:18 +0900
Subject: [PATCH] bus: Fix SEGV in bus_panel_proxy_focus_in()
BUG=rhbz#1349148
@ -10,11 +10,11 @@ BUG=rhbz#1406699
BUG=rhbz#1432252
---
bus/dbusimpl.c | 38 ++++++++++++++++++++++++++++++++------
bus/ibusimpl.c | 22 +++++++++++++++++++---
2 files changed, 51 insertions(+), 9 deletions(-)
bus/ibusimpl.c | 21 ++++++++++++++++++---
2 files changed, 50 insertions(+), 9 deletions(-)
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
index b54ef81..e4dd868 100644
index b54ef817..e4dd8683 100644
--- a/bus/dbusimpl.c
+++ b/bus/dbusimpl.c
@@ -2,7 +2,8 @@
@ -124,41 +124,37 @@ index b54ef81..e4dd868 100644
if (incoming) {
/* is incoming message */
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
index f99307a..2d43ff6 100644
index 58d205cf..34f6c909 100644
--- a/bus/ibusimpl.c
+++ b/bus/ibusimpl.c
@@ -2,7 +2,8 @@
/* vim:set et sts=4: */
/* ibus - The Input Bus
* Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
- * Copyright (C) 2008-2013 Red Hat, Inc.
+ * Copyright (C) 2015-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ * Copyright (C) 2008-2017 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -323,11 +324,14 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
g_assert (new_name != NULL);
g_assert (BUS_IS_IBUS_IMPL (ibus));
@@ -357,13 +357,16 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
else if (!g_strcmp0 (name, IBUS_SERVICE_PANEL_EXTENSION))
panel_type = PANEL_TYPE_EXTENSION;
- if (g_strcmp0 (name, IBUS_SERVICE_PANEL) == 0) {
- if (panel_type != PANEL_TYPE_NONE) {
+ do {
+ if (g_strcmp0 (name, IBUS_SERVICE_PANEL) != 0)
+ if (panel_type == PANEL_TYPE_NONE)
+ break;
if (g_strcmp0 (new_name, "") != 0) {
/* a Panel process is started. */
BusConnection *connection;
BusInputContext *context = NULL;
BusPanelProxy **panel = (panel_type == PANEL_TYPE_PANEL) ?
&ibus->panel : &ibus->extension;
+ GDBusConnection *dbus_connection = NULL;
if (ibus->panel != NULL) {
ibus_proxy_destroy ((IBusProxy *) ibus->panel);
@@ -338,6 +342,18 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
connection = bus_dbus_impl_get_connection_by_name (BUS_DEFAULT_DBUS, new_name);
if (*panel != NULL) {
ibus_proxy_destroy ((IBusProxy *)(*panel));
@@ -372,9 +375,21 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
g_assert (*panel == NULL);
}
- connection = bus_dbus_impl_get_connection_by_name (BUS_DEFAULT_DBUS, new_name);
+ connection = bus_dbus_impl_get_connection_by_name (BUS_DEFAULT_DBUS,
+ new_name);
g_return_if_fail (connection != NULL);
+ dbus_connection = bus_connection_get_dbus_connection (connection);
+
+ /* rhbz#1349148 rhbz#1385349
+ * Avoid SEGV of BUS_IS_PANEL_PROXY (ibus->panel)
+ * This function is called during destroying the connection
@ -169,10 +165,10 @@ index f99307a..2d43ff6 100644
+ break;
+ }
+
ibus->panel = bus_panel_proxy_new (connection);
*panel = bus_panel_proxy_new (connection, panel_type);
g_signal_connect (ibus->panel,
@@ -366,7 +382,7 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
g_signal_connect (*panel,
@@ -406,7 +421,7 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
}
}
}
@ -182,5 +178,5 @@ index f99307a..2d43ff6 100644
bus_ibus_impl_component_name_owner_changed (ibus, name, old_name, new_name);
}
--
2.9.3
2.14.3

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
From c6c1e8ea01c8466dc97d7549e77538e2d7ec872a Mon Sep 17 00:00:00 2001
From 158e06a10726a10393f1f6dd7237457b0b601f84 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Mon, 29 Jan 2018 18:27:09 +0900
Date: Wed, 21 Feb 2018 15:39:49 +0900
Subject: [PATCH] Integrate custom rendering to use HarfBuzz glyph info
IBusFontSet offers FcFontSet, glyph info with HarfBuzz and rendering
@ -20,11 +20,11 @@ Need configure --enable-harfbuzz-for-emoji option to enable this feature.
bindings/vala/Makefile.am | 83 +++
bindings/vala/ibus-fontset-1.0.deps | 1 +
configure.ac | 29 +
ui/gtk3/Makefile.am | 32 +
ui/gtk3/Makefile.am | 36 ++
ui/gtk3/emojier.vala | 111 ++++
ui/gtk3/ibusfontset.c | 1030 ++++++++++++++++++++++++++++++++
ui/gtk3/ibusfontset.h | 302 ++++++++++
8 files changed, 1589 insertions(+)
8 files changed, 1593 insertions(+)
create mode 100644 bindings/vala/IBusFontSet-1.0.metadata
create mode 100644 bindings/vala/ibus-fontset-1.0.deps
create mode 100644 ui/gtk3/ibusfontset.c
@ -202,19 +202,19 @@ index bd41069b..243396ff 100644
])
diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am
index 786b80e6..cd1e9c2c 100644
index 0a8f4200..8bb2345d 100644
--- a/ui/gtk3/Makefile.am
+++ b/ui/gtk3/Makefile.am
@@ -156,6 +156,8 @@ EXTRA_DIST = \
$(man_seven_in_files) \
emojierapp.vala \
@@ -159,6 +159,8 @@ EXTRA_DIST = \
extension.vala \
gtkextension.xml.in \
gtkpanel.xml.in \
+ ibusfontset.c \
+ ibusfontset.h \
notification-item.xml \
notification-watcher.xml \
$(NULL)
@@ -198,6 +200,36 @@ emojierapp.o: $(srcdir)/emojierapp.c
panelbinding.vala \
@@ -247,6 +249,40 @@ panelbinding.o: $(srcdir)/panelbinding.c
$(AM_V_CC_no)$(COMPILE) -c -o $@ $<
$(NULL)
@ -227,6 +227,10 @@ index 786b80e6..cd1e9c2c 100644
+ ibusfontset.c \
+ $(NULL)
+
+ibus_extension_gtk3_SOURCES += \
+ ibusfontset.c \
+ $(NULL)
+
+AM_CFLAGS += \
+ @CAIRO_CFLAGS@ \
+ @FONTCONFIG_CFLAGS@ \
@ -252,7 +256,7 @@ index 786b80e6..cd1e9c2c 100644
man_seven_DATA =$(man_seven_files:.7=.7.gz)
man_sevendir = $(mandir)/man7
diff --git a/ui/gtk3/emojier.vala b/ui/gtk3/emojier.vala
index 555ea68f..0a703383 100644
index c85dfa86..86482543 100644
--- a/ui/gtk3/emojier.vala
+++ b/ui/gtk3/emojier.vala
@@ -99,16 +99,103 @@ public class IBusEmojier : Gtk.ApplicationWindow {
@ -367,7 +371,7 @@ index 555ea68f..0a703383 100644
}
private class ESelectedLabel : EWhiteLabel {
public ESelectedLabel(string text) {
@@ -307,6 +395,9 @@ public class IBusEmojier : Gtk.ApplicationWindow {
@@ -313,6 +401,9 @@ public class IBusEmojier : Gtk.ApplicationWindow {
private static bool m_show_unicode = false;
private static LoadProgressObject m_unicode_progress_object;
private static bool m_loaded_unicode = false;
@ -377,7 +381,7 @@ index 555ea68f..0a703383 100644
private ThemedRGBA m_rgba;
private Gtk.Box m_vbox;
@@ -2064,6 +2155,22 @@ public class IBusEmojier : Gtk.ApplicationWindow {
@@ -2070,6 +2161,22 @@ public class IBusEmojier : Gtk.ApplicationWindow {
}
@ -400,7 +404,7 @@ index 555ea68f..0a703383 100644
public static bool has_loaded_emoji_dict() {
if (m_emoji_to_data_dict == null)
return false;
@@ -2094,6 +2201,10 @@ public class IBusEmojier : Gtk.ApplicationWindow {
@@ -2100,6 +2207,10 @@ public class IBusEmojier : Gtk.ApplicationWindow {
int font_size = font_desc.get_size() / Pango.SCALE;
if (font_size != 0)
m_emoji_font_size = font_size;

View File

@ -30,7 +30,7 @@
Name: ibus
Version: 1.5.17
Release: 8%{?dist}
Release: 9%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@ -38,16 +38,17 @@ URL: https://github.com/ibus/%name/wiki
Source0: https://github.com/ibus/%name/releases/download/%{version}/%{name}-%{version}.tar.gz
Source1: %{name}-xinput
Source2: %{name}.conf.5
Source3: https://fujiwara.fedorapeople.org/ibus/po/%{name}-po-1.5.17-20180221.tar.gz
# Will remove the annotation tarball once the rpm is available on Fedora
# Upstreamed patches.
# Patch0: %%{name}-HEAD.patch
Patch0: %{name}-HEAD.patch
# Under testing #1349148 #1385349 #1350291 #1406699 #1432252
Patch1: %{name}-1385349-segv-bus-proxy.patch
%if %with_emoji_harfbuzz
# Under testing self rendering until Pango, Fontconfig, Cairo are stable
Patch2: %{name}-xx-emoji-harfbuzz.patch
Patch1: %{name}-xx-emoji-harfbuzz.patch
%endif
# Under testing #1349148 #1385349 #1350291 #1406699 #1432252
Patch2: %{name}-1385349-segv-bus-proxy.patch
BuildRequires: gettext-devel
BuildRequires: libtool
@ -243,10 +244,12 @@ The ibus-devel-docs package contains developer documentation for IBus
# %%patch0 -p1
%patch0 -p1
# cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c ||
%patch1 -p1 -z .segv
%if %with_emoji_harfbuzz
%patch2 -p1 -z .hb
%patch1 -p1 -z .hb
%endif
%patch2 -p1 -z .segv
zcat %SOURCE3 | tar xfvp -
# prep test
diff client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c
@ -360,6 +363,7 @@ dconf update || :
%{_libexecdir}/ibus-engine-simple
%{_libexecdir}/ibus-dconf
%{_libexecdir}/ibus-portal
%{_libexecdir}/ibus-extension-gtk3
%{_libexecdir}/ibus-ui-emojier
%{_libexecdir}/ibus-ui-gtk3
%{_libexecdir}/ibus-x11
@ -420,6 +424,10 @@ dconf update || :
%{_datadir}/gtk-doc/html/*
%changelog
* Wed Feb 21 2018 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.17-9
- Added panel extension for emoji keybinding not to depen on desktops
- Showed Unicode code points on Unicode name list
* Tue Feb 13 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.5.17-8
- Remove useless requires

View File

@ -1 +1,2 @@
SHA512 (ibus-1.5.17.tar.gz) = 8a7e4fabbcb2096e647b1fb7487c92882bd320a4d777f2765817378abec2e60cafd63364c881fefc2805ff2baa6b28b15ee0710587662a3e65eeb60ead19496c
8bb26453d0d1fa58e56c22668aaa8786 ibus-1.5.17.tar.gz
c485c179e612ffd07cf6a6c567a928f1 ibus-po-1.5.17-20180221.tar.gz