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.9-20141001.tar.gz
/ibus-po-1.5.10-20150402.tar.gz /ibus-po-1.5.10-20150402.tar.gz
/ibus-po-1.5.14-20160909.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.6.tar.gz
/ibus-1.3.7.tar.gz /ibus-1.3.7.tar.gz
/ibus-1.3.8.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> 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() Subject: [PATCH] bus: Fix SEGV in bus_panel_proxy_focus_in()
BUG=rhbz#1349148 BUG=rhbz#1349148
@ -10,11 +10,11 @@ BUG=rhbz#1406699
BUG=rhbz#1432252 BUG=rhbz#1432252
--- ---
bus/dbusimpl.c | 38 ++++++++++++++++++++++++++++++++------ bus/dbusimpl.c | 38 ++++++++++++++++++++++++++++++++------
bus/ibusimpl.c | 22 +++++++++++++++++++--- bus/ibusimpl.c | 21 ++++++++++++++++++---
2 files changed, 51 insertions(+), 9 deletions(-) 2 files changed, 50 insertions(+), 9 deletions(-)
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
index b54ef81..e4dd868 100644 index b54ef817..e4dd8683 100644
--- a/bus/dbusimpl.c --- a/bus/dbusimpl.c
+++ b/bus/dbusimpl.c +++ b/bus/dbusimpl.c
@@ -2,7 +2,8 @@ @@ -2,7 +2,8 @@
@ -124,41 +124,37 @@ index b54ef81..e4dd868 100644
if (incoming) { if (incoming) {
/* is incoming message */ /* is incoming message */
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
index f99307a..2d43ff6 100644 index 58d205cf..34f6c909 100644
--- a/bus/ibusimpl.c --- a/bus/ibusimpl.c
+++ b/bus/ibusimpl.c +++ b/bus/ibusimpl.c
@@ -2,7 +2,8 @@ @@ -357,13 +357,16 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
/* vim:set et sts=4: */ else if (!g_strcmp0 (name, IBUS_SERVICE_PANEL_EXTENSION))
/* ibus - The Input Bus panel_type = PANEL_TYPE_EXTENSION;
* 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));
- if (g_strcmp0 (name, IBUS_SERVICE_PANEL) == 0) { - if (panel_type != PANEL_TYPE_NONE) {
+ do { + do {
+ if (g_strcmp0 (name, IBUS_SERVICE_PANEL) != 0) + if (panel_type == PANEL_TYPE_NONE)
+ break; + break;
if (g_strcmp0 (new_name, "") != 0) { if (g_strcmp0 (new_name, "") != 0) {
/* a Panel process is started. */ /* a Panel process is started. */
BusConnection *connection; BusConnection *connection;
BusInputContext *context = NULL; BusInputContext *context = NULL;
BusPanelProxy **panel = (panel_type == PANEL_TYPE_PANEL) ?
&ibus->panel : &ibus->extension;
+ GDBusConnection *dbus_connection = NULL; + GDBusConnection *dbus_connection = NULL;
if (ibus->panel != NULL) { if (*panel != NULL) {
ibus_proxy_destroy ((IBusProxy *) ibus->panel); ibus_proxy_destroy ((IBusProxy *)(*panel));
@@ -338,6 +342,18 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus, @@ -372,9 +375,21 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
connection = bus_dbus_impl_get_connection_by_name (BUS_DEFAULT_DBUS, new_name); 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); g_return_if_fail (connection != NULL);
+ dbus_connection = bus_connection_get_dbus_connection (connection); + dbus_connection = bus_connection_get_dbus_connection (connection);
+
+ /* rhbz#1349148 rhbz#1385349 + /* rhbz#1349148 rhbz#1385349
+ * Avoid SEGV of BUS_IS_PANEL_PROXY (ibus->panel) + * Avoid SEGV of BUS_IS_PANEL_PROXY (ibus->panel)
+ * This function is called during destroying the connection + * This function is called during destroying the connection
@ -169,10 +165,10 @@ index f99307a..2d43ff6 100644
+ break; + break;
+ } + }
+ +
ibus->panel = bus_panel_proxy_new (connection); *panel = bus_panel_proxy_new (connection, panel_type);
g_signal_connect (ibus->panel, g_signal_connect (*panel,
@@ -366,7 +382,7 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus, @@ -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); 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> 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 Subject: [PATCH] Integrate custom rendering to use HarfBuzz glyph info
IBusFontSet offers FcFontSet, glyph info with HarfBuzz and rendering 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/Makefile.am | 83 +++
bindings/vala/ibus-fontset-1.0.deps | 1 + bindings/vala/ibus-fontset-1.0.deps | 1 +
configure.ac | 29 + configure.ac | 29 +
ui/gtk3/Makefile.am | 32 + ui/gtk3/Makefile.am | 36 ++
ui/gtk3/emojier.vala | 111 ++++ ui/gtk3/emojier.vala | 111 ++++
ui/gtk3/ibusfontset.c | 1030 ++++++++++++++++++++++++++++++++ ui/gtk3/ibusfontset.c | 1030 ++++++++++++++++++++++++++++++++
ui/gtk3/ibusfontset.h | 302 ++++++++++ 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/IBusFontSet-1.0.metadata
create mode 100644 bindings/vala/ibus-fontset-1.0.deps create mode 100644 bindings/vala/ibus-fontset-1.0.deps
create mode 100644 ui/gtk3/ibusfontset.c 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 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 --- a/ui/gtk3/Makefile.am
+++ b/ui/gtk3/Makefile.am +++ b/ui/gtk3/Makefile.am
@@ -156,6 +156,8 @@ EXTRA_DIST = \ @@ -159,6 +159,8 @@ EXTRA_DIST = \
$(man_seven_in_files) \ extension.vala \
emojierapp.vala \ gtkextension.xml.in \
gtkpanel.xml.in \ gtkpanel.xml.in \
+ ibusfontset.c \ + ibusfontset.c \
+ ibusfontset.h \ + ibusfontset.h \
notification-item.xml \ notification-item.xml \
notification-watcher.xml \ notification-watcher.xml \
$(NULL) panelbinding.vala \
@@ -198,6 +200,36 @@ emojierapp.o: $(srcdir)/emojierapp.c @@ -247,6 +249,40 @@ panelbinding.o: $(srcdir)/panelbinding.c
$(AM_V_CC_no)$(COMPILE) -c -o $@ $< $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
$(NULL) $(NULL)
@ -227,6 +227,10 @@ index 786b80e6..cd1e9c2c 100644
+ ibusfontset.c \ + ibusfontset.c \
+ $(NULL) + $(NULL)
+ +
+ibus_extension_gtk3_SOURCES += \
+ ibusfontset.c \
+ $(NULL)
+
+AM_CFLAGS += \ +AM_CFLAGS += \
+ @CAIRO_CFLAGS@ \ + @CAIRO_CFLAGS@ \
+ @FONTCONFIG_CFLAGS@ \ + @FONTCONFIG_CFLAGS@ \
@ -252,7 +256,7 @@ index 786b80e6..cd1e9c2c 100644
man_seven_DATA =$(man_seven_files:.7=.7.gz) man_seven_DATA =$(man_seven_files:.7=.7.gz)
man_sevendir = $(mandir)/man7 man_sevendir = $(mandir)/man7
diff --git a/ui/gtk3/emojier.vala b/ui/gtk3/emojier.vala 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 --- a/ui/gtk3/emojier.vala
+++ b/ui/gtk3/emojier.vala +++ b/ui/gtk3/emojier.vala
@@ -99,16 +99,103 @@ public class IBusEmojier : Gtk.ApplicationWindow { @@ -99,16 +99,103 @@ public class IBusEmojier : Gtk.ApplicationWindow {
@ -367,7 +371,7 @@ index 555ea68f..0a703383 100644
} }
private class ESelectedLabel : EWhiteLabel { private class ESelectedLabel : EWhiteLabel {
public ESelectedLabel(string text) { 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 bool m_show_unicode = false;
private static LoadProgressObject m_unicode_progress_object; private static LoadProgressObject m_unicode_progress_object;
private static bool m_loaded_unicode = false; private static bool m_loaded_unicode = false;
@ -377,7 +381,7 @@ index 555ea68f..0a703383 100644
private ThemedRGBA m_rgba; private ThemedRGBA m_rgba;
private Gtk.Box m_vbox; 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() { public static bool has_loaded_emoji_dict() {
if (m_emoji_to_data_dict == null) if (m_emoji_to_data_dict == null)
return false; 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; int font_size = font_desc.get_size() / Pango.SCALE;
if (font_size != 0) if (font_size != 0)
m_emoji_font_size = font_size; m_emoji_font_size = font_size;

View File

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