[packages/uim] - updated to 1.8.8 - uim-gtk+gnome-git.patch no longer needed

adamg adamg at pld-linux.org
Thu Sep 27 16:57:54 CEST 2018


commit b1adeb71c5eae57040dba3a04b95f6581b57dcb0
Author: Adam Gołębiowski <adamg at pld-linux.org>
Date:   Thu Sep 27 16:57:38 2018 +0200

    - updated to 1.8.8
    - uim-gtk+gnome-git.patch no longer needed

 uim-gtk+gnome-git.patch | 1710 -----------------------------------------------
 uim.spec                |   36 +-
 2 files changed, 16 insertions(+), 1730 deletions(-)
---
diff --git a/uim.spec b/uim.spec
index 6e85318..6c11808 100644
--- a/uim.spec
+++ b/uim.spec
@@ -15,17 +15,16 @@
 Summary:	Multilingual input method library
 Summary(pl.UTF-8):	Biblioteka obsługująca wejście w wielu językach
 Name:		uim
-Version:	1.8.6
-Release:	6
+Version:	1.8.8
+Release:	1
 License:	GPL or BSD
 Group:		Libraries
 #Source0Download: https://github.com/uim/uim/releases
-Source0:	https://github.com/uim/uim/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5:	ecea4c597bab1fd4ba98ea84edcece59
+Source0:	https://github.com/uim/uim/releases/download/1.8.8/%{name}-%{version}.tar.bz2
+# Source0-md5:	01c7bd5d0d4f3a9f6f5befe6f57a470b
 Source1:	%{name}.xinputd
 Source2:	%{name}-init.el
 Patch0:		%{name}-emacs-utf8.patch
-Patch1:		%{name}-gtk+gnome-git.patch
 URL:		https://github.com/uim/uim/wiki
 %{?with_canna:BuildRequires:	Canna-devel}
 %{?with_wnn:BuildRequires:	FreeWnn-devel}
@@ -429,7 +428,6 @@ japońskich.
 %prep
 %setup -q
 %patch0 -p1
-%patch1 -p1
 
 cp -a fep/README fep/README.fep
 cp -a fep/README.ja fep/README.fep.ja
