diff --git a/.gitignore b/.gitignore index 6d9fa93..3541d5e 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,5 @@ ibus-1.3.6.tar.gz /ibus-1.5.12.tar.gz /ibus-1.5.13.tar.gz /ibus-1.5.14.tar.gz +/ibus-1.5.15.tar.gz +/cldr-emoji-annotation-30.0.3_2.tar.gz diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch index b1588a7..8b13789 100644 --- a/ibus-HEAD.patch +++ b/ibus-HEAD.patch @@ -1,630 +1 @@ -From 997e5cb1b100c6af267b8121445db1db7e580d5f Mon Sep 17 00:00:00 2001 -From: "Eric R. Schulz" -Date: Thu, 18 Aug 2016 11:17:11 +0900 -Subject: [PATCH 1/3] Fix GVariant leaks - -The expectation is that g_dbus_message_set_body() takes ownership of the -GVariant, but this does not happen if the BusInputContext connection is NULL. -Call g_variant_unref() in that case to free the memory. Alternatively, a -GVariantBuilder could be used. - -BUG=https://github.com/ibus/ibus/pull/1872 -R=Shawn.P.Huang@gmail.com - -Review URL: https://codereview.appspot.com/307050043 - -Patch from Eric R. Schulz . ---- - bus/inputcontext.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/bus/inputcontext.c b/bus/inputcontext.c -index 6c82e20..0612fac 100644 ---- a/bus/inputcontext.c -+++ b/bus/inputcontext.c -@@ -673,8 +673,10 @@ bus_input_context_send_signal (BusInputContext *context, - GVariant *parameters, - GError **error) - { -- if (context->connection == NULL) -+ if (context->connection == NULL) { -+ g_variant_unref (parameters); - return TRUE; -+ } - - GDBusMessage *message = g_dbus_message_new_signal (ibus_service_get_object_path ((IBusService *)context), - interface_name, -@@ -704,8 +706,10 @@ bus_input_context_emit_signal (BusInputContext *context, - GVariant *parameters, - GError **error) - { -- if (context->connection == NULL) -+ if (context->connection == NULL) { -+ g_variant_unref (parameters); - return TRUE; -+ } - - return bus_input_context_send_signal (context, - "org.freedesktop.IBus.InputContext", --- -2.7.4 - -From ceb6a9b47deaa898d8151606831669a7446ad382 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Tue, 6 Sep 2016 13:05:35 +0900 -Subject: [PATCH 2/3] ui/gtk3: Fix radio buttons on Property Panel - -Use gtk_container_remove() instead g_object_unref() because -if an widget has a parent, it's not destroyed and the signal is not -sent to the parent since the parent was destroyed. - -R=shawn.p.huang@gmail.com - -Review URL: https://codereview.appspot.com/302650043 ---- - ui/gtk3/propertypanel.vala | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/ui/gtk3/propertypanel.vala b/ui/gtk3/propertypanel.vala -index 6d5fd81..ea960b8 100644 ---- a/ui/gtk3/propertypanel.vala -+++ b/ui/gtk3/propertypanel.vala -@@ -2,9 +2,9 @@ - * - * ibus - The Input Bus - * -- * Copyright(c) 2013-2015 Red Hat, Inc. -+ * Copyright(c) 2013-2016 Red Hat, Inc. - * Copyright(c) 2013-2015 Peng Huang -- * Copyright(c) 2013-2015 Takao Fujiwara -+ * Copyright(c) 2013-2016 Takao Fujiwara - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -85,7 +85,7 @@ public class PropertyPanel : Gtk.Box { - debug("set_properties()\n"); - - foreach (var item in m_items) -- (item as Gtk.Widget).destroy(); -+ remove((item as Gtk.Widget)); - m_items = {}; - - m_props = props; -@@ -481,6 +481,8 @@ public class PropMenu : Gtk.Menu, IPropToolItem { - - public override void destroy() { - m_parent_button = null; -+ foreach (var item in m_items) -+ remove((item as Gtk.Widget)); - m_items = {}; - base.destroy(); - } -@@ -739,7 +741,7 @@ public class PropMenuToolButton : PropToggleToolButton, IPropToolItem { - m_menu = new PropMenu(prop); - m_menu.deactivate.connect((m) => - set_active(false)); -- m_menu.property_activate.connect((w, k, s) => -+ m_menu.property_activate.connect((k, s) => - property_activate(k, s)); - - base.set_property(prop); --- -2.7.4 - -From e795eda1a3b054e6fdc921bfe04c83733761905f Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 6 Oct 2016 15:28:24 +0900 -Subject: [PATCH 1/3] src: Hide lookup table if emoji annotation does not hit - -If emoji annotation hits "aaa" but not "aaab", hide the lookup -window with "aaab". -Also hide the lookup window with Escape key. - -BUG=rhbz#1380675 - -Review URL: https://codereview.appspot.com/307400043 ---- - src/ibusenginesimple.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index 8efe5a9..b22b06f 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -1018,6 +1018,10 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - } - else if (is_escape) { - ibus_engine_simple_reset (engine); -+ if (priv->lookup_table != NULL && priv->lookup_table_visible) { -+ priv->lookup_table_visible = FALSE; -+ ibus_engine_simple_update_lookup_and_aux_table (simple); -+ } - return TRUE; - } - -@@ -1165,6 +1169,10 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - } - else if (is_escape) { - ibus_engine_simple_reset (engine); -+ if (priv->lookup_table != NULL && priv->lookup_table_visible) { -+ priv->lookup_table_visible = FALSE; -+ ibus_engine_simple_update_lookup_and_aux_table (simple); -+ } - return TRUE; - } - } else { -@@ -1243,8 +1251,10 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - priv->lookup_table_visible = FALSE; - update_lookup_table = TRUE; - } -- } -- else if (check_emoji_table (simple, n_compose, -1)) { -+ } else if (check_emoji_table (simple, n_compose, -1)) { -+ update_lookup_table = TRUE; -+ } else { -+ priv->lookup_table_visible = FALSE; - update_lookup_table = TRUE; - } - } --- -2.7.4 - -From 4d86e59d0245df6d3a6aa1a32cdf7702b6dc7f0d Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 6 Oct 2016 15:35:03 +0900 -Subject: [PATCH 2/3] src: Enable to type digit to commit emoji on lookup - window - -Enables to commit an emoji on the lookup window by a digit key. -Before this patch, Ctrl-Shift-U, "11" shows emojis of 11 clock. -After this patch, Ctrl-Shift-U, "11" commits an emoji of 1 clock. -Probably Ctrl-Shift-U, "clock" can be a workaround. - -BUG=rhbz#1380690 -R=Shawn.P.Huang@gmail.com - -Review URL: https://codereview.appspot.com/309640043 ---- - src/ibusenginesimple.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 78 insertions(+), 2 deletions(-) - -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index b22b06f..23e1c9d 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -901,6 +901,66 @@ ibus_engine_simple_update_lookup_and_aux_table (IBusEngineSimple *simple) - } - - static gboolean -+ibus_engine_simple_if_in_range_of_lookup_table (IBusEngineSimple *simple, -+ guint keyval) -+{ -+ IBusEngineSimplePrivate *priv; -+ int index, candidates, cursor_pos, cursor_in_page, page_size; -+ -+ priv = simple->priv; -+ -+ if (priv->lookup_table == NULL || !priv->lookup_table_visible) -+ return FALSE; -+ if (keyval < IBUS_KEY_0 || keyval > IBUS_KEY_9) -+ return FALSE; -+ if (keyval == IBUS_KEY_0) -+ keyval = IBUS_KEY_9 + 1; -+ index = keyval - IBUS_KEY_1; -+ candidates = -+ ibus_lookup_table_get_number_of_candidates (priv->lookup_table); -+ cursor_pos = ibus_lookup_table_get_cursor_pos (priv->lookup_table); -+ cursor_in_page = ibus_lookup_table_get_cursor_in_page (priv->lookup_table); -+ page_size = ibus_lookup_table_get_page_size (priv->lookup_table); -+ if (index > ((candidates - (cursor_pos - cursor_in_page)) % page_size)) -+ return FALSE; -+ return TRUE; -+} -+ -+static void -+ibus_engine_simple_set_number_on_lookup_table (IBusEngineSimple *simple, -+ guint keyval, -+ int n_compose) -+{ -+ IBusEngineSimplePrivate *priv; -+ int index, cursor_pos, cursor_in_page, real_index; -+ -+ priv = simple->priv; -+ -+ if (keyval == IBUS_KEY_0) -+ keyval = IBUS_KEY_9 + 1; -+ index = keyval - IBUS_KEY_1; -+ cursor_pos = ibus_lookup_table_get_cursor_pos (priv->lookup_table); -+ cursor_in_page = ibus_lookup_table_get_cursor_in_page (priv->lookup_table); -+ real_index = cursor_pos - cursor_in_page + index; -+ -+ ibus_lookup_table_set_cursor_pos (priv->lookup_table, real_index); -+ check_emoji_table (simple, n_compose, real_index); -+ priv->lookup_table_visible = FALSE; -+ ibus_engine_simple_update_lookup_and_aux_table (simple); -+ -+ if (priv->tentative_emoji && *priv->tentative_emoji) { -+ ibus_engine_simple_commit_str (simple, priv->tentative_emoji); -+ priv->compose_buffer[0] = 0; -+ } else { -+ g_clear_pointer (&priv->tentative_emoji, g_free); -+ priv->in_emoji_sequence = FALSE; -+ priv->compose_buffer[0] = 0; -+ } -+ -+ ibus_engine_simple_update_preedit_text (simple); -+} -+ -+static gboolean - ibus_engine_simple_process_key_event (IBusEngine *engine, - guint keyval, - guint keycode, -@@ -1162,7 +1222,15 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - } - } else if (priv->in_emoji_sequence) { - if (printable_keyval) { -- priv->compose_buffer[n_compose++] = printable_keyval; -+ if (!ibus_engine_simple_if_in_range_of_lookup_table (simple, -+ printable_keyval)) { -+ /* digit keyval can be an index on the current lookup table -+ * but it also can be a part of an emoji annotation. -+ * E.g. "1" and "2" are indexes of emoji "1". -+ * "100" is an annotation of the emoji "100". -+ */ -+ priv->compose_buffer[n_compose++] = printable_keyval; -+ } - } - else if (is_space && (modifiers & IBUS_SHIFT_MASK)) { - priv->compose_buffer[n_compose++] = IBUS_KEY_space; -@@ -1243,7 +1311,15 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - } - - if (!update_lookup_table) { -- if (is_hex_end && !is_space) { -+ if (ibus_engine_simple_if_in_range_of_lookup_table (simple, -+ keyval)) { -+ ibus_engine_simple_set_number_on_lookup_table ( -+ simple, -+ keyval, -+ n_compose); -+ return TRUE; -+ } -+ else if (is_hex_end && !is_space) { - if (priv->lookup_table) { - int index = (int) ibus_lookup_table_get_cursor_pos ( - priv->lookup_table); --- -2.7.4 - -From faf5e3c56d746d2f171618d552cff9149bb1d952 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 6 Oct 2016 15:37:25 +0900 -Subject: [PATCH 3/3] src: Enable PageUp, PageDown, CandidateClick buttons with - emoji lookup - -BUG=rhbz#1380691 - -Review URL: https://codereview.appspot.com/312760043 ---- - src/ibusenginesimple.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 55 insertions(+) - -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index 23e1c9d..65c33a0 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -107,6 +107,13 @@ static gboolean ibus_engine_simple_process_key_event - guint keyval, - guint keycode, - guint modifiers); -+static void ibus_engine_simple_page_down (IBusEngine *engine); -+static void ibus_engine_simple_page_up (IBusEngine *engine); -+static void ibus_engine_simple_candidate_clicked -+ (IBusEngine *engine, -+ guint index, -+ guint button, -+ guint state); - static void ibus_engine_simple_commit_char (IBusEngineSimple *simple, - gunichar ch); - static void ibus_engine_simple_commit_str (IBusEngineSimple *simple, -@@ -128,6 +135,10 @@ ibus_engine_simple_class_init (IBusEngineSimpleClass *class) - engine_class->reset = ibus_engine_simple_reset; - engine_class->process_key_event - = ibus_engine_simple_process_key_event; -+ engine_class->page_down = ibus_engine_simple_page_down; -+ engine_class->page_up = ibus_engine_simple_page_up; -+ engine_class->candidate_clicked -+ = ibus_engine_simple_candidate_clicked; - - g_type_class_add_private (class, sizeof (IBusEngineSimplePrivate)); - } -@@ -1395,6 +1406,50 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - return no_sequence_matches (simple, n_compose, keyval, keycode, modifiers); - } - -+static void -+ibus_engine_simple_page_down (IBusEngine *engine) -+{ -+ IBusEngineSimple *simple = (IBusEngineSimple *)engine; -+ IBusEngineSimplePrivate *priv = simple->priv; -+ if (priv->lookup_table == NULL) -+ return; -+ ibus_lookup_table_page_down (priv->lookup_table); -+ ibus_engine_simple_update_lookup_and_aux_table (simple); -+} -+ -+static void -+ibus_engine_simple_page_up (IBusEngine *engine) -+{ -+ IBusEngineSimple *simple = (IBusEngineSimple *)engine; -+ IBusEngineSimplePrivate *priv = simple->priv; -+ if (priv->lookup_table == NULL) -+ return; -+ ibus_lookup_table_page_up (priv->lookup_table); -+ ibus_engine_simple_update_lookup_and_aux_table (simple); -+} -+ -+static void -+ibus_engine_simple_candidate_clicked (IBusEngine *engine, -+ guint index, -+ guint button, -+ guint state) -+{ -+ IBusEngineSimple *simple = (IBusEngineSimple *)engine; -+ IBusEngineSimplePrivate *priv = simple->priv; -+ guint keyval; -+ gint n_compose = 0; -+ -+ if (priv->lookup_table == NULL || !priv->lookup_table_visible) -+ return; -+ if (index == 9) -+ keyval = IBUS_KEY_0; -+ else -+ keyval = IBUS_KEY_1 + index; -+ while (priv->compose_buffer[n_compose] != 0) -+ n_compose++; -+ ibus_engine_simple_set_number_on_lookup_table (simple, keyval, n_compose); -+} -+ - void - ibus_engine_simple_add_table (IBusEngineSimple *simple, - const guint16 *data, --- -2.7.4 - -From 52b7272d97a881a8a6c872e28c1970ec47cb4337 Mon Sep 17 00:00:00 2001 -From: Peng Wu -Date: Wed, 12 Oct 2016 15:17:24 +0900 -Subject: [PATCH] ui/gtk3: support scroll event in candidates panel - -When press scroll button of mouse on candidates, -automatically cursor up/cursor down. - -BUG= -R=takao.fujiwara1@gmail.com - -Review URL: https://codereview.appspot.com/302700043 - -Patch from Peng Wu . ---- - ui/gtk3/candidatearea.vala | 33 +++++++++++++++++++++++++++++---- - ui/gtk3/panel.vala | 2 ++ - 2 files changed, 31 insertions(+), 4 deletions(-) - -diff --git a/ui/gtk3/candidatearea.vala b/ui/gtk3/candidatearea.vala -index 3848f0d..88db268 100644 ---- a/ui/gtk3/candidatearea.vala -+++ b/ui/gtk3/candidatearea.vala -@@ -61,6 +61,18 @@ class CandidateArea : Gtk.Box { - set_vertical(vertical, true); - } - -+ public bool candidate_scrolled(Gdk.EventScroll event) { -+ switch (event.direction) { -+ case Gdk.ScrollDirection.UP: -+ cursor_up(); -+ break; -+ case Gdk.ScrollDirection.DOWN: -+ cursor_down(); -+ break; -+ } -+ return true; -+ } -+ - public bool get_vertical() { - return m_vertical; - } -@@ -167,9 +179,17 @@ class CandidateArea : Gtk.Box { - next_button.set_relief(Gtk.ReliefStyle.NONE); - - if (m_vertical) { -+ Gtk.EventBox container_ebox = new Gtk.EventBox(); -+ container_ebox.add_events(Gdk.EventMask.SCROLL_MASK); -+ container_ebox.scroll_event.connect(candidate_scrolled); -+ add(container_ebox); -+ -+ Gtk.Box vbox = new Gtk.Box(Gtk.Orientation.VERTICAL, 0); -+ container_ebox.add(vbox); -+ - // Add Candidates - Gtk.Box candidates_hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 0); -- pack_start(candidates_hbox, false, false, 0); -+ vbox.pack_start(candidates_hbox, false, false, 0); - Gtk.Box labels_vbox = new Gtk.Box(Gtk.Orientation.VERTICAL, 0); - labels_vbox.set_homogeneous(true); - Gtk.Box candidates_vbox = new Gtk.Box(Gtk.Orientation.VERTICAL, 0); -@@ -179,7 +199,7 @@ class CandidateArea : Gtk.Box { - candidates_hbox.pack_start(candidates_vbox, true, true, 4); - - // Add HSeparator -- pack_start(new HSeparator(), false, false, 0); -+ vbox.pack_start(new HSeparator(), false, false, 0); - - // Add buttons - Gtk.Box buttons_hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 0); -@@ -188,7 +208,7 @@ class CandidateArea : Gtk.Box { - buttons_hbox.pack_start(state_label, true, true, 0); - buttons_hbox.pack_start(prev_button, false, false, 0); - buttons_hbox.pack_start(next_button, false, false, 0); -- pack_start(buttons_hbox, false, false, 0); -+ vbox.pack_start(buttons_hbox, false, false, 0); - - m_labels = {}; - m_candidates = {}; -@@ -234,8 +254,13 @@ class CandidateArea : Gtk.Box { - m_widgets += candidate_ebox; - } - } else { -+ Gtk.EventBox container_ebox = new Gtk.EventBox(); -+ container_ebox.add_events(Gdk.EventMask.SCROLL_MASK); -+ container_ebox.scroll_event.connect(candidate_scrolled); -+ add(container_ebox); -+ - Gtk.Box hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 0); -- add(hbox); -+ container_ebox.add(hbox); - - m_labels = {}; - m_candidates = {}; -diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala -index cc19350..ee08c59 100644 ---- a/ui/gtk3/panel.vala -+++ b/ui/gtk3/panel.vala -@@ -111,6 +111,8 @@ class Panel : IBus.PanelService { - m_candidate_panel = new CandidatePanel(); - m_candidate_panel.page_up.connect((w) => this.page_up()); - m_candidate_panel.page_down.connect((w) => this.page_down()); -+ m_candidate_panel.cursor_up.connect((w) => this.cursor_up()); -+ m_candidate_panel.cursor_down.connect((w) => this.cursor_down()); - m_candidate_panel.candidate_clicked.connect( - (w, i, b, s) => this.candidate_clicked(i, b, s)); - --- -2.7.4 - -From f80dcc978fdc9a3d7853434e86f4ee02c2a92b33 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 11 Jan 2017 12:11:22 +0900 -Subject: [PATCH] src: Avoid emoji typing during Unicode typing - -If 'sk' layout is used, digit keys need Shift key and -Unicode typing of U+1AE requires Shift key after Ctrl-Shift-u. -This patch does not enable the emoji typing with Ctrl-Shift-e -during Unicode typing. - -BUG=rhbz#1403985 - -Review URL: https://codereview.appspot.com/311510043 ---- - src/ibusenginesimple.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index 65c33a0..2a98d58 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -2,8 +2,8 @@ - /* vim:set et sts=4: */ - /* ibus - The Input Bus - * Copyright (C) 2014 Peng Huang -- * Copyright (C) 2015-2016 Takao Fujiwara -- * Copyright (C) 2014-2016 Red Hat, Inc. -+ * Copyright (C) 2015-2017 Takao Fujiwara -+ * Copyright (C) 2014-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 -@@ -1187,7 +1187,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - } - - /* Check for hex sequence start */ -- if (!priv->in_hex_sequence && have_hex_mods && is_hex_start) { -+ if (!priv->in_hex_sequence && !priv->in_emoji_sequence && -+ have_hex_mods && is_hex_start) { - priv->compose_buffer[0] = 0; - priv->in_hex_sequence = TRUE; - priv->in_emoji_sequence = FALSE; -@@ -1200,7 +1201,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - ibus_engine_simple_update_preedit_text (simple); - - return TRUE; -- } else if (!priv->in_emoji_sequence && have_hex_mods && is_emoji_start) { -+ } else if (!priv->in_hex_sequence && !priv->in_emoji_sequence && -+ have_hex_mods && is_emoji_start) { - priv->compose_buffer[0] = 0; - priv->in_hex_sequence = FALSE; - priv->in_emoji_sequence = TRUE; --- -2.7.4 - -From aacf5adbba9b9b34a1ec07005e670d209513fb5b Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 11 Jan 2017 12:16:59 +0900 -Subject: [PATCH] ui/gtk3: Fix panel CSS format for GTK 3.22 - -GtkCssProvider no longer works with the Pango format in GTK 3.22 and -need to use the CSS format. - -BUG=https://github.com/ibus/ibus/issues/1879 - -Review URL: https://codereview.appspot.com/319960043 ---- - ui/gtk3/panel.vala | 21 ++++++++++++++------- - 1 file changed, 14 insertions(+), 7 deletions(-) - -diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala -index ee08c59..4fb7555 100644 ---- a/ui/gtk3/panel.vala -+++ b/ui/gtk3/panel.vala -@@ -3,7 +3,7 @@ - * ibus - The Input Bus - * - * Copyright(c) 2011-2014 Peng Huang -- * Copyright(c) 2015-2016 Takao Fujwiara -+ * Copyright(c) 2015-2017 Takao Fujwiara - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -538,26 +538,33 @@ class Panel : IBus.PanelService { - return; - } - -- string font_name = m_settings_panel.get_string("custom-font"); -+ string custom_font = m_settings_panel.get_string("custom-font"); - -- if (font_name == null) { -+ if (custom_font == null) { - warning("No config panel:custom-font."); - return; - } - -- string data_format = "label { font: %s; }"; -+ Pango.FontDescription font_desc = -+ Pango.FontDescription.from_string(custom_font); -+ string font_family = font_desc.get_family(); -+ int font_size = font_desc.get_size() / Pango.SCALE; -+ string data; -+ - if (Gtk.MAJOR_VERSION < 3 || - (Gtk.MAJOR_VERSION == 3 && Gtk.MINOR_VERSION < 20)) { -- data_format = "GtkLabel { font: %s; }"; -+ data = "GtkLabel { font: %s; }".printf(custom_font); -+ } else { -+ data = "label { font-family: %s; font-size: %dpt; }" -+ .printf(font_family, font_size); - } - -- string data = data_format.printf(font_name); - m_css_provider = new Gtk.CssProvider(); - - try { - m_css_provider.load_from_data(data, -1); - } catch (GLib.Error e) { -- warning("Failed css_provider_from_data: %s: %s", font_name, -+ warning("Failed css_provider_from_data: %s: %s", custom_font, - e.message); - return; - } --- -2.7.4 diff --git a/ibus.spec b/ibus.spec index 0fde30f..b14d653 100644 --- a/ibus.spec +++ b/ibus.spec @@ -25,21 +25,23 @@ %endif %global dbus_python_version 0.83.0 +%global annotation_name cldr-emoji-annotation +%global annotation_version 30.0.3_2 Name: ibus -Version: 1.5.14 -Release: 6%{?dist} +Version: 1.5.15 +Release: 1%{?dist} Summary: Intelligent Input Bus for Linux OS License: LGPLv2+ Group: System Environment/Libraries -URL: https://github.com/ibus/ibus/wiki -Source0: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz +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.14-20160909.tar.gz +# Will remove the annotation tarball once the rpm is available on Fedora +Source3: https://github.com/fujiwarat/%annotation_name/releases/download/%{annotation_version}/%{annotation_name}-%{annotation_version}.tar.gz # Upstreamed patches. # Patch0: %%{name}-HEAD.patch -Patch0: %{name}-HEAD.patch BuildRequires: gettext-devel BuildRequires: libtool @@ -230,8 +232,7 @@ The ibus-devel-docs package contains developer documentation for IBus %setup -q # %%patch0 -p1 # cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c || -%patch0 -p1 -zcat %SOURCE3 | tar xfv - +zcat %SOURCE3 | tar xfvp - %build #autoreconf -f -i -v @@ -255,14 +256,14 @@ zcat %SOURCE3 | tar xfv - %ifnarch %{nodejs_arches} --disable-emoji-dict \ %endif + --with-emoji-annotation-dir=$PWD/%annotation_name-%annotation_version/annotations \ %{nil} -make -C ui/gtk3 maintainer-clean-generic make %{?_smp_mflags} %install make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' -rm -f $RPM_BUILD_ROOT%{_libdir}/libibus-%{ibus_api_version}.la +rm -f $RPM_BUILD_ROOT%{_libdir}/libibus-*%{ibus_api_version}.la rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.la rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.la @@ -380,8 +381,8 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || : %config %{_xinputconf} %files libs -%{_libdir}/libibus-%{ibus_api_version}.so.* -%{_libdir}/girepository-1.0/IBus-1.0.typelib +%{_libdir}/libibus-*%{ibus_api_version}.so.* +%{_libdir}/girepository-1.0/IBus*-1.0.typelib %files gtk2 %{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.so @@ -413,9 +414,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || : %{_libdir}/lib*.so %{_libdir}/pkgconfig/* %{_includedir}/* -%{_datadir}/gir-1.0/IBus-1.0.gir -%{_datadir}/vala/vapi/ibus-1.0.vapi -%{_datadir}/vala/vapi/ibus-1.0.deps +%{_datadir}/gir-1.0/IBus*-1.0.gir +%{_datadir}/vala/vapi/ibus-*1.0.vapi +%{_datadir}/vala/vapi/ibus-*1.0.deps %files devel-docs # Own html dir since gtk-doc is heavy. @@ -424,6 +425,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || : %{_datadir}/gtk-doc/html/* %changelog +* Mon Mar 06 2017 Takao Fujiwara - 1.5.15-1 +- Bumped to 1.5.15 + * Fri Feb 10 2017 Fedora Release Engineering - 1.5.14-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild diff --git a/sources b/sources index eb459d9..9e0605c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -debfafff1823952b69b248462f7a89a5 ibus-1.5.14.tar.gz -a527affc1999b0991ae25a3d5da44e1e ibus-po-1.5.14-20160909.tar.gz +SHA512 (ibus-1.5.15.tar.gz) = 4e588acf2ca0172b365630dcfe2d9062e7583e50a44d435ec05c8e3976c6caf54c4708733f1f7dce5ef7724254469ee5c7ab3b086f0cbea18775c894863b0c3e +SHA512 (cldr-emoji-annotation-30.0.3_2.tar.gz) = 1694fcef63be75f80a2d760696422b591fdfeca28186f2c10414cb7549911378fab2ee992eb578c43c5ac2da62bfa0e846810fdf1d756f15184a44f040f111c1