@@ -509,7 +507,7 @@ ln -sf %{_localstatedir}/lib/uim/installed-modules.scm $RPM_BUILD_ROOT%{_datadir
 ln -sf %{_localstatedir}/lib/uim/loader.scm $RPM_BUILD_ROOT%{_datadir}/uim/
 
 %if %{without scim}
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/uim/{scim.scm,pixmaps/scim.svg}
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/uim/pixmaps/scim.svg
 %endif
 
 # OSX-specific
@@ -645,7 +643,7 @@ fi
 
 %files -f %{name}.lang
 %defattr(644,root,root,755)
-%doc AUTHORS ChangeLog NEWS README
+%doc AUTHORS NEWS README RELNOTE
 %doc fep/README.fep fep/README.fep.ja fep/README.fep.key xim/README.xim
 %{_sysconfdir}/X11/xinit/xinput.d/uim.conf
 %attr(755,root,root) %{_bindir}/uim-fep
@@ -660,7 +658,7 @@ fi
 %attr(755,root,root) %ghost %{_libdir}/libuim-custom.so.2
 %attr(755,root,root) %{_libdir}/libuim-scm.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libuim-scm.so.0
-%attr(755,root,root) %{_libdir}/uim-helper-server
+%attr(755,root,root) %{_libexecdir}/uim-helper-server
 %dir %{_libdir}/uim
 %dir %{_libdir}/uim/notify
 %attr(755,root,root) %{_libdir}/uim/notify/libuimnotify-libnotify.so
@@ -673,10 +671,10 @@ fi
 %attr(755,root,root) %{_libdir}/uim/plugin/libuim-fileio.so
 %attr(755,root,root) %{_libdir}/uim/plugin/libuim-lolevel.so
 %attr(755,root,root) %{_libdir}/uim/plugin/libuim-look.so
-%attr(755,root,root) %{_libdir}/uim/plugin/libuim-openssl.so
 %attr(755,root,root) %{_libdir}/uim/plugin/libuim-process.so
 %attr(755,root,root) %{_libdir}/uim/plugin/libuim-socket.so
 %attr(755,root,root) %{_libdir}/uim/plugin/libuim-sqlite3.so
+%attr(755,root,root) %{_libdir}/uim/plugin/libuim-xkb.so
 %dir %{_datadir}/uim
 %{_datadir}/uim/byeoru-data
 %{_datadir}/uim/helperdata
@@ -737,9 +735,9 @@ fi
 %attr(755,root,root) %{_bindir}/uim-toolbar-gtk
 %attr(755,root,root) %{_bindir}/uim-toolbar-gtk-systray
 %attr(755,root,root) %{_libdir}/gtk-2.0/*/immodules/im-uim.so
-%attr(755,root,root) %{_libdir}/uim-candwin-gtk
-%attr(755,root,root) %{_libdir}/uim-candwin-tbl-gtk
-%attr(755,root,root) %{_libdir}/uim-candwin-horizontal-gtk
+%attr(755,root,root) %{_libexecdir}/uim-candwin-gtk
+%attr(755,root,root) %{_libexecdir}/uim-candwin-tbl-gtk
+%attr(755,root,root) %{_libexecdir}/uim-candwin-horizontal-gtk
 
 %files gtk3
 %defattr(644,root,root,755)
@@ -750,9 +748,9 @@ fi
 %attr(755,root,root) %{_bindir}/uim-toolbar-gtk3
 %attr(755,root,root) %{_bindir}/uim-toolbar-gtk3-systray
 %attr(755,root,root) %{_libdir}/gtk-3.0/*/immodules/im-uim.so
-%attr(755,root,root) %{_libdir}/uim-candwin-gtk3
-%attr(755,root,root) %{_libdir}/uim-candwin-tbl-gtk3
-%attr(755,root,root) %{_libdir}/uim-candwin-horizontal-gtk3
+%attr(755,root,root) %{_libexecdir}/uim-candwin-gtk3
+%attr(755,root,root) %{_libexecdir}/uim-candwin-tbl-gtk3
+%attr(755,root,root) %{_libexecdir}/uim-candwin-horizontal-gtk3
 %dir %{_datadir}/uim/ui
 %{_datadir}/uim/ui/uim-applet-menu.xml
 
@@ -770,7 +768,7 @@ fi
 %attr(755,root,root) %{_bindir}/uim-im-switcher-qt
 %attr(755,root,root) %{_bindir}/uim-pref-qt
 %attr(755,root,root) %{_bindir}/uim-toolbar-qt
-%attr(755,root,root) %{_libdir}/uim-candwin-qt
+%attr(755,root,root) %{_libexecdir}/uim-candwin-qt
 %attr(755,root,root) %{_libdir}/qt/plugins-mt/inputmethods/libquiminputcontextplugin.so
 %endif
 
@@ -782,7 +780,7 @@ fi
 %attr(755,root,root) %{_bindir}/uim-pref-qt4
 %attr(755,root,root) %{_bindir}/uim-toolbar-qt4
 %attr(755,root,root) %{_libdir}/qt4/plugins/inputmethods/libuiminputcontextplugin.so
-%attr(755,root,root) %{_libdir}/uim-candwin-qt4
+%attr(755,root,root) %{_libexecdir}/uim-candwin-qt4
 %endif
 
 %if %{with kde}
@@ -794,8 +792,6 @@ fi
 
 %files -n emacs-common-uim
 %defattr(644,root,root,755)
-%doc emacs/README
-%lang(ja) %doc emacs/README.ja
 %attr(755,root,root) %{_bindir}/uim-el-agent
 %attr(755,root,root) %{_bindir}/uim-el-helper-agent
 
diff --git a/uim-gtk+gnome-git.patch b/uim-gtk+gnome-git.patch
deleted file mode 100644
index 91058fe..0000000
--- a/uim-gtk+gnome-git.patch
+++ /dev/null
@@ -1,1710 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 9be879ce..0429f601 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -823,88 +823,104 @@ uim_pixmapsdir=`eval eval echo ${datadir}/${PACKAGE_TARNAME}/pixmaps`
- AC_DEFINE_UNQUOTED(UIM_PIXMAPSDIR, "${uim_pixmapsdir}", [pixmaps directory])
- AC_SUBST(uim_pixmapsdir)
- 
--dnl *****************************
--dnl *** Check for Gtk Library ***
--dnl *****************************
-+dnl ******************************
-+dnl *** Check for GTK+ Library ***
-+dnl ******************************
- AC_ARG_WITH(gtk2,
-   AC_HELP_STRING([--without-gtk2],
--                 [don't build against Gtk+2]),
--  [
--    case $with_gtk2 in
--      no)
--        use_gtk2="no"
--      ;;
--      yes|*)
--        PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0 gdk-x11-2.0, use_gtk2="yes",use_gtk2="no")
--        PKG_CHECK_MODULES(GTK2_4, gtk+-2.0 >= 2.4.0 gdk-x11-2.0, use_gtk2_4="yes",use_gtk2_4="no")
--      ;;
--    esac
--  ],
--  [ PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0 gdk-x11-2.0, use_gtk2="yes",use_gtk2="no")
--    PKG_CHECK_MODULES(GTK2_4, gtk+-2.0 >= 2.4.0 gdk-x11-2.0, use_gtk2_4="yes",use_gtk2_4="no") ])
-+    [do not build against GTK+2]),
-+  [],
-+  [with_gtk2=yes])
-+
-+if test "x$with_gtk2" != xno; then
-+  PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0 gdk-x11-2.0,
-+                    with_gtk2=yes, with_gtk2=no)
-+  PKG_CHECK_MODULES(GTK2_4, gtk+-2.0 >= 2.4.0 gdk-x11-2.0,
-+                    with_gtk2_4=yes, with_gtk2_4=no)
-+fi
-+
-+AM_CONDITIONAL(GTK2, test "x$with_gtk2" = xyes)
-+AM_CONDITIONAL(GTK2_4, test "x$with_gtk2_4" = xyes)
-+
-+if test "x$with_gtk2" = xyes; then
-+  GTK_BINARY_VERSION=`$PKG_CONFIG gtk+-2.0 --variable=gtk_binary_version`
-+  GTK_LIBDIR=`$PKG_CONFIG gtk+-2.0 --variable=libdir`
-+  AC_SUBST(GTK_BINARY_VERSION)
-+  AC_SUBST(GTK_LIBDIR)
-+  AC_DEFINE(USE_GTK2, 1, [use GTK+2])
-+fi
- 
- AC_ARG_ENABLE(gnome-applet,
-   AC_HELP_STRING([--disable-gnome-applet],
--                 [disable uim applet for Gnome panel]),
--  [
--    case $enable_gnome_applet in
--      no)
--        use_applet_gnome="no"
--      ;;
--      yes|*)
--        PKG_CHECK_MODULES(APPLET_GNOME, libpanelapplet-2.0, use_applet_gnome="yes",use_applet_gnome="no")
--        PKG_CHECK_MODULES(APPLET_2_14, libpanelapplet-2.0 >= 2.14.0, panelapplet_have_set_background_api="yes",panelapplet_have_set_background_api="no")
--      ;;
--    esac
--  ],
--  [
--    PKG_CHECK_MODULES(APPLET_GNOME, libpanelapplet-2.0, use_applet_gnome="yes",use_applet_gnome="no")
--    PKG_CHECK_MODULES(APPLET_2_14, libpanelapplet-2.0 >= 2.14.0, panelapplet_have_set_background_api="yes",panelapplet_have_set_background_api="no")
--  ])
-+    [disable uim applet for GNOME2 panel]),
-+  [],
-+  [enable_gnome_applet=yes])
-+
-+if test "x$enable_gnome_applet" != xno; then
-+  PKG_CHECK_MODULES(GNOME_APPLET, libpanelapplet-2.0,
-+                    enable_gnome_applet=yes, enable_gnome_applet=no)
-+  PKG_CHECK_MODULES(APPLET_2_14, libpanelapplet-2.0 >= 2.14.0,
-+                    panelapplet_have_set_background_api=yes,
-+                    panelapplet_have_set_background_api=no)
-+fi
- 
- if test x"$panelapplet_have_set_background_api" = xyes; then
-   AC_DEFINE(LIBPANEL_APPLET_HAVE_SET_BACKGROUND_WIDGET, 1 , [libpanel-applet have set_background api])
- fi
- 
-+AM_CONDITIONAL(GNOME_APPLET, test "x$enable_gnome_applet" = xyes)
- 
--dnl ******************************
--dnl *** Check for Gtk3 Library ***
--dnl ******************************
-+dnl *******************************
-+dnl *** Check for GTK+3 Library ***
-+dnl *******************************
- AC_ARG_WITH(gtk3,
--  AC_HELP_STRING([--with-gtk3],
--                 [build GTK+3 immodule and helper applications
--                  @<:@default=yes@:>@]),
--  [
--    case $with_gtk3 in
--      no)
--        use_gtk3="no"
--      ;;
--      yes|*)
--        PKG_CHECK_MODULES(GTK3, gtk+-3.0, use_gtk3="yes",use_gtk3="no")
--      ;;
--    esac
--  ],
--  [ 
--    PKG_CHECK_MODULES(GTK3, gtk+-3.0, use_gtk3="yes",use_gtk3="no")
--  ])
-+  AC_HELP_STRING([--without-gtk3],
-+    [do not build GTK+3 immodule and helper applications]),
-+  [],
-+  [with_gtk3=yes])
-+
-+if test "x$with_gtk3" != xno; then
-+  PKG_CHECK_MODULES(GTK3, gtk+-3.0, with_gtk3=yes, with_gtk3=no)
-+fi
-+
-+AM_CONDITIONAL(GTK3, test "x$with_gtk3" = xyes)
-+
-+if test "x$with_gtk3" = xyes; then
-+  AC_DEFINE(USE_GTK3, 1, [use GTK+3])
-+  GTK3_BINARY_VERSION=`$PKG_CONFIG gtk+-3.0 --variable=gtk_binary_version`
-+  GTK3_LIBDIR=`$PKG_CONFIG gtk+-3.0 --variable=libdir`
-+  AC_SUBST(GTK3_BINARY_VERSION)
-+  AC_SUBST(GTK3_LIBDIR)
-+fi
- 
- AC_ARG_ENABLE(gnome3-applet,
--  AC_HELP_STRING([--enable-gnome3-applet],
--                 [enable uim applet for Gnome3 panel
--            @<:@default=yes@:>@]),
--  [
--    case $enable_gnome3_applet in
--      no)
--        use_applet_gnome3="no"
--      ;;
--      yes|*)
--        PKG_CHECK_MODULES(APPLET_GNOME3, libpanelapplet-4.0, use_applet_gnome3="yes",use_applet_gnome3="no")
--      ;;
--    esac
--  ],
--  [
--    PKG_CHECK_MODULES(APPLET_GNOME3, libpanelapplet-4.0, use_applet_gnome3="yes",use_applet_gnome3="no")
--  ])
-+  AC_HELP_STRING([--disable-gnome3-applet],
-+    [disable uim applet for GNOME3 panel]),
-+  [],
-+  [enable_gnome3_applet=yes])
-+
-+if test "x$enable_gnome3_applet" != xno; then
-+  PKG_CHECK_MODULES(GNOME3_APPLET, libpanel-applet,
-+                    enable_gnome3_applet=yes, enable_gnome3_applet=no)
-+fi
-+
-+AM_CONDITIONAL(GNOME3_APPLET, test "x$enable_gnome3_applet" = xyes)
-+
-+if test "x$enable_gnome3_applet" = xyes; then
-+  AC_ARG_WITH([libpanel-applet-dir], [], [LIBPANEL_APPLET_DIR=$withval], [LIBPANEL_APPLET_DIR=""])
-+  if test "$LIBPANEL_APPLET_DIR" == ""; then
-+    LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanel-applet`
-+  fi
-+  AC_SUBST(LIBPANEL_APPLET_DIR)
-+fi
-+
-+AC_ARG_ENABLE(debug,
-+  AC_HELP_STRING([--enable-debug],
-+    [enable debugging]),
-+  [],
-+  [enable_debug=no])
-+
-+AM_CONDITIONAL(DEBUG, test "x$enable_debug" = xyes)
- 
- dnl ****************************
- dnl *** Check for Qt Library ***
-diff --git a/gtk2/candwin/gtk.c b/gtk2/candwin/gtk.c
-index 3964ccd9..dfc9fc40 100644
---- a/gtk2/candwin/gtk.c
-+++ b/gtk2/candwin/gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -801,6 +801,9 @@ candwin_show_page(gchar **str)
- 
-   uim_cand_win_gtk_set_page(cwin, page);
-   gtk_widget_show_all(GTK_WIDGET(cwin));
-+#if GTK_CHECK_VERSION(3, 7, 8)
-+  gtk_widget_queue_resize_no_redraw(cwin->view);
-+#endif
- }
- 
- static void str_parse(gchar *str)
-diff --git a/gtk2/candwin/horizontal-gtk.c b/gtk2/candwin/horizontal-gtk.c
-index 9620d223..752fb829 100644
---- a/gtk2/candwin/horizontal-gtk.c
-+++ b/gtk2/candwin/horizontal-gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -181,7 +181,11 @@ static void candwin_set_page_candidates(gchar **str);
- static void candwin_show_page(gchar **str);
- static void str_parse(char *str);
- static void clear_button(struct index_button *idxbutton, gint cell_index);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+static void show_table(GtkGrid *view, GPtrArray *buttons);
-+#else
- static void show_table(GtkTable *view, GPtrArray *buttons);
-+#endif
- static void scale_label(GtkEventBox *button, double factor);
- 
- static void index_changed_cb(UIMCandidateWindow *cwin)
-@@ -345,8 +349,7 @@ button_clicked(GtkEventBox *button, GdkEventButton *event, gpointer data)
-   prev_selected = cwin->selected;
-   if (prev_selected) {
-     GtkWidget *label = gtk_bin_get_child(GTK_BIN(prev_selected->button));
--    gtk_widget_unmap(label);
--    gtk_widget_map(label);
-+    gtk_widget_queue_draw(label);
-   }
- 
-   for (i = 0; i < (gint)cwin->buttons->len; i++) {
-@@ -360,8 +363,7 @@ button_clicked(GtkEventBox *button, GdkEventButton *event, gpointer data)
-     if (p == button) {
-       GtkWidget *label = gtk_bin_get_child(GTK_BIN(button));
-       idx = idxbutton->cand_index_in_page;
--      gtk_widget_unmap(label);
--      gtk_widget_map(label);
-+      gtk_widget_queue_draw(label);
-       cwin->selected = idxbutton;
-       break;
-     }
-@@ -481,8 +483,13 @@ candidate_window_init(UIMCandidateWindow *cwin)
- 				 GTK_POLICY_NEVER);
-   gtk_box_pack_start(GTK_BOX(cwin->vbox), cwin->scrolled_window, TRUE, TRUE, 0);
- 
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  cwin->view = gtk_grid_new();
-+  gtk_grid_set_column_spacing(GTK_GRID(cwin->view), 10);
-+#else
-   cwin->view = gtk_table_new(1, DEFAULT_NR_CELLS, FALSE);
-   gtk_table_set_col_spacings(GTK_TABLE(cwin->view), 10);
-+#endif
-   g_signal_connect(G_OBJECT(cwin->view), "destroy",
-   		   G_CALLBACK(cb_table_view_destroy), cwin->stores);
-   cwin->viewport = gtk_viewport_new(NULL, NULL);
-@@ -505,7 +512,13 @@ candidate_window_init(UIMCandidateWindow *cwin)
- #else
-     g_signal_connect_after(label, "expose-event", G_CALLBACK(label_exposed), cwin);
- #endif
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+    gtk_widget_set_hexpand(button, TRUE);
-+    gtk_widget_set_vexpand(button, TRUE);
-+    gtk_grid_attach(GTK_GRID(cwin->view), button, col, 0, 1, 1);
-+#else
-     gtk_table_attach_defaults(GTK_TABLE(cwin->view), button, col, col + 1, 0, 1);
-+#endif
-     idxbutton = g_malloc(sizeof(struct index_button));
-     if (idxbutton) {
-       idxbutton->button = GTK_EVENT_BOX(button);
-@@ -579,7 +592,13 @@ assign_cellbutton(GPtrArray *buttons, gint cand_index, gint display_limit)
- #else
-     g_signal_connect_after(label, "expose-event", G_CALLBACK(label_exposed), cwin);
- #endif
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+    gtk_widget_set_hexpand(button, TRUE);
-+    gtk_widget_set_vexpand(button, TRUE);
-+    gtk_grid_attach(GTK_GRID(cwin->view), button, cand_index, 0, 1, 1);
-+#else
-     gtk_table_attach_defaults(GTK_TABLE(cwin->view), button, cand_index, cand_index + 1, 0, 1);
-+#endif
-     idxbutton = g_malloc(sizeof(struct index_button));
-     if (idxbutton) {
-       idxbutton->button = GTK_EVENT_BOX(button);
-@@ -1019,12 +1038,10 @@ uim_cand_win_gtk_set_index(UIMCandidateWindow *cwin, gint index)
-     prev_selected = (gpointer)cwin->selected;
-     if (prev_selected && prev_index != cwin->candidate_index) {
-       label = gtk_bin_get_child(GTK_BIN(prev_selected->button));
--      gtk_widget_unmap(label);
--      gtk_widget_map(label);
-+      gtk_widget_queue_draw(label);
-     }
-     label = gtk_bin_get_child(GTK_BIN(idxbutton->button));
--    gtk_widget_unmap(label);
--    gtk_widget_map(label);
-+    gtk_widget_queue_draw(label);
-     cwin->selected = idxbutton;
- 
-     /* show subwin */
-@@ -1157,8 +1174,9 @@ update_table_button(GtkTreeModel *model, GPtrArray *buttons, gint display_limit)
-       g_free(idxbutton);
-       g_ptr_array_remove_index(buttons, i);
-     }
--
-+#if !GTK_CHECK_VERSION(3, 4, 0)
-     gtk_table_resize(GTK_TABLE(cwin->view), 1, cand_index);
-+#endif
-   }
- }
- 
-@@ -1185,7 +1203,11 @@ uim_cand_win_gtk_set_page(UIMCandidateWindow *cwin, gint page)
-   if (cwin->stores->pdata[new_page]) {
-     update_table_button(GTK_TREE_MODEL(cwin->stores->pdata[new_page]),
-                         cwin->buttons, cwin->display_limit);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+    show_table(GTK_GRID(cwin->view), cwin->buttons);
-+#else
-     show_table(GTK_TABLE(cwin->view), cwin->buttons);
-+#endif
-   }
- 
-   cwin->page_index = new_page;
-@@ -1372,7 +1394,11 @@ uim_cand_win_gtk_layout_sub_window(UIMCandidateWindow *cwin)
-   gtk_window_move(GTK_WINDOW(cwin->sub_window.window), x3, y);
- }
- static void
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+show_table(GtkGrid *view, GPtrArray *buttons)
-+#else
- show_table(GtkTable *view, GPtrArray *buttons)
-+#endif
- {
-   gint col;
- 
-diff --git a/gtk2/dict/word-win-gtk.c b/gtk2/dict/word-win-gtk.c
-index 64d583e4..a4c3c3ec 100644
---- a/gtk2/dict/word-win-gtk.c
-+++ b/gtk2/dict/word-win-gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2004-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2004-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -144,7 +144,7 @@ word_window_init(WordWindow *window)
- #endif
-   gtk_container_set_border_width(GTK_CONTAINER(vbox1), 10);
- 
--  /* Necessary infomation area */
-+  /* Necessary information area */
- #if GTK_CHECK_VERSION(3, 2, 0)
-   vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
- #else
-@@ -152,7 +152,7 @@ word_window_init(WordWindow *window)
- #endif
-   gtk_box_pack_start(GTK_BOX(vbox1), vbox2, TRUE, TRUE, 0);
- 
--  label = gtk_label_new(_("Necessary infomation"));
-+  label = gtk_label_new(_("Necessary information"));
-   gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-   gtk_box_pack_start(GTK_BOX(vbox2), label, TRUE, TRUE, 0);
- 
-@@ -172,7 +172,7 @@ word_window_init(WordWindow *window)
-   gtk_container_add(GTK_CONTAINER(alignment),
- 		    word_window_necessary_create(window));
- 
--  /* Additional infomation area */
-+  /* Additional information area */
- #if GTK_CHECK_VERSION(3, 2, 0)
-   vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
- #else
-@@ -180,7 +180,7 @@ word_window_init(WordWindow *window)
- #endif
-   gtk_box_pack_start(GTK_BOX(vbox1), vbox2, TRUE, TRUE, 0);
- 
--  label = gtk_label_new (_("Additional infomation"));
-+  label = gtk_label_new (_("Additional information"));
-   gtk_misc_set_alignment(GTK_MISC(label), 0.0, 1.0);
-   gtk_box_pack_start(GTK_BOX(vbox2), label, TRUE, TRUE, 0);
- 
-@@ -293,27 +293,56 @@ word_window_necessary_create(WordWindow *window)
-   GtkWidget *alignment, *spin_freq;
-   int i;
- 
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  table1 = gtk_grid_new();
-+  gtk_grid_set_row_spacing(GTK_GRID(table1), 5);
-+  gtk_grid_set_column_spacing(GTK_GRID(table1), 5);
-+#else
-   table1 = gtk_table_new(5, 5, FALSE);
-+#endif
- 
-   label = gtk_label_new_with_mnemonic(_("_Phonetic:"));
-   gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(label, TRUE);
-+  gtk_grid_attach(GTK_GRID(table1), label, 0, 0, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table1), label, 0, 1, 0, 1, GTK_FILL, 0, 5, 5);
-+#endif
- 
-   entry_phon = gtk_entry_new();
-   gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry_phon);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_grid_attach(GTK_GRID(table1), entry_phon, 1, 0, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table1), entry_phon, 1, 2, 0, 1, 0, 0, 5, 5);
-+#endif
- 
-   label = gtk_label_new_with_mnemonic(_("_Literal:"));
-   gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(label, TRUE);
-+  gtk_grid_attach(GTK_GRID(table1), label, 0, 1, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table1), label, 0, 1, 1, 2, GTK_FILL, 0, 5, 5);
-+#endif
- 
-   entry_desc = gtk_entry_new();
-   gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry_desc);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_grid_attach(GTK_GRID(table1), entry_desc, 1, 1, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table1), entry_desc, 1, 2, 1, 2, 0, 0, 5, 5);
-+#endif
- 
-   label = gtk_label_new_with_mnemonic(_("Part of _Speech:"));
-   gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(label, TRUE);
-+  gtk_grid_attach(GTK_GRID(table1), label, 0, 2, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table1), label, 0, 1, 2, 3, GTK_FILL, 0, 5, 5);
-+#endif
-   {
-     GtkWidget *alignment_pos_broad;
-     gint pos_num;
-@@ -341,8 +370,15 @@ word_window_necessary_create(WordWindow *window)
-     gtk_container_add(GTK_CONTAINER(alignment_pos_broad),
- 		      combobox_pos_broad);
-     gtk_widget_show(alignment_pos_broad);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+    gtk_widget_set_hexpand(alignment_pos_broad, TRUE);
-+    gtk_widget_set_vexpand(alignment_pos_broad, TRUE);
-+    gtk_grid_attach(GTK_GRID(table1), alignment_pos_broad,
-+                    1, 2, 1, 1);
-+#else
-     gtk_table_attach(GTK_TABLE(table1), alignment_pos_broad,
- 		     1, 2, 2, 3, GTK_FILL, GTK_FILL, 5, 5);
-+#endif
-     gtk_combo_box_set_active(GTK_COMBO_BOX(combobox_pos_broad), 0);
- 
-     g_signal_connect(G_OBJECT(combobox_pos_broad), "changed",
-@@ -352,11 +388,22 @@ word_window_necessary_create(WordWindow *window)
-   label = gtk_label_new_with_mnemonic(_("_Frequency:"));
-   gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-   gtk_widget_show(label);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(label, TRUE);
-+  gtk_grid_attach(GTK_GRID(table1), label, 0, 4, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table1), label, 0, 1, 4, 5, GTK_FILL, 0, 5, 5);
-+#endif
- 
-   alignment = gtk_alignment_new(0.0, 0.5, 0.0, 0.0);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(alignment, TRUE);
-+  gtk_grid_attach(GTK_GRID(table1), alignment,
-+                  1, 4, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table1), alignment,
- 		   1, 2, 4, 5, GTK_FILL, 0, 5, 5);
-+#endif
-   gtk_widget_show(alignment);
-   adjustment_freq = (GtkAdjustment*)gtk_adjustment_new(1.0, 1.0, 65535.0,
- 						       1.0, 100.0, 0);
-@@ -378,22 +425,43 @@ word_window_additional_create(WordWindow *window)
-   GtkWidget *table;
-   GtkWidget *label, *entry, *button;
- 
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  table = gtk_grid_new();
-+  gtk_grid_set_row_spacing(GTK_GRID(table), 5);
-+  gtk_grid_set_column_spacing(GTK_GRID(table), 5);
-+#else
-   table = gtk_table_new(5, 5, FALSE);
-+#endif
- 
-   label = gtk_label_new_with_mnemonic(_("Part of Speech(_narrow):"));
-   gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-   gtk_widget_show(label);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(label, TRUE);
-+  gtk_grid_attach(GTK_GRID(table), label, 0, 0, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 5, 5);
-+#endif
- 
-   entry = gtk_entry_new();
-   gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE);
-   gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
-   gtk_widget_show(entry);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(entry, TRUE);
-+  gtk_grid_attach(GTK_GRID(table), entry, 1, 0, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 5, 5);
-+#endif
- 
-   button = gtk_button_new_with_mnemonic(_("_Browse..."));
-   gtk_widget_show(button);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(button, TRUE);
-+  gtk_grid_attach(GTK_GRID(table), button, 2, 0, 1, 1);
-+#else
-   gtk_table_attach(GTK_TABLE(table), button, 2, 3, 0, 1, GTK_FILL, 0, 5, 5);
-+#endif
-   g_signal_connect(G_OBJECT(button), "clicked",
- 		   G_CALLBACK(button_cclass_browse_clicked_cb), window);
- 
-@@ -533,7 +601,7 @@ word_window_add(WordWindow *window)
- 				    GTK_DIALOG_MODAL,
- 				    GTK_MESSAGE_INFO,
- 				    GTK_BUTTONS_CLOSE,
--				    "%s", _("Word registration succeded."));
-+				    "%s", _("Word registration succeeded."));
-   }
- 
-   g_signal_connect(G_OBJECT(dialog), "response",
-@@ -563,7 +631,7 @@ word_window_validate_values(WordWindow *window)
- 				    GTK_DIALOG_MODAL,
- 				    GTK_MESSAGE_ERROR,
- 				    GTK_BUTTONS_CLOSE,
--				    "%s", _("Phonetic is emtpy!"));
-+				    "%s", _("Phonetic is empty!"));
-     g_signal_connect(G_OBJECT(dialog), "response",
- 		     G_CALLBACK(message_dialog_response_cb), window);
-     gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(window));
-@@ -578,7 +646,7 @@ word_window_validate_values(WordWindow *window)
- 				    GTK_DIALOG_MODAL,
- 				    GTK_MESSAGE_ERROR,
- 				    GTK_BUTTONS_CLOSE,
--				    "%s", _("Literal is emtpy!"));
-+				    "%s", _("Literal is empty!"));
-     g_signal_connect(G_OBJECT(dialog), "response",
- 		     G_CALLBACK(message_dialog_response_cb), window);
-     gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(window));
-@@ -596,7 +664,7 @@ word_window_validate_values(WordWindow *window)
- 				    GTK_DIALOG_MODAL,
- 				    GTK_MESSAGE_ERROR,
- 				    GTK_BUTTONS_CLOSE,
--				    "%s", _("Part of speech is emtpy!"));
-+				    "%s", _("Part of speech is empty!"));
-     g_signal_connect(G_OBJECT(dialog), "response",
- 		     G_CALLBACK(message_dialog_response_cb), window);
-     gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(window));
-diff --git a/gtk2/immodule/gtk-im-uim.c b/gtk2/immodule/gtk-im-uim.c
-index 940f5a63..ac2918ce 100644
---- a/gtk2/immodule/gtk-im-uim.c
-+++ b/gtk2/immodule/gtk-im-uim.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -1283,12 +1283,13 @@ helper_read_cb(GIOChannel *channel, GIOCondition c, gpointer p)
- }
- 
- static void
--check_helper_connection()
-+check_helper_connection(uim_context uc)
- {
-   if (im_uim_fd < 0) {
-     im_uim_fd = uim_helper_init_client_fd(helper_disconnect_cb);
-     if (im_uim_fd >= 0) {
-       GIOChannel *channel;
-+      uim_set_uim_fd(uc, im_uim_fd);
-       channel = g_io_channel_unix_new(im_uim_fd);
-       read_tag = g_io_add_watch(channel, G_IO_IN | G_IO_HUP | G_IO_ERR,
- 				helper_read_cb, NULL);
-@@ -1416,7 +1417,7 @@ im_uim_focus_in(GtkIMContext *ic)
-   update_cur_toplevel(uic);
- #endif
- 
--  check_helper_connection();
-+  check_helper_connection(uic->uc);
-   uim_helper_client_focus_in(uic->uc);
-   uim_prop_list_update(uic->uc);
- 
-@@ -1447,7 +1448,7 @@ im_uim_focus_out(GtkIMContext *ic)
- 
-   uim_focus_out_context(uic->uc);
- 
--  check_helper_connection();
-+  check_helper_connection(uic->uc);
-   uim_helper_client_focus_out(uic->uc);
- 
-   if (uic->cwin)
-@@ -1681,7 +1682,7 @@ im_module_create(const gchar *context_id)
-     return NULL;
-   }
- 
--  check_helper_connection();
-+  check_helper_connection(uic->uc);
- 
-   uim_set_preedit_cb(uic->uc, clear_cb, pushback_cb, update_cb);
-   uim_set_prop_list_update_cb(uic->uc, update_prop_list_cb);
-diff --git a/gtk2/immodule/key-util-gtk.c b/gtk2/immodule/key-util-gtk.c
-index 6c0c2183..27abd834 100644
---- a/gtk2/immodule/key-util-gtk.c
-+++ b/gtk2/immodule/key-util-gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -55,6 +55,7 @@
- #endif
- 
- #include "uim/uim.h"
-+#include "uim/uim-scm.h"
- #if UIM_GTK_USE_JAPANESE_KANA_KEYBOARD_HACK
- #include "uim/uim-x-util.h"
- #endif
-@@ -389,6 +390,9 @@ im_uim_init_modifier_keys()
-   XFreeModifiermap(map);
-   XFree(sym);
- 
-+  if (uim_scm_c_bool(uim_scm_callf("require-dynlib", "s", "xkb")))
-+    uim_scm_callf("%xkb-set-display", "p", display);
-+
- #if UIM_GTK_USE_JAPANESE_KANA_KEYBOARD_HACK
-   uim_x_kana_input_hack_init(display);
- #endif
-diff --git a/gtk2/immodule/uim-cand-win-gtk.c b/gtk2/immodule/uim-cand-win-gtk.c
-index 4d282660..41590d06 100644
---- a/gtk2/immodule/uim-cand-win-gtk.c
-+++ b/gtk2/immodule/uim-cand-win-gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -225,7 +225,7 @@ uim_cand_win_gtk_init (UIMCandWinGtk *cwin)
- 
-   gtk_widget_set_size_request(cwin->num_label, DEFAULT_MIN_WINDOW_WIDTH, -1);
-   gtk_window_set_default_size(GTK_WINDOW(cwin), DEFAULT_MIN_WINDOW_WIDTH, -1);
--  gtk_window_set_resizable(GTK_WINDOW(cwin), FALSE);
-+  gtk_window_set_resizable(GTK_WINDOW(cwin), TRUE);
- }
- 
- static void
-@@ -765,6 +765,10 @@ uim_cand_win_gtk_layout(UIMCandWinGtk *cwin,
-   }
- 
-   gtk_window_move(GTK_WINDOW(cwin), x, y);
-+#if GTK_CHECK_VERSION(3, 7, 8)
-+  if (gtk_widget_get_mapped(cwin->view) && GTK_IS_TREE_VIEW(cwin->view))
-+    gtk_widget_queue_resize_no_redraw(cwin->view);
-+#endif
- 
-   uim_cand_win_gtk_layout_sub_window(cwin);
- }
-diff --git a/gtk2/immodule/uim-cand-win-horizontal-gtk.c b/gtk2/immodule/uim-cand-win-horizontal-gtk.c
-index 4fac7411..0e008cd0 100644
---- a/gtk2/immodule/uim-cand-win-horizontal-gtk.c
-+++ b/gtk2/immodule/uim-cand-win-horizontal-gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -68,7 +68,11 @@ static gboolean label_draw(GtkWidget *label, cairo_t *cr, gpointer data);
- static gboolean label_exposed(GtkWidget *label, GdkEventExpose *event, gpointer data);
- #endif
- static void clear_button(struct index_button *idxbutton, gint cell_index);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+static void show_table(GtkGrid *view, GPtrArray *buttons);
-+#else
- static void show_table(GtkTable *view, GPtrArray *buttons);
-+#endif
- static void scale_label(GtkEventBox *button, double factor);
- 
- 
-@@ -133,8 +137,13 @@ uim_cand_win_horizontal_gtk_init (UIMCandWinHorizontalGtk *horizontal_cwin)
-   horizontal_cwin->buttons = g_ptr_array_new();
-   horizontal_cwin->selected = NULL;
- 
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  cwin->view = gtk_grid_new();
-+  gtk_grid_set_column_spacing(GTK_GRID(cwin->view), 10);
-+#else
-   cwin->view = gtk_table_new(1, DEFAULT_NR_CELLS, FALSE);
-   gtk_table_set_col_spacings(GTK_TABLE(cwin->view), 10);
-+#endif
-   viewport = gtk_viewport_new(NULL, NULL);
-   gtk_container_add(GTK_CONTAINER(viewport), cwin->view);
-   gtk_container_add(GTK_CONTAINER(cwin->scrolled_window), viewport);
-@@ -155,7 +164,13 @@ uim_cand_win_horizontal_gtk_init (UIMCandWinHorizontalGtk *horizontal_cwin)
- #else
-     g_signal_connect_after(label, "expose-event", G_CALLBACK(label_exposed), horizontal_cwin);
- #endif
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+    gtk_widget_set_hexpand(button, TRUE);
-+    gtk_widget_set_vexpand(button, TRUE);
-+    gtk_grid_attach(GTK_GRID(cwin->view), button, col, 0, 1, 1);
-+#else
-     gtk_table_attach_defaults(GTK_TABLE(cwin->view), button, col, col + 1, 0, 1);
-+#endif
-     idxbutton = g_malloc(sizeof(struct index_button));
-     if (idxbutton) {
-       idxbutton->button = GTK_EVENT_BOX(button);
-@@ -283,8 +298,7 @@ button_clicked(GtkEventBox *button, GdkEventButton *event, gpointer data)
-   prev_selected = horizontal_cwin->selected;
-   if (prev_selected) {
-     GtkWidget *label = gtk_bin_get_child(GTK_BIN(prev_selected->button));
--    gtk_widget_unmap(label);
--    gtk_widget_map(label);
-+    gtk_widget_queue_draw(label);
-   }
- 
-   for (i = 0; i < (gint)horizontal_cwin->buttons->len; i++) {
-@@ -298,8 +312,7 @@ button_clicked(GtkEventBox *button, GdkEventButton *event, gpointer data)
-     if (p == button) {
-       GtkWidget *label = gtk_bin_get_child(GTK_BIN(button));
-       idx = idxbutton->cand_index_in_page;
--      gtk_widget_unmap(label);
--      gtk_widget_map(label);
-+      gtk_widget_queue_draw(label);
-       horizontal_cwin->selected = idxbutton;
-       break;
-     }
-@@ -379,7 +392,14 @@ assign_cellbutton(UIMCandWinHorizontalGtk *horizontal_cwin,
- #else
-     g_signal_connect_after(label, "expose-event", G_CALLBACK(label_exposed), horizontal_cwin);
- #endif
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+    gtk_widget_set_hexpand(button, TRUE);
-+    gtk_widget_set_vexpand(button, TRUE);
-+    gtk_grid_attach(GTK_GRID(UIM_CAND_WIN_GTK(horizontal_cwin)->view), button,
-+                    cand_index, 0, 1, 1);
-+#else
-     gtk_table_attach_defaults(GTK_TABLE(UIM_CAND_WIN_GTK(horizontal_cwin)->view), button, cand_index, cand_index + 1, 0, 1);
-+#endif
-     idxbutton = g_malloc(sizeof(struct index_button));
-     if (idxbutton) {
-       idxbutton->button = GTK_EVENT_BOX(button);
-@@ -432,12 +452,10 @@ uim_cand_win_horizontal_gtk_set_index(UIMCandWinHorizontalGtk *horizontal_cwin,
-     prev_selected = (gpointer)horizontal_cwin->selected;
-     if (prev_selected && prev_index != cwin->candidate_index) {
-       label = gtk_bin_get_child(GTK_BIN(prev_selected->button));
--      gtk_widget_unmap(label);
--      gtk_widget_map(label);
-+      gtk_widget_queue_draw(label);
-     }
-     label = gtk_bin_get_child(GTK_BIN(idxbutton->button));
--    gtk_widget_unmap(label);
--    gtk_widget_map(label);
-+    gtk_widget_queue_draw(label);
-     horizontal_cwin->selected = idxbutton;
- 
-     /* show subwin */
-@@ -580,8 +598,9 @@ update_table_button(UIMCandWinHorizontalGtk *horizontal_cwin, guint new_page)
-       g_free(idxbutton);
-       g_ptr_array_remove_index(buttons, i);
-     }
--
-+#if !GTK_CHECK_VERSION(3, 4, 0)
-     gtk_table_resize(GTK_TABLE(cwin->view), 1, cand_index);
-+#endif
-   }
- }
- 
-@@ -607,7 +626,11 @@ uim_cand_win_horizontal_gtk_set_page(UIMCandWinHorizontalGtk *horizontal_cwin, g
-     new_page = page;
- 
-   update_table_button(horizontal_cwin, new_page);
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  show_table(GTK_GRID(cwin->view), horizontal_cwin->buttons);
-+#else
-   show_table(GTK_TABLE(cwin->view), horizontal_cwin->buttons);
-+#endif
- 
-   cwin->page_index = new_page;
- 
-@@ -629,7 +652,11 @@ uim_cand_win_horizontal_gtk_set_page(UIMCandWinHorizontalGtk *horizontal_cwin, g
- }
- 
- static void
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+show_table(GtkGrid *view, GPtrArray *buttons)
-+#else
- show_table(GtkTable *view, GPtrArray *buttons)
-+#endif
- {
-   gint col;
- 
-diff --git a/gtk2/immodule/uim-cand-win-vertical-gtk.c b/gtk2/immodule/uim-cand-win-vertical-gtk.c
-index 8034cbd9..eec0fbeb 100644
---- a/gtk2/immodule/uim-cand-win-vertical-gtk.c
-+++ b/gtk2/immodule/uim-cand-win-vertical-gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  copyright (c) 2011-2013 uim Project http://code.google.com/p/uim/
-+  copyright (c) 2011-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -206,16 +206,19 @@ tree_selection_change(GtkTreeSelection *selection,
-   g_return_val_if_fail(indicies, TRUE);
-   idx = *indicies + cwin->display_limit * cwin->page_index;
- 
-+  if (path_currently_selected && cwin->candidate_index >= 0) {
-+    /* if emit "index-changed" here and IM deactivates this candwin,
-+     * activates new candwin and selects a candidate on new candwin
-+     * from index-changed callback, SEGV occurs in gtk because gtk tries to
-+     * select on old candwin after return of this tree_selection_change().
-+     * To avoid SEGV, instead of emitting before selection change by gtk,
-+     * emit after selection changed by gtk. */
-+    cwin->index_changed = TRUE;
-+  }
-+
-   if (!path_currently_selected && cwin->candidate_index != idx) {
-     if (cwin->candidate_index >= 0) {
-       cwin->candidate_index = idx;
--      /* if emit "index-changed" here and IM deactivates this candwin,
--       * activates new candwin and selects a candidate on new candwin
--       * from index-changed callback, SEGV occurs in gtk because gtk tries to
--       * select on old candwin after return of this tree_selection_change().
--       * To avoid SEGV, instead of emitting before selection change by gtk,
--       * emit after selection changed by gtk. */
--      cwin->index_changed = TRUE;
-     }
- 
-     uim_cand_win_gtk_update_label(cwin);
-diff --git a/gtk2/pad/ja.c b/gtk2/pad/ja.c
-index f1b87fc0..a93bc6db 100644
---- a/gtk2/pad/ja.c
-+++ b/gtk2/pad/ja.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2004-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2004-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -264,6 +264,7 @@ gchar *line[] = {
- };
- 
- static int uim_fd = -1;
-+static unsigned int read_tag;
- 
- static GtkWidget *buttontable_create(char **table, int tablelen);
- static GtkWidget *create_hiragana_tab(void);
-@@ -280,13 +281,34 @@ static GtkWidget *input_table_create(gchar *localename);
- static void       padbutton_clicked(GtkButton *button, gpointer user_data);
- 
- 
-+static gboolean
-+fd_read_cb(GIOChannel *channel, GIOCondition c, gpointer p)
-+{
-+  gchar *msg;
-+  int fd = g_io_channel_unix_get_fd(channel);
-+
-+  uim_helper_read_proc(fd);
-+
-+  while ((msg = uim_helper_get_message())) {
-+    /* do nothing */
-+    free(msg);
-+  }
-+
-+  return TRUE;
-+}
-+
- static void
- check_helper_connection(void)
- {
-   if (uim_fd < 0) {
-     uim_fd = uim_helper_init_client_fd(helper_disconnect_cb);
--    if (uim_fd < 0)
--      return;
-+    if (uim_fd >= 0) {
-+      GIOChannel *channel;
-+      channel = g_io_channel_unix_new(uim_fd);
-+      read_tag = g_io_add_watch(channel, G_IO_IN | G_IO_HUP | G_IO_ERR,
-+				fd_read_cb, NULL);
-+      g_io_channel_unref(channel);
-+    }
-   }
- }
- 
-@@ -294,6 +316,7 @@ static void
- helper_disconnect_cb(void)
- {
-   uim_fd = -1;
-+  g_source_remove(read_tag);
- }
- 
- static void
-@@ -321,11 +344,17 @@ buttontable_create(gchar **table, int len)
-   gint i,j;
-   gint rows = ((len-2)/ BUTTON_H_ALIGN)+1;
- 
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  _table = gtk_grid_new();
-+  gtk_grid_set_row_spacing(GTK_GRID(_table), 3);
-+  gtk_grid_set_column_spacing(GTK_GRID(_table), 3);
-+#else
-   _table = gtk_table_new(rows,
- 			 BUTTON_H_ALIGN,
- 			 TRUE);
-   gtk_table_set_row_spacings(GTK_TABLE(_table), 3);
-   gtk_table_set_col_spacings(GTK_TABLE(_table), 3);
-+#endif
- 
-   for (i=0; i < rows; i++) {
-     for (j=0; j < BUTTON_H_ALIGN; j++) {
-@@ -338,10 +367,16 @@ buttontable_create(gchar **table, int len)
-       g_signal_connect(button, "clicked",
- 		       G_CALLBACK(padbutton_clicked), "button");
- 
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+      gtk_widget_set_hexpand(button, TRUE);
-+      gtk_widget_set_vexpand(button, TRUE);
-+      gtk_grid_attach(GTK_GRID(_table), button, j, i, 1, 1);
-+#else
-       gtk_table_attach_defaults(GTK_TABLE(_table),
- 				button,
- 				j, j + 1,
- 				i, i + 1);
-+#endif
-     }
-   }
-  out:
-diff --git a/gtk2/pref/gtk-custom-widgets.c b/gtk2/pref/gtk-custom-widgets.c
-index b1cdff6e..1307d7c0 100644
---- a/gtk2/pref/gtk-custom-widgets.c
-+++ b/gtk2/pref/gtk-custom-widgets.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2005-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2005-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -1280,18 +1280,30 @@ choose_olist_clicked_cb(GtkWidget *widget, GtkEntry *olist_entry)
- 		     FALSE, FALSE, 4);
-   gtk_widget_show(vbox);
- 
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  table = gtk_grid_new();
-+  gtk_grid_set_row_spacing(GTK_GRID(table), 3);
-+  gtk_grid_set_column_spacing(GTK_GRID(table), 3);
-+#else
-   table = gtk_table_new(3, 6, FALSE);
-   gtk_table_set_row_spacings(GTK_TABLE(table), 3);
-   gtk_table_set_col_spacings(GTK_TABLE(table), 3);
-+#endif
-   gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
-   gtk_widget_show(table);
- 
-   /* up button */
-   button = gtk_button_new();
-   olist_pref_win.up_button = button;
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(button, TRUE);
-+  gtk_widget_set_vexpand(button, TRUE);
-+  gtk_grid_attach(GTK_GRID(table), button, 1, 0, 1, 1);
-+#else
-   gtk_table_attach_defaults(GTK_TABLE(table), button,
- 			    1, 2,
- 			    0, 1);
-+#endif
-   gtk_widget_show(button);
-   arrow = gtk_arrow_new(GTK_ARROW_UP, GTK_SHADOW_NONE);
-   gtk_container_add(GTK_CONTAINER(button), arrow);
-@@ -1302,9 +1314,15 @@ choose_olist_clicked_cb(GtkWidget *widget, GtkEntry *olist_entry)
-   /* down button */
-   button = gtk_button_new();
-   olist_pref_win.down_button = button;
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(button, TRUE);
-+  gtk_widget_set_vexpand(button, TRUE);
-+  gtk_grid_attach(GTK_GRID(table), button, 1, 2, 1, 1);
-+#else
-   gtk_table_attach_defaults(GTK_TABLE(table), button,
- 			    1, 2,
- 			    2, 3);
-+#endif
-   gtk_widget_show(button);
-   arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);
-   gtk_container_add(GTK_CONTAINER(button), arrow);
-@@ -1315,9 +1333,15 @@ choose_olist_clicked_cb(GtkWidget *widget, GtkEntry *olist_entry)
-   /* left button */
-   button = gtk_button_new();
-   olist_pref_win.left_button = button;
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(button, TRUE);
-+  gtk_widget_set_vexpand(button, TRUE);
-+  gtk_grid_attach(GTK_GRID(table), button, 0, 1, 1, 1);
-+#else
-   gtk_table_attach_defaults(GTK_TABLE(table), button,
- 			    0, 1,
- 			    1, 2);
-+#endif
-   gtk_widget_show(button);
-   arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE);
-   gtk_container_add(GTK_CONTAINER(button), arrow);
-@@ -1328,9 +1352,15 @@ choose_olist_clicked_cb(GtkWidget *widget, GtkEntry *olist_entry)
-   /* right button */
-   button = gtk_button_new();
-   olist_pref_win.right_button = button;
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+  gtk_widget_set_hexpand(button, TRUE);
-+  gtk_widget_set_vexpand(button, TRUE);
-+  gtk_grid_attach(GTK_GRID(table), button, 2, 1, 1, 1);
-+#else
-   gtk_table_attach_defaults(GTK_TABLE(table), button,
- 			    2, 3,
- 			    1, 2);
-+#endif
-   gtk_widget_show(button);
-   arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
-   gtk_container_add(GTK_CONTAINER(button), arrow);
-diff --git a/gtk2/pref/gtk.c b/gtk2/pref/gtk.c
-index 72747362..08a02fdb 100644
---- a/gtk2/pref/gtk.c
-+++ b/gtk2/pref/gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2005-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2005-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -439,8 +439,12 @@ create_group_widget(const char *group_name)
- #else
-   vbox = gtk_vbox_new(FALSE, 8);
- #endif
-+#if GTK_CHECK_VERSION(3, 8, 0)
-+  gtk_container_add(GTK_CONTAINER(scrolled_win), vbox);
-+#else
-   gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_win),
- 					vbox);
-+#endif
- 
-   gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
- 
-diff --git a/gtk2/toolbar/Makefile.am b/gtk2/toolbar/Makefile.am
-index 887fb6f0..48773a56 100644
---- a/gtk2/toolbar/Makefile.am
-+++ b/gtk2/toolbar/Makefile.am
-@@ -2,15 +2,15 @@ EXTRA_DIST = GNOME_UimApplet.server.in.in
- 
- helper_defs = -DUIM_DATADIR=\""$(datadir)/@PACKAGE@"\"
- 
--if APPLET_GNOME
-+if GNOME_APPLET
- libexec_PROGRAMS =  uim-toolbar-applet
- 
--uim_toolbar_applet_LDADD = @GTK2_LIBS@ @APPLET_GNOME_LIBS@ \
-+uim_toolbar_applet_LDADD = @GTK2_LIBS@ @GNOME_APPLET_LIBS@ \
- 			   $(top_builddir)/uim/libuim-scm.la \
- 			   $(top_builddir)/uim/libuim.la \
- 			   $(top_builddir)/uim/libuim-custom.la
- uim_toolbar_applet_CPPFLAGS = $(helper_defs) -I$(top_srcdir) -I$(top_builddir)
--uim_toolbar_applet_CFLAGS = @GTK2_CFLAGS@ @APPLET_GNOME_CFLAGS@
-+uim_toolbar_applet_CFLAGS = @GTK2_CFLAGS@ @GNOME_APPLET_CFLAGS@
- if GCC
- # to cancel "-std=gnu89 -pedantic -Werror" and accept the string
- # uim_menu_xml longer than ISO C 89 maximum length (509)
-diff --git a/gtk2/toolbar/common-gtk.c b/gtk2/toolbar/common-gtk.c
-index 1deefaa6..c63519ba 100644
---- a/gtk2/toolbar/common-gtk.c
-+++ b/gtk2/toolbar/common-gtk.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -171,31 +171,65 @@ static gboolean prop_menu_showing = FALSE;
- static gboolean custom_enabled;
- static gboolean with_dark_bg;
- 
--static void set_button_style(GtkWidget *button);
-+static void set_button_style(GtkWidget *button, gint type);
- static const char *safe_gettext(const char *msgid);
- static gboolean has_n_strs(gchar **str_list, guint n);
- static gboolean register_icon(const gchar *name);
- static void reset_icon(void);
- 
- static void
--set_button_style(GtkWidget *button)
-+set_button_style(GtkWidget *button, gint type)
- {
- #if GTK_CHECK_VERSION(2, 90, 0)
-     GtkStyleContext *context = gtk_widget_get_style_context(button);
-     GtkCssProvider *provider = gtk_css_provider_new();
--    gtk_css_provider_load_from_data(provider,
--                                    "#uim-systray-button {\n"
--                                    " -GtkWidget-focus-line-width: 0;\n"
--                                    " -GtkWidget-focus-padding: 0;\n"
--                                    " padding-top: 0;\n"
--                                    " padding-bottom: 0;\n"
--                                    "}\n", -1, NULL);
-+    switch (type) {
-+    case TYPE_ICON:
-+        gtk_css_provider_load_from_data(provider,
-+                                        "#uim-systray-button {\n"
-+#if GTK_CHECK_VERSION(3, 14, 0)
-+                                        " outline-width: 0;\n"
-+#else
-+                                        " -GtkWidget-focus-line-width: 0;\n"
-+                                        " -GtkWidget-focus-padding: 0;\n"
-+#endif
-+                                        " padding-top: 0;\n"
-+                                        " padding-bottom: 0;\n"
-+                                        " padding-left: 2px;\n"
-+                                        " padding-right: 2px;\n"
-+                                        "}\n", -1, NULL);
-+	break;
-+    case TYPE_STANDALONE:
-+        gtk_css_provider_load_from_data(provider,
-+                                        "#uim-toolbar-button {\n"
-+                                        " padding-left: 5px;\n"
-+                                        " padding-right: 5px;\n"
-+                                        "}\n", -1, NULL);
-+	break;
-+    case TYPE_APPLET:
-+         gtk_css_provider_load_from_data(provider,
-+                                        "#uim-applet-button {\n"
-+                                        " padding-left: 2px;\n"
-+                                        " padding-right: 2px;\n"
-+                                        "}\n", -1, NULL);
-+	break;
-+   }
-     gtk_style_context_add_provider(context,
-                                    GTK_STYLE_PROVIDER(provider),
-                                    GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-     g_object_unref(provider);
- #endif
--    gtk_widget_set_name(button, "uim-systray-button");
-+    switch (type) {
-+    case TYPE_ICON:
-+        gtk_widget_set_name(button, "uim-systray-button");
-+	break;
-+    case TYPE_STANDALONE:
-+        gtk_widget_set_name(button, "uim-toolbar-button");
-+	break;
-+    case TYPE_APPLET:
-+        gtk_widget_set_name(button, "uim-applet-button");
-+	break;
-+    }
- }
- 
- static const char *
-@@ -605,14 +639,11 @@ tool_button_destroy(gpointer data, gpointer user_data)
-   gtk_widget_destroy(GTK_WIDGET(data));
- }
- 
--static GtkWidget *
--prop_button_create(GtkWidget *widget, const gchar *icon_name,
--		   const gchar *label, const gchar *tip_text)
-+static GtkWidget*
-+button_create(GtkWidget *widget, GtkSizeGroup *sg, const gchar *icon_name,
-+              const gchar *label, gint type)
- {
-   GtkWidget *button;
--  GtkSizeGroup *sg;
--
--  sg = g_object_get_data(G_OBJECT(widget), OBJECT_DATA_SIZE_GROUP);
- 
-   if (register_icon(icon_name)) {
-     GtkWidget *img = gtk_image_new_from_stock(icon_name, GTK_ICON_SIZE_MENU);
-@@ -622,18 +653,35 @@ prop_button_create(GtkWidget *widget, const gchar *icon_name,
-     button = gtk_button_new_with_label(label);
-   }
- 
--  if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
--		      OBJECT_DATA_TOOLBAR_TYPE)) == TYPE_ICON)
--    set_button_style(button);
-+  set_button_style(button, type);
- 
-   gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-   gtk_size_group_add_widget(sg, button);
-   g_object_set_data(G_OBJECT(button), OBJECT_DATA_BUTTON_TYPE,
- 		    GINT_TO_POINTER(BUTTON_PROP));
--  gtk_widget_set_tooltip_text(button, tip_text);
- 
-   g_signal_connect(G_OBJECT(button), "button-press-event",
- 		   G_CALLBACK(button_pressed), widget);
-+
-+  return button;
-+}
-+
-+static GtkWidget *
-+prop_button_create(GtkWidget *widget, const gchar *icon_name,
-+		   const gchar *label, const gchar *tip_text)
-+{
-+  GtkWidget *button;
-+  GtkSizeGroup *sg;
-+  gint type;
-+
-+  sg = g_object_get_data(G_OBJECT(widget), OBJECT_DATA_SIZE_GROUP);
-+  type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
-+		         OBJECT_DATA_TOOLBAR_TYPE));
-+
-+  button = button_create(widget, sg, icon_name, label, type);
-+
-+  gtk_widget_set_tooltip_text(button, tip_text);
-+
-   g_signal_connect(G_OBJECT(button), "button-release-event",
- 		   G_CALLBACK(prop_button_released), widget);
- 
-@@ -829,9 +877,9 @@ helper_toolbar_prop_list_update(GtkWidget *widget, gchar **lines)
- 
-     tool_button = gtk_button_new();
- 
--    if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
--			OBJECT_DATA_TOOLBAR_TYPE)) == TYPE_ICON)
--      set_button_style(tool_button);
-+    set_button_style(tool_button,
-+                     GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
-+                                     OBJECT_DATA_TOOLBAR_TYPE)));
- 
-     g_object_set_data(G_OBJECT(tool_button), OBJECT_DATA_BUTTON_TYPE,
- 		      GINT_TO_POINTER(BUTTON_TOOL));
-@@ -1102,24 +1150,9 @@ toolbar_new(gint type)
-   sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- 
-   /* prop menu button */
--  if (register_icon("uim-icon")) {
--    GtkWidget *img = gtk_image_new_from_stock("uim-icon", GTK_ICON_SIZE_MENU);
--    button = gtk_button_new();
--    gtk_container_add(GTK_CONTAINER(button), img);
--  } else {
--    button = gtk_button_new_with_label(" x");
--  }
-+  button = button_create(hbox, sg, "uim-icon", " x", type);
- 
--  if (type == TYPE_ICON)
--    set_button_style(button);
--
--  gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
--  gtk_size_group_add_widget(sg, button);
--  g_signal_connect(G_OBJECT(button), "button-press-event",
--		   G_CALLBACK(button_pressed), hbox);
-   gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
--  g_object_set_data(G_OBJECT(button), OBJECT_DATA_BUTTON_TYPE,
--		    GINT_TO_POINTER(BUTTON_PROP));
- 
-   prop_buttons = g_list_append(prop_buttons, button);
- 
-diff --git a/gtk2/toolbar/eggtrayicon.c b/gtk2/toolbar/eggtrayicon.c
-index 7c0f51f9..6d944ca6 100644
---- a/gtk2/toolbar/eggtrayicon.c
-+++ b/gtk2/toolbar/eggtrayicon.c
-@@ -727,8 +727,14 @@ egg_tray_icon_realize (GtkWidget *widget)
-   if (icon->manager_visual_rgba)
-     {
-       /* Set a transparent background */
-+#if GTK_CHECK_VERSION(3, 4, 0)
-+      GdkRGBA transparent = { 0, 0, 0, 0 };
-+      gdk_window_set_background_rgba (gtk_widget_get_window(widget),
-+                                      &transparent);
-+#else
-       GdkColor transparent = { 0, 0, 0, 0 }; /* Only pixel=0 matters */
-       gdk_window_set_background (gtk_widget_get_window(widget), &transparent);
-+#endif
-     }
-   else
-     {
-diff --git a/gtk3/immodule/Makefile.am b/gtk3/immodule/Makefile.am
-index 40554967..18c26f5f 100644
---- a/gtk3/immodule/Makefile.am
-+++ b/gtk3/immodule/Makefile.am
-@@ -35,26 +35,16 @@ IM_UIM_SOURCES = \
- 	../../gtk2/immodule/compose.c ../../gtk2/immodule/compose.h \
- 	../../gtk2/immodule/text-util.c ../../gtk2/immodule/text-util.h
- 
--noinst_PROGRAMS = gtk3-rc-get-immodule-file
--gtk3_rc_get_immodule_file_SOURCES = \
--	../../gtk2/immodule/gtk-rc-get-immodule-file.c
--gtk3_rc_get_immodule_file_CFLAGS = @GTK3_CFLAGS@
--gtk3_rc_get_immodule_file_LDADD = @GTK3_LIBS@
--GTK3_RC_GET_IMMODULE_FILE = $(top_builddir)/gtk3/immodule/gtk3-rc-get-immodule-file
- QUERY_COMMAND = gtk-query-immodules-3.0
- 
--install-data-hook: gtk3-rc-get-immodule-file
-+install-data-hook:
- 	if test -z $(DESTDIR); then \
- 	  if test $(libdir) = $(GTK3_LIBDIR); then \
- 	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
- 	      $(QUERY_COMMAND) --update-cache; \
--	      echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
- 	    else \
- 	      echo "********************** Warning ***********************"; \
- 	      echo " $(QUERY_COMMAND) not found"; \
--	      echo " Please make sure to update"; \
--	      echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \
--	      echo " manually."; \
- 	      echo "******************************************************"; \
- 	    fi \
- 	  else \
-diff --git a/gtk3/toolbar/Makefile.am b/gtk3/toolbar/Makefile.am
-index 201d5121..e78fced5 100644
---- a/gtk3/toolbar/Makefile.am
-+++ b/gtk3/toolbar/Makefile.am
-@@ -1,46 +1,47 @@
- EXTRA_DIST = UimApplet.panel-applet.in.in \
--	     org.gnome.panel.applet.UimAppletFactory.service.in
-+	     uim-applet-menu.xml
- 
--if APPLET_GNOME3
-+if GNOME3_APPLET
- helper_defs = -DUIM_DATADIR=\""$(datadir)/@PACKAGE@"\"
- 
--libexec_PROGRAMS = uim-toolbar-applet-gnome3
-+uim_toolbar_applet_gnome3_libdir = $(pkglibdir)
-+uim_toolbar_applet_gnome3_lib_LTLIBRARIES = libuim-toolbar-applet-gnome3.la
- 
--uim_toolbar_applet_gnome3_LDADD = @GTK3_LIBS@ @APPLET_GNOME3_LIBS@ \
-+xmluidir = $(pkgdatadir)/ui
-+xmlui_DATA = uim-applet-menu.xml
-+
-+libuim_toolbar_applet_gnome3_la_LIBADD = @GTK3_LIBS@ @GNOME3_APPLET_LIBS@ \
- 			   $(top_builddir)/uim/libuim-scm.la \
- 			   $(top_builddir)/uim/libuim.la \
- 			   $(top_builddir)/uim/libuim-custom.la
--uim_toolbar_applet_gnome3_CPPFLAGS = \
-+libuim_toolbar_applet_gnome3_la_CPPFLAGS = \
-+			   -DUIM_UIDATADIR="\"${xmluidir}\"" \
- 			   $(helper_defs) -I$(top_srcdir) -I$(top_builddir)
--									 
--uim_toolbar_applet_gnome3_CFLAGS = @GTK3_CFLAGS@ @APPLET_GNOME3_CFLAGS@
-+libuim_toolbar_applet_gnome3_la_LDFLAGS = \
-+			   -module -avoid-version
-+
-+libuim_toolbar_applet_gnome3_la_CFLAGS = @GTK3_CFLAGS@ @GNOME3_APPLET_CFLAGS@
- 
--uim_toolbar_applet_gnome3_SOURCES = applet-gnome3.c \
-+libuim_toolbar_applet_gnome3_la_SOURCES = applet-gnome3.c \
- 			       ../../gtk2/toolbar/common-gtk.c
- 
--appletdir = $(datadir)/gnome-panel/4.0/applets
-+APPLET_LOCATION = $(pkglibdir)/libuim-toolbar-applet-gnome3.so
-+
-+appletdir = $(LIBPANEL_APPLET_DIR)
- applet_DATA = UimApplet.panel-applet
- applet_in_files = $(applet_DATA:=.in)
- applet_in_in_files = $(applet_in_files:=.in)
- 
- $(applet_in_files): $(applet_in_in_files) Makefile
--	$(SED) s, at LIBEXECDIR@,$(libexecdir),g <$< >$@.tmp
-+	$(SED) s, at APPLET_LOCATION@,$(APPLET_LOCATION),g <$< >$@.tmp
- 	$(SED) s, at UIM_PIXMAPSDIR@,$(uim_pixmapsdir),g <$@.tmp >$@
- 
- po_files = $(wildcard $(top_srcdir)/po/*.po)
- $(applet_DATA): $(applet_in_files) $(INTLTOOL_MERGE) $(po_files)
- 	LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@ 
- 
--servicedir = $(datadir)/dbus-1/services
--service_DATA = org.gnome.panel.applet.UimAppletFactory.service
--service_in_files = $(service_DATA:=.in)
--
--$(service_DATA): $(service_in_files) Makefile
--	sed s, at LIBEXECDIR@,$(libexecdir),g <$< >$@
--
- DISTCLEANFILES = UimApplet.panel-applet.in UimApplet.panel-applet \
--		 UimApplet.panel-applet.in.tmp \
--		 org.gnome.panel.applet.UimAppletFactory.service
-+		 UimApplet.panel-applet.in.tmp
- endif
- 
- if GTK3
-diff --git a/gtk3/toolbar/UimApplet.panel-applet.in.in b/gtk3/toolbar/UimApplet.panel-applet.in.in
-index 88550957..c2e2696b 100644
---- a/gtk3/toolbar/UimApplet.panel-applet.in.in
-+++ b/gtk3/toolbar/UimApplet.panel-applet.in.in
-@@ -1,6 +1,7 @@
- [Applet Factory]
- Id=UimAppletFactory
--Location=@LIBEXECDIR@/uim-toolbar-applet-gnome3
-+InProcess=true
-+Location=@APPLET_LOCATION@
- _Name=uim Applet Factory
- _Description=uim applet factory
- 
-diff --git a/gtk3/toolbar/applet-gnome3.c b/gtk3/toolbar/applet-gnome3.c
-index 19d19930..708f0342 100644
---- a/gtk3/toolbar/applet-gnome3.c
-+++ b/gtk3/toolbar/applet-gnome3.c
-@@ -1,6 +1,6 @@
- /*
- 
--  Copyright (c) 2003-2013 uim Project http://code.google.com/p/uim/
-+  Copyright (c) 2003-2013 uim Project https://github.com/uim/uim
- 
-   All rights reserved.
- 
-@@ -44,83 +44,66 @@
- 
- PanelApplet *uimapplet;
- 
--static void exec_switcher(GtkAction *action, gpointer data);
--static void exec_pref(GtkAction *action, gpointer data);
--static void exec_dic(GtkAction *action, gpointer data);
--static void exec_pad(GtkAction *action, gpointer data);
--static void exec_hand(GtkAction *action, gpointer data);
--static void exec_help(GtkAction *action, gpointer data);
--static void display_about_dialog(GtkAction *action, gpointer data);
-+static void exec_switcher(GSimpleAction *action, GVariant *parameter, gpointer data);
-+static void exec_pref(GSimpleAction *action, GVariant *parameter, gpointer data);
-+static void exec_dic(GSimpleAction *action, GVariant *parameter, gpointer data);
-+static void exec_pad(GSimpleAction *action, GVariant *parameter, gpointer data);
-+static void exec_hand(GSimpleAction *action, GVariant *parameter, gpointer data);
-+static void exec_help(GSimpleAction *action, GVariant *parameter, gpointer data);
-+static void display_about_dialog(GSimpleAction *action, GVariant *parameter, gpointer data);
- 
- extern GtkWidget *uim_toolbar_applet_new(void);
- extern void uim_toolbar_launch_helper_application(const char *command);
- 
--
--static const GtkActionEntry uim_menu_actions[] = {
--  {"Switcher", "im_switcher",
--    N_("Switch input method"), NULL, NULL, G_CALLBACK(exec_switcher)},
--  {"Pref", GTK_STOCK_PREFERENCES,
--    N_("Preference"), NULL, NULL, G_CALLBACK(exec_pref)},
--  {"Dic", "uim-dict",
--    N_("Japanese dictionary editor"), NULL, NULL, G_CALLBACK(exec_dic)},
--  {"Pad", GTK_STOCK_BOLD,
--    N_("Input pad"), NULL, NULL, G_CALLBACK(exec_pad)},
--  {"Hand", GTK_STOCK_EDIT,
--    N_("Handwriting input pad"), NULL, NULL, G_CALLBACK(exec_hand)},
--  {"Help", GTK_STOCK_HELP,
--    N_("Help"), NULL, NULL, G_CALLBACK(exec_help)},
--  {"About", GTK_STOCK_ABOUT,
--    N_("About"), NULL, NULL, G_CALLBACK(display_about_dialog)}
-+static const GActionEntry uim_menu_actions[] = {
-+  { "switcher", exec_switcher },
-+  { "pref", exec_pref },
-+  { "dic", exec_dic },
-+  { "pad", exec_pad },
-+  { "hand", exec_hand },
-+  { "help", exec_help },
-+  { "about", display_about_dialog }
- };
- 
--static const char uim_menu_xml[] =
--  "<menuitem action=\"Switcher\"/>"
--  "<menuitem action=\"Pref\"/>"
--  "<menuitem action=\"Dic\"/>"
--  "<menuitem action=\"Pad\"/>"
--  "<menuitem action=\"Hand\"/>"
--  "<menuitem action=\"Help\"/>"
--  "<menuitem action=\"About\"/>";
--
- static void
--exec_switcher(GtkAction *action, gpointer data)
-+exec_switcher(GSimpleAction *action, GVariant *parameter, gpointer data)
- {
-   uim_toolbar_launch_helper_application("uim-im-switcher-gtk3");
- }
- 
- static void
--exec_pref(GtkAction *action, gpointer data)
-+exec_pref(GSimpleAction *action, GVariant *parameter, gpointer data)
- {
-   uim_toolbar_launch_helper_application("uim-pref-gtk3");
- }
- 
- static void
--exec_dic(GtkAction *action, gpointer data)
-+exec_dic(GSimpleAction *action, GVariant *parameter, gpointer data)
- {
-   uim_toolbar_launch_helper_application("uim-dict-gtk3");
- }
- 
- static void
--exec_pad(GtkAction *action, gpointer data)
-+exec_pad(GSimpleAction *action, GVariant *parameter, gpointer data)
- {
-   uim_toolbar_launch_helper_application("uim-input-pad-ja-gtk3");
- }
- 
- static void
--exec_hand(GtkAction *action, gpointer data)
-+exec_hand(GSimpleAction *action, GVariant *parameter, gpointer data)
- {
-   uim_toolbar_launch_helper_application("uim-tomoe-gtk");
- }
- 
- static void
--exec_help(GtkAction *uic, gpointer data)
-+exec_help(GSimpleAction *action, GVariant *parameter, gpointer data)
- {
-   uim_toolbar_launch_helper_application("uim-help");
- }
- 
- /* Just the about window... If it's already open, just focus it */
- static void
--display_about_dialog(GtkAction *action, gpointer data)
-+display_about_dialog(GSimpleAction *action, GVariant *parameter, gpointer data)
- {
-   GdkPixbuf *icon = NULL;
-   const gchar *authors[] = {"uim Project", NULL};
-@@ -149,7 +132,8 @@ static gboolean
- uim_applet_new(PanelApplet *applet, const gchar *iid, gpointer data)
- {
-   GtkWidget *toolbar;
--  GtkActionGroup *action_group;
-+  GSimpleActionGroup *action_group;
-+  gchar *ui_path;
-   
-   uimapplet = applet;
- 
-@@ -164,11 +148,16 @@ uim_applet_new(PanelApplet *applet, const gchar *iid, gpointer data)
- 
-   gtk_widget_show_all(GTK_WIDGET(applet));
- 
--  action_group = gtk_action_group_new("uim Applet Actions");
--  gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE);
--  gtk_action_group_add_actions(action_group, uim_menu_actions,
-+  action_group = g_simple_action_group_new();
-+  g_action_map_add_action_entries(G_ACTION_MAP (action_group), uim_menu_actions,
-       G_N_ELEMENTS(uim_menu_actions), toolbar);
--  panel_applet_setup_menu(applet, uim_menu_xml, action_group);
-+
-+  ui_path = g_build_filename (UIM_UIDATADIR, "uim-applet-menu.xml", NULL);
-+  panel_applet_setup_menu_from_file(applet, ui_path, action_group, GETTEXT_PACKAGE);
-+  g_free(ui_path);
-+
-+  gtk_widget_insert_action_group (GTK_WIDGET (applet), "uim",
-+                                  G_ACTION_GROUP (action_group));
- #if LIBPANEL_APPLET_HAVE_SET_BACKGROUND_WIDGET
-   panel_applet_set_background_widget(applet, GTK_WIDGET(applet));
- #endif
-@@ -179,7 +168,7 @@ uim_applet_new(PanelApplet *applet, const gchar *iid, gpointer data)
- 
- 
- 
--PANEL_APPLET_OUT_PROCESS_FACTORY("UimAppletFactory",
-+PANEL_APPLET_IN_PROCESS_FACTORY("UimAppletFactory",
-                             PANEL_TYPE_APPLET,
-                             (PanelAppletFactoryCallback)uim_applet_new,
-                             NULL)
-diff --git a/gtk3/toolbar/org.gnome.panel.applet.UimAppletFactory.service.in b/gtk3/toolbar/org.gnome.panel.applet.UimAppletFactory.service.in
-deleted file mode 100644
-index 04864d08..00000000
---- a/gtk3/toolbar/org.gnome.panel.applet.UimAppletFactory.service.in
-+++ /dev/null
-@@ -1,3 +0,0 @@
--[D-BUS Service]
--Name=org.gnome.panel.applet.UimAppletFactory
--Exec=@LIBEXECDIR@/uim-toolbar-applet-gnome3
-diff --git a/gtk3/toolbar/uim-applet-menu.xml b/gtk3/toolbar/uim-applet-menu.xml
-new file mode 100644
-index 00000000..6220369d
---- /dev/null
-+++ b/gtk3/toolbar/uim-applet-menu.xml
-@@ -0,0 +1,30 @@
-+<section>
-+  <item>
-+    <attribute name="label" translatable="yes">Switch input method</attribute>
-+    <attribute name="action">uim.switcher</attribute>
-+  </item>
-+  <item>
-+    <attribute name="label" translatable="yes">Preference</attribute>
-+    <attribute name="action">uim.pref</attribute>
-+  </item>
-+  <item>
-+    <attribute name="label" translatable="yes">Japanese dictionary editor</attribute>
-+    <attribute name="action">uim.dic</attribute>
-+  </item>
-+  <item>
-+    <attribute name="label" translatable="yes">Input pad</attribute>
-+    <attribute name="action">uim.pad</attribute>
-+  </item>
-+  <item>
-+    <attribute name="label" translatable="yes">Handwriting input pad</attribute>
-+    <attribute name="action">uim.hand</attribute>
-+  </item>
-+  <item>
-+    <attribute name="label" translatable="yes">Help</attribute>
-+    <attribute name="action">uim.help</attribute>
-+  </item>
-+  <item>
-+    <attribute name="label" translatable="yes">About</attribute>
-+    <attribute name="action">uim.about</attribute>
-+  </item>
-+</section>
---- uim-1.8.6/configure.ac.orig	2017-02-11 11:02:15.467236998 +0100
-+++ uim-1.8.6/configure.ac	2017-02-11 11:02:19.537435202 +0100
-@@ -1041,10 +1041,10 @@
-                  [Determine default toolkit (gtk, gtk3, qt, or qt4)
- 		  @<:@default=gtk@:>@]),
-   [
--  if test x"$enable_default_toolkit" = "xgtk" && test x"$use_gtk2" = "xyes"; then
-+  if test x"$enable_default_toolkit" = "xgtk" && test x"$with_gtk2" = "xyes"; then
-      default_toolkit="gtk"
-   fi
--  if test x"$enable_default_toolkit" = "xgtk3" && test x"$use_gtk3" = "xyes"; then
-+  if test x"$enable_default_toolkit" = "xgtk3" && test x"$with_gtk3" = "xyes"; then
-      default_toolkit="gtk3"
-   fi
-   if test x"$enable_default_toolkit" = "xqt" && test x"$use_qt" = "xyes"; then
-@@ -1277,15 +1277,10 @@
- AM_CONDITIONAL(OPENSSL, test x$use_openssl = xyes)
- AM_CONDITIONAL(SQLITE3, test x$use_sqlite3 = xyes)
- AM_CONDITIONAL(FFI, test x$use_ffi = xyes)
--AM_CONDITIONAL(GTK2, test x$use_gtk2 = xyes)
--AM_CONDITIONAL(GTK2_4, test x$use_gtk2_4 = xyes)
--AM_CONDITIONAL(GTK3, test x$use_gtk3 = xyes)
- AM_CONDITIONAL(DEFAULT_TOOLKIT_GTK, test x$default_toolkit = xgtk)
- AM_CONDITIONAL(DEFAULT_TOOLKIT_GTK3, test x$default_toolkit = xgtk3)
- AM_CONDITIONAL(DEFAULT_TOOLKIT_QT,  test x$default_toolkit = xqt)
- AM_CONDITIONAL(DEFAULT_TOOLKIT_QT4, test x$default_toolkit = xqt4)
--AM_CONDITIONAL(APPLET_GNOME, test x$use_applet_gnome = xyes)
--AM_CONDITIONAL(APPLET_GNOME3, test x$use_applet_gnome3 = xyes)
- AM_CONDITIONAL(UIM_FEP, test x$use_uim_fep = xyes)
- AM_CONDITIONAL(UIM_EL, test x$use_uim_el = xyes)
- AM_CONDITIONAL(XIM, test x$use_xim = xyes)
-@@ -1301,24 +1296,6 @@
- 
- IT_PROG_INTLTOOL([0.36.3], [no-xml])
- 
--GTK_BINARY_VERSION=`$PKG_CONFIG gtk+-2.0 --variable=gtk_binary_version`
--GTK_LIBDIR=`$PKG_CONFIG gtk+-2.0 --variable=libdir`
--AC_SUBST(GTK_BINARY_VERSION)
--AC_SUBST(GTK_LIBDIR)
--
--GTK3_BINARY_VERSION=`$PKG_CONFIG gtk+-3.0 --variable=gtk_binary_version`
--GTK3_LIBDIR=`$PKG_CONFIG gtk+-3.0 --variable=libdir`
--AC_SUBST(GTK3_BINARY_VERSION)
--AC_SUBST(GTK3_LIBDIR)
--
--if test x$use_gtk2 = xyes ; then
--AC_DEFINE(USE_GTK2, 1, [use gtk2])
--fi
--
--if test x$use_gtk3 = xyes ; then
--    AC_DEFINE(USE_GTK3, 1, [use gtk3])
--fi
--
- if test x$use_qt = xyes ; then
-     # minimum version
-     QT_VERSION=3.2.0
-@@ -1570,10 +1570,10 @@
- 	;;
-       yes|*)
- 	if test x"$default_toolkit" = "xgtk" && \
--	   test x"$use_gtk2_4" = "xyes"; then
-+	   test x"$with_gtk2_4" = "xyes"; then
- 	  use_pref="yes"
- 	elif test x"$default_toolkit" = "xgtk3" && \
--	     test x"$use_gtk3" = "xyes"; then
-+	     test x"$with_gtk3" = "xyes"; then
- 	  use_pref="yes"
- 	elif test x"$default_toolkit" = "xqt" && \
- 	     test x"$use_qt" = "xyes"; then
-@@ -1589,10 +1589,10 @@
-     esac ],
-   [
-     if test x"$default_toolkit" = "xgtk" && \
--       test x"$use_gtk2_4" = "xyes"; then
-+       test x"$with_gtk2_4" = "xyes"; then
-       use_pref="yes"
-     elif test x"$default_toolkit" = "xgtk3" && \
--         test x"$use_gtk3" = "xyes"; then
-+         test x"$with_gtk3" = "xyes"; then
-       use_pref="yes"
-     elif test x"$default_toolkit" = "xqt" && \
-          test x"$use_qt" = "xyes"; then
-@@ -2063,10 +2063,10 @@
-    OpenSSL         : ${use_openssl}
-    SQLite3         : ${use_sqlite3}
-    ffi             : ${use_ffi}
--   Gtk+            : ${use_gtk2}
--   Gnome Applet    : ${use_applet_gnome}
--   Gtk+3           : ${use_gtk3}
--   Gnome3 Applet   : ${use_applet_gnome3}
-+   Gtk+            : ${with_gtk2}
-+   Gnome Applet    : ${enable_gnome_applet}
-+   Gtk+3           : ${with_gtk3}
-+   Gnome3 Applet   : ${enable_gnome3_applet}
-    Qt3             : ${use_qt}
-    Qt3 immodule    : ${use_qtimmodule}
-    Qt4             : ${use_qt4}
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/uim.git/commitdiff/b1adeb71c5eae57040dba3a04b95f6581b57dcb0



More information about the pld-cvs-commit mailing list