diff --git a/ibus-hangul-HEAD.patch b/ibus-hangul-HEAD.patch
new file mode 100644
index 0000000..a467486
--- /dev/null
+++ b/ibus-hangul-HEAD.patch
@@ -0,0 +1,424 @@
+diff --git a/setup/ibus-setup-hangul.desktop.in b/setup/ibus-setup-hangul.desktop.in
+index a956593..882abbc 100644
+--- a/setup/ibus-setup-hangul.desktop.in
++++ b/setup/ibus-setup-hangul.desktop.in
+@@ -4,6 +4,7 @@ _Name=IBus Hangul Preferences
+ _Comment=Set IBus Hangul Preferences
+ Exec=ibus-setup-hangul
+ Icon=ibus-setup-hangul
++NoDisplay=true
+ Terminal=false
+ Type=Application
+ StartupNotify=true
+diff --git a/setup/keycapturedialog.py b/setup/keycapturedialog.py
+index a6c9cff..a431221 100644
+--- a/setup/keycapturedialog.py
++++ b/setup/keycapturedialog.py
+@@ -1,42 +1,42 @@
+-import gtk
+-import gtk.gdk as gdk
++from gi.repository import Gtk
++from gi.repository import Gdk
+ import gettext
+
+ _ = lambda a : gettext.dgettext("ibus-hangul", a)
+
+ class KeyCaptureDialog ():
+ def __init__ (self, title, parent):
+- self.__key_str = ''
+- self.__dialog = gtk.MessageDialog(parent,
+- gtk.DIALOG_MODAL,
+- gtk.MESSAGE_INFO,
+- gtk.BUTTONS_OK_CANCEL,
+- "")
+- self.__dialog.set_markup(_("Press any key which you want to use as hanja key. "
++ self.__key_str = ''
++ self.__dialog = Gtk.MessageDialog(parent,
++ Gtk.DialogFlags.MODAL,
++ Gtk.MessageType.INFO,
++ Gtk.ButtonsType.OK_CANCEL,
++ "")
++ self.__dialog.set_markup(_("Press any key which you want to use as hanja key. "
+ "The key you pressed is displayed below.\n"
+ "If you want to use it, click \"Ok\" or click \"Cancel\""))
+
+- self.__dialog.format_secondary_markup(" ")
+- self.__dialog.connect("key-press-event", self.on_keypress, None)
++ self.__dialog.format_secondary_markup(" ")
++ self.__dialog.connect("key-press-event", self.on_keypress, None)
+
+ def destroy(self):
+- self.__dialog.destroy()
++ self.__dialog.destroy()
+
+ def run(self):
+- return self.__dialog.run()
++ return self.__dialog.run()
+
+ def get_key_string(self):
+- return self.__key_str
++ return self.__key_str
+
+ def on_keypress(self, widget, event, data = None):
+- self.__key_str = ""
+- if event.state & gdk.CONTROL_MASK :
+- self.__key_str += "Control+"
+- if event.state & gdk.MOD1_MASK :
+- self.__key_str += "Alt+"
+- if event.state & gdk.SHIFT_MASK :
+- self.__key_str += "Shift+"
+-
+- self.__key_str += gdk.keyval_name(event.keyval)
+-
+- self.__dialog.format_secondary_markup('%s' % self.__key_str)
++ self.__key_str = ""
++ if event.state & Gdk.ModifierType.CONTROL_MASK :
++ self.__key_str += "Control+"
++ if event.state & Gdk.ModifierType.MOD1_MASK :
++ self.__key_str += "Alt+"
++ if event.state & Gdk.ModifierType.SHIFT_MASK :
++ self.__key_str += "Shift+"
++
++ self.__key_str += Gdk.keyval_name(event.keyval)
++
++ self.__dialog.format_secondary_markup('%s' % self.__key_str)
+diff --git a/setup/main.py b/setup/main.py
+index 28a66a9..ce33db7 100644
+--- a/setup/main.py
++++ b/setup/main.py
+@@ -20,9 +20,9 @@
+
+ import sys
+ import os
+-import gobject
+-import gtk
+-import ibus
++from gi.repository import GLib
++from gi.repository import Gtk
++from gi.repository import IBus
+ import locale
+ import gettext
+ import config
+@@ -35,157 +35,166 @@ class Setup ():
+ def __init__ (self, bus):
+ self.__bus = bus
+ self.__config = self.__bus.get_config()
+- self.__config.connect("value-changed", self.on_value_changed, None)
+-
+- ui_file = os.path.join(os.path.dirname(__file__), "setup.ui")
+- self.__builder = gtk.Builder()
+- self.__builder.set_translation_domain(config.gettext_package)
+- self.__builder.add_from_file(ui_file)
+-
+- # Hangul tab
+- pipe = subprocess.Popen([config.setuplibdir + '/hangul_keyboard_list'], stdout = subprocess.PIPE)
+- list = pipe.communicate()[0].split('\n')
+-
+- self.__hangul_keyboard = self.__builder.get_object("HangulKeyboard")
+- model = gtk.ListStore(str, str, int)
+- i = 0
+- for line in list:
+- items = line.split('\t')
+- if len(items) > 1:
+- model.append([items[1], items[0], i])
+- i+=1
+-
+- self.__hangul_keyboard.set_model(model)
+- renderer = gtk.CellRendererText()
+- self.__hangul_keyboard.pack_start(renderer)
+- self.__hangul_keyboard.add_attribute(renderer, "text", 0)
+-
+- current = self.__read("HangulKeyboard", "2")
+- for i in model:
+- if i[1] == current:
+- self.__hangul_keyboard.set_active(i[2])
+- break
+-
+- self.__word_commit = self.__builder.get_object("WordCommit")
+-
+- word_commit = self.__read("WordCommit", False)
++ self.__config.connect("value-changed", self.on_value_changed, None)
++
++ ui_file = os.path.join(os.path.dirname(__file__), "setup.ui")
++ self.__builder = Gtk.Builder()
++ self.__builder.set_translation_domain(config.gettext_package)
++ self.__builder.add_from_file(ui_file)
++
++ # Hangul tab
++ pipe = subprocess.Popen([config.setuplibdir + '/hangul_keyboard_list'], stdout = subprocess.PIPE)
++ list = pipe.communicate()[0].split('\n')
++
++ self.__hangul_keyboard = self.__builder.get_object("HangulKeyboard")
++ model = Gtk.ListStore(str, str, int)
++ i = 0
++ for line in list:
++ items = line.split('\t')
++ if len(items) > 1:
++ model.append([items[1], items[0], i])
++ i+=1
++
++ self.__hangul_keyboard.set_model(model)
++ renderer = Gtk.CellRendererText()
++ self.__hangul_keyboard.pack_start(renderer, True)
++ self.__hangul_keyboard.add_attribute(renderer, "text", 0)
++
++ default = GLib.Variant.new_string("2")
++ current = self.__read("HangulKeyboard", default).get_string()
++ for i in model:
++ if i[1] == current:
++ self.__hangul_keyboard.set_active(i[2])
++ break
++
++ self.__word_commit = self.__builder.get_object("WordCommit")
++
++ default = GLib.Variant.new_boolean(False)
++ word_commit = self.__read("WordCommit", default).get_boolean()
+ self.__word_commit.set_active(word_commit)
+
+- self.__auto_reorder = self.__builder.get_object("AutoReorder")
+- auto_reorder = self.__read("AutoReorder", True)
++ self.__auto_reorder = self.__builder.get_object("AutoReorder")
++ default = GLib.Variant.new_boolean(True)
++ auto_reorder = self.__read("AutoReorder", default).get_boolean()
+ self.__auto_reorder.set_active(auto_reorder)
+
+- # hanja tab
+- button = self.__builder.get_object("HanjaKeyListAddButton")
+- button.connect("clicked", self.on_hanja_key_add, None)
++ # hanja tab
++ button = self.__builder.get_object("HanjaKeyListAddButton")
++ button.connect("clicked", self.on_hanja_key_add, None)
+
+- button = self.__builder.get_object("HanjaKeyListRemoveButton")
+- button.connect("clicked", self.on_hanja_key_remove, None)
++ button = self.__builder.get_object("HanjaKeyListRemoveButton")
++ button.connect("clicked", self.on_hanja_key_remove, None)
+
+- model = gtk.ListStore(str)
++ model = Gtk.ListStore(str)
+
+- keylist_str = self.__read("HanjaKeys", "Hangul_Hanja,F9")
+- self.__hanja_key_list_str = keylist_str.split(',')
+- for i in self.__hanja_key_list_str:
+- model.append([i])
++ default = GLib.Variant.new_string("Hangul_Hanja,F9")
++ keylist_str = self.__read("HanjaKeys", default).get_string()
++ self.__hanja_key_list_str = keylist_str.split(',')
++ for i in self.__hanja_key_list_str:
++ model.append([i])
+
+- self.__hanja_key_list = self.__builder.get_object("HanjaKeyList")
+- self.__hanja_key_list.set_model(model)
+- column = gtk.TreeViewColumn()
+- column.set_title("key")
+- renderer = gtk.CellRendererText()
+- column.pack_start(renderer)
+- column.add_attribute(renderer, "text", 0)
+- self.__hanja_key_list.append_column(column)
++ self.__hanja_key_list = self.__builder.get_object("HanjaKeyList")
++ self.__hanja_key_list.set_model(model)
++ column = Gtk.TreeViewColumn()
++ column.set_title("key")
++ renderer = Gtk.CellRendererText()
++ column.pack_start(renderer, True)
++ column.add_attribute(renderer, "text", 0)
++ self.__hanja_key_list.append_column(column)
+
++ # advanced tab
++ notebook = self.__builder.get_object("SetupNotebook")
++ notebook.remove_page(2)
+
+- # advanced tab
+- notebook = self.__builder.get_object("SetupNotebook")
+- notebook.remove_page(2)
++ # setup dialog
++ self.__window = self.__builder.get_object("SetupDialog")
++ icon_file = os.path.join(config.pkgdatadir, "icons", "ibus-hangul.svg")
++ self.__window.set_icon_from_file(icon_file)
++ self.__window.connect("response", self.on_response, None)
++ self.__window.show()
+
+- # setup dialog
+- self.__window = self.__builder.get_object("SetupDialog")
+- icon_file = os.path.join(config.pkgdatadir, "icons", "ibus-hangul.svg")
+- self.__window.set_icon_from_file(icon_file)
+- self.__window.connect("response", self.on_response, None)
+- self.__window.show()
+-
+- ok_button = self.__builder.get_object("button_cancel")
+- ok_button.grab_focus()
++ ok_button = self.__builder.get_object("button_cancel")
++ ok_button.grab_focus()
+
+ def run(self):
+- res = self.__window.run()
+- if (res == gtk.RESPONSE_OK):
+- self.on_ok()
+- self.__window.destroy()
++ res = self.__window.run()
++ if (res == Gtk.ResponseType.OK):
++ self.on_ok()
++ self.__window.destroy()
+
+ def apply(self):
+- model = self.__hangul_keyboard.get_model()
+- i = self.__hangul_keyboard.get_active()
+- self.__write("HangulKeyboard", model[i][1])
++ model = self.__hangul_keyboard.get_model()
++ i = self.__hangul_keyboard.get_active()
++ self.__write("HangulKeyboard", GLib.Variant.new_string(model[i][1]))
+
+ word_commit = self.__word_commit.get_active()
+- self.__write("WordCommit", word_commit)
+-
+- model = self.__hanja_key_list.get_model()
+- str = ""
+- iter = model.get_iter_first()
+- while iter:
+- if len(str) > 0:
+- str += ","
+- str += model.get_value(iter, 0)
+- else:
+- str += model.get_value(iter, 0)
+- iter = model.iter_next(iter)
+- self.__write("HanjaKeys", str)
++ self.__write("WordCommit", GLib.Variant.new_boolean(word_commit))
++
++ auto_reorder = self.__auto_reorder.get_active()
++ self.__write("AutoReorder", GLib.Variant.new_boolean(auto_reorder))
++
++ model = self.__hanja_key_list.get_model()
++ str = ""
++ iter = model.get_iter_first()
++ while iter:
++ if len(str) > 0:
++ str += ","
++ str += model.get_value(iter, 0)
++ else:
++ str += model.get_value(iter, 0)
++ iter = model.iter_next(iter)
++ self.__write("HanjaKeys", GLib.Variant.new_string(str))
+
+ def on_response(self, widget, id, data = None):
+- if id == gtk.RESPONSE_APPLY:
+- self.apply()
+- widget.emit_stop_by_name("response")
+- if id == gtk.RESPONSE_NONE:
+- widget.emit_stop_by_name("response")
++ if id == Gtk.ResponseType.APPLY:
++ self.apply()
++ widget.emit_stop_by_name("response")
++ if id == Gtk.ResponseType.NONE:
++ widget.emit_stop_by_name("response")
+
+ def on_ok(self):
+- self.apply()
++ self.apply()
+
+ def on_hanja_key_add(self, widget, data = None):
+- dialog = KeyCaptureDialog(_("Select Hanja key"), self.__window)
+- res = dialog.run()
+- if res == gtk.RESPONSE_OK:
+- key_str = dialog.get_key_string()
+- if len(key_str) > 0:
+- model = self.__hanja_key_list.get_model()
+- iter = model.get_iter_first()
+- while iter:
+- str = model.get_value(iter, 0)
+- if str == key_str:
+- model.remove(iter)
+- break
+- iter = model.iter_next(iter)
+-
+- model.append([key_str])
+- dialog.destroy()
++ dialog = KeyCaptureDialog(_("Select Hanja key"), self.__window)
++ res = dialog.run()
++ if res == Gtk.ResponseType.OK:
++ key_str = dialog.get_key_string()
++ if len(key_str) > 0:
++ model = self.__hanja_key_list.get_model()
++ iter = model.get_iter_first()
++ while iter:
++ str = model.get_value(iter, 0)
++ if str == key_str:
++ model.remove(iter)
++ break
++ iter = model.iter_next(iter)
++
++ model.append([key_str])
++ dialog.destroy()
+
+ def on_hanja_key_remove(self, widget, data = None):
+- selection = self.__hanja_key_list.get_selection()
+- (model, iter) = selection.get_selected()
+- if model and iter:
+- model.remove(iter)
++ selection = self.__hanja_key_list.get_selection()
++ (model, iter) = selection.get_selected()
++ if model and iter:
++ model.remove(iter)
+
+ def on_value_changed(self, config, section, name, value, data):
+- if section == "engine/Hangul":
+- if name == "HangulKeyboard":
+- model = self.__hangul_keyboard.get_model()
+- for i in model:
+- if i[1] == value:
+- self.__hangul_keyboard.set_active(i[2])
+- break
+- elif name == "HanjaKeys":
+- self.__hanja_key_list_str = value.split(',')
++ if section == "engine/Hangul":
++ if name == "HangulKeyboard":
++ model = self.__hangul_keyboard.get_model()
++ for i in model:
++ if i[1] == value:
++ self.__hangul_keyboard.set_active(i[2])
++ break
++ elif name == "HanjaKeys":
++ self.__hanja_key_list_str = value.split(',')
+
+ def __read(self, name, v):
+- return self.__config.get_value("engine/Hangul", name, v)
++ value = self.__config.get_value("engine/Hangul", name)
++ if value is None:
++ return v
++ return value
+
+ def __write(self, name, v):
+ return self.__config.set_value("engine/Hangul", name, v)
+@@ -194,14 +203,13 @@ if __name__ == "__main__":
+ locale.bindtextdomain(config.gettext_package, config.localedir)
+ locale.bind_textdomain_codeset(config.gettext_package, "UTF-8")
+
+- try:
+- bus = ibus.Bus()
+- except:
++ bus = IBus.Bus()
++ if bus.is_connected():
++ Setup(bus).run()
++ else:
+ message = _("IBus daemon is not running.\nHangul engine settings cannot be saved.")
+- dialog = gtk.MessageDialog(type = gtk.MESSAGE_ERROR,
+- buttons = gtk.BUTTONS_CLOSE,
++ dialog = Gtk.MessageDialog(type = Gtk.MessageType.ERROR,
++ buttons = Gtk.ButtonsType.CLOSE,
+ message_format = message)
+ dialog.run()
+ sys.exit(1)
+-
+- Setup(bus).run()
+diff --git a/src/hangul.xml.in.in b/src/hangul.xml.in.in
+index c175437..71f9043 100644
+--- a/src/hangul.xml.in.in
++++ b/src/hangul.xml.in.in
+@@ -18,7 +18,7 @@
+ Peng Huang <shawn.p.huang@gmail.com>
+ ibus-hangul
+ us
+- Korean
++ Hangul
+ Korean Input Method
+ 99
+ 한
diff --git a/ibus-hangul-add-hangul-hotkey.patch b/ibus-hangul-add-hangul-hotkey.patch
deleted file mode 100644
index 57934d4..0000000
--- a/ibus-hangul-add-hangul-hotkey.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: ibus-hangul-1.4.0/src/hangul.xml.in.in
-===================================================================
---- ibus-hangul-1.4.0.orig/src/hangul.xml.in.in
-+++ ibus-hangul-1.4.0/src/hangul.xml.in.in
-@@ -22,6 +22,7 @@
- Korean Input Method
- 99
- 한
-+ Control+space,Hangul
-
-
-
diff --git a/ibus-hangul-engine-name.patch b/ibus-hangul-engine-name.patch
deleted file mode 100644
index 70d21b2..0000000
--- a/ibus-hangul-engine-name.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From f1b2a97b428d8432604ec782505516b9ea1fe565 Mon Sep 17 00:00:00 2001
-From: Choe Hwanjin
-Date: Mon, 22 Oct 2012 01:39:51 +0900
-Subject: [PATCH] Rename this engine to "Hangul"
-
-"Hangul" means this engine is using libhangul.
----
- src/hangul.xml.in.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: ibus-hangul-1.4.1/src/hangul.xml.in.in
-===================================================================
---- ibus-hangul-1.4.1.orig/src/hangul.xml.in.in
-+++ ibus-hangul-1.4.1/src/hangul.xml.in.in
-@@ -18,7 +18,7 @@
- Peng Huang <shawn.p.huang@gmail.com>
- ibus-hangul
- us
-- Korean
-+ Hangul
- Korean Input Method
- 99
- 한
diff --git a/ibus-hangul-setup-gi.patch b/ibus-hangul-setup-gi.patch
deleted file mode 100644
index b082e56..0000000
--- a/ibus-hangul-setup-gi.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-From 010540d2a05fee1f8f4971db5ffa5885981aba29 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno
-Date: Wed, 25 Jan 2012 11:46:33 +0900
-Subject: [PATCH] ibus-setup-hangul: use gobject-introspection instead ibus
- python library.
-
----
- setup/keycapturedialog.py | 20 +++++++-------
- setup/main.py | 65 +++++++++++++++++++++++++--------------------
- 2 files changed, 46 insertions(+), 39 deletions(-)
-
-Index: ibus-hangul-1.4.1/setup/keycapturedialog.py
-===================================================================
---- ibus-hangul-1.4.1.orig/setup/keycapturedialog.py
-+++ ibus-hangul-1.4.1/setup/keycapturedialog.py
-@@ -1,5 +1,5 @@
--import gtk
--import gtk.gdk as gdk
-+from gi.repository import Gtk
-+from gi.repository import Gdk
- import gettext
-
- _ = lambda a : gettext.dgettext("ibus-hangul", a)
-@@ -7,10 +7,10 @@ _ = lambda a : gettext.dgettext("ibus-ha
- class KeyCaptureDialog ():
- def __init__ (self, title, parent):
- self.__key_str = ''
-- self.__dialog = gtk.MessageDialog(parent,
-- gtk.DIALOG_MODAL,
-- gtk.MESSAGE_INFO,
-- gtk.BUTTONS_OK_CANCEL,
-+ self.__dialog = Gtk.MessageDialog(parent,
-+ Gtk.DialogFlags.MODAL,
-+ Gtk.MessageType.INFO,
-+ Gtk.ButtonsType.OK_CANCEL,
- "")
- self.__dialog.set_markup(_("Press any key which you want to use as hanja key. "
- "The key you pressed is displayed below.\n"
-@@ -30,13 +30,13 @@ class KeyCaptureDialog ():
-
- def on_keypress(self, widget, event, data = None):
- self.__key_str = ""
-- if event.state & gdk.CONTROL_MASK :
-+ if event.state & Gdk.ModifierType.CONTROL_MASK :
- self.__key_str += "Control+"
-- if event.state & gdk.MOD1_MASK :
-+ if event.state & Gdk.ModifierType.MOD1_MASK :
- self.__key_str += "Alt+"
-- if event.state & gdk.SHIFT_MASK :
-+ if event.state & Gdk.ModifierType.SHIFT_MASK :
- self.__key_str += "Shift+"
-
-- self.__key_str += gdk.keyval_name(event.keyval)
-+ self.__key_str += Gdk.keyval_name(event.keyval)
-
- self.__dialog.format_secondary_markup('%s' % self.__key_str)
-Index: ibus-hangul-1.4.1/setup/main.py
-===================================================================
---- ibus-hangul-1.4.1.orig/setup/main.py
-+++ ibus-hangul-1.4.1/setup/main.py
-@@ -20,9 +20,9 @@
-
- import sys
- import os
--import gobject
--import gtk
--import ibus
-+from gi.repository import GLib
-+from gi.repository import Gtk
-+from gi.repository import IBus
- import locale
- import gettext
- import config
-@@ -38,7 +38,7 @@ class Setup ():
- self.__config.connect("value-changed", self.on_value_changed, None)
-
- ui_file = os.path.join(os.path.dirname(__file__), "setup.ui")
-- self.__builder = gtk.Builder()
-+ self.__builder = Gtk.Builder()
- self.__builder.set_translation_domain(config.gettext_package)
- self.__builder.add_from_file(ui_file)
-
-@@ -47,7 +47,7 @@ class Setup ():
- list = pipe.communicate()[0].split('\n')
-
- self.__hangul_keyboard = self.__builder.get_object("HangulKeyboard")
-- model = gtk.ListStore(str, str, int)
-+ model = Gtk.ListStore(str, str, int)
- i = 0
- for line in list:
- items = line.split('\t')
-@@ -56,11 +56,12 @@ class Setup ():
- i+=1
-
- self.__hangul_keyboard.set_model(model)
-- renderer = gtk.CellRendererText()
-- self.__hangul_keyboard.pack_start(renderer)
-+ renderer = Gtk.CellRendererText()
-+ self.__hangul_keyboard.pack_start(renderer, True)
- self.__hangul_keyboard.add_attribute(renderer, "text", 0)
-
-- current = self.__read("HangulKeyboard", "2")
-+ default = GLib.Variant.new_string("2")
-+ current = self.__read("HangulKeyboard", default).get_string()
- for i in model:
- if i[1] == current:
- self.__hangul_keyboard.set_active(i[2])
-@@ -68,11 +69,13 @@ class Setup ():
-
- self.__word_commit = self.__builder.get_object("WordCommit")
-
-- word_commit = self.__read("WordCommit", False)
-+ default = GLib.Variant.new_boolean(False)
-+ word_commit = self.__read("WordCommit", default).get_boolean()
- self.__word_commit.set_active(word_commit)
-
- self.__auto_reorder = self.__builder.get_object("AutoReorder")
-- auto_reorder = self.__read("AutoReorder", True)
-+ default = GLib.Variant.new_boolean(True)
-+ auto_reorder = self.__read("AutoReorder", default).get_boolean()
- self.__auto_reorder.set_active(auto_reorder)
-
- # hanja tab
-@@ -82,19 +85,20 @@ class Setup ():
- button = self.__builder.get_object("HanjaKeyListRemoveButton")
- button.connect("clicked", self.on_hanja_key_remove, None)
-
-- model = gtk.ListStore(str)
-+ model = Gtk.ListStore(str)
-
-- keylist_str = self.__read("HanjaKeys", "Hangul_Hanja,F9")
-+ default = GLib.Variant.new_string("Hangul_Hanja,F9")
-+ keylist_str = self.__read("HanjaKeys", default).get_string()
- self.__hanja_key_list_str = keylist_str.split(',')
- for i in self.__hanja_key_list_str:
- model.append([i])
-
- self.__hanja_key_list = self.__builder.get_object("HanjaKeyList")
- self.__hanja_key_list.set_model(model)
-- column = gtk.TreeViewColumn()
-+ column = Gtk.TreeViewColumn()
- column.set_title("key")
-- renderer = gtk.CellRendererText()
-- column.pack_start(renderer)
-+ renderer = Gtk.CellRendererText()
-+ column.pack_start(renderer, True)
- column.add_attribute(renderer, "text", 0)
- self.__hanja_key_list.append_column(column)
-
-@@ -115,17 +119,20 @@ class Setup ():
-
- def run(self):
- res = self.__window.run()
-- if (res == gtk.RESPONSE_OK):
-+ if (res == Gtk.ResponseType.OK):
- self.on_ok()
- self.__window.destroy()
-
- def apply(self):
- model = self.__hangul_keyboard.get_model()
- i = self.__hangul_keyboard.get_active()
-- self.__write("HangulKeyboard", model[i][1])
-+ self.__write("HangulKeyboard", GLib.Variant.new_string(model[i][1]))
-
- word_commit = self.__word_commit.get_active()
-- self.__write("WordCommit", word_commit)
-+ self.__write("WordCommit", GLib.Variant.new_boolean(word_commit))
-+
-+ auto_reorder = self.__auto_reorder.get_active()
-+ self.__write("AutoReorder", GLib.Variant.new_boolean(auto_reorder))
-
- model = self.__hanja_key_list.get_model()
- str = ""
-@@ -137,13 +144,13 @@ class Setup ():
- else:
- str += model.get_value(iter, 0)
- iter = model.iter_next(iter)
-- self.__write("HanjaKeys", str)
-+ self.__write("HanjaKeys", GLib.Variant.new_string(str))
-
- def on_response(self, widget, id, data = None):
-- if id == gtk.RESPONSE_APPLY:
-+ if id == Gtk.ResponseType.APPLY:
- self.apply()
- widget.emit_stop_by_name("response")
-- if id == gtk.RESPONSE_NONE:
-+ if id == Gtk.ResponseType.NONE:
- widget.emit_stop_by_name("response")
-
- def on_ok(self):
-@@ -152,7 +159,7 @@ class Setup ():
- def on_hanja_key_add(self, widget, data = None):
- dialog = KeyCaptureDialog(_("Select Hanja key"), self.__window)
- res = dialog.run()
-- if res == gtk.RESPONSE_OK:
-+ if res == Gtk.ResponseType.OK:
- key_str = dialog.get_key_string()
- if len(key_str) > 0:
- model = self.__hanja_key_list.get_model()
-@@ -185,7 +192,10 @@ class Setup ():
- self.__hanja_key_list_str = value.split(',')
-
- def __read(self, name, v):
-- return self.__config.get_value("engine/Hangul", name, v)
-+ value = self.__config.get_value("engine/Hangul", name)
-+ if value is None:
-+ return v
-+ return value
-
- def __write(self, name, v):
- return self.__config.set_value("engine/Hangul", name, v)
-@@ -194,14 +204,13 @@ if __name__ == "__main__":
- locale.bindtextdomain(config.gettext_package, config.localedir)
- locale.bind_textdomain_codeset(config.gettext_package, "UTF-8")
-
-- try:
-- bus = ibus.Bus()
-- except:
-+ bus = IBus.Bus()
-+ if bus.is_connected():
-+ Setup(bus).run()
-+ else:
- message = _("IBus daemon is not running.\nHangul engine settings cannot be saved.")
-- dialog = gtk.MessageDialog(type = gtk.MESSAGE_ERROR,
-- buttons = gtk.BUTTONS_CLOSE,
-+ dialog = Gtk.MessageDialog(type = Gtk.MessageType.ERROR,
-+ buttons = Gtk.ButtonsType.CLOSE,
- message_format = message)
- dialog.run()
- sys.exit(1)
--
-- Setup(bus).run()
diff --git a/ibus-hangul.spec b/ibus-hangul.spec
index 6a90e45..14b4bc6 100644
--- a/ibus-hangul.spec
+++ b/ibus-hangul.spec
@@ -1,9 +1,10 @@
%global require_ibus_version 1.3.99
%global require_libhangul_version 0.1.0
-%if 0%{?fedora} > 15 || 0%{?rhel} > 6
-%define have_bridge_hotkey 1
-%else
+# bridge hotkey local feature was enabled in ibus for F-15 and F-16
+%if 0%{?fedora} > 16 || 0%{?rhel} > 6
%define have_bridge_hotkey 0
+%else
+%define have_bridge_hotkey 1
%endif
# ibus pulls pygobject3 since F-17
%if 0%{?fedora} > 16 || 0%{?rhel} > 6
@@ -14,18 +15,18 @@
Name: ibus-hangul
Version: 1.4.1
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: The Hangul engine for IBus input platform
License: GPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
-#Patch0: ibus-hangul-HEAD.patch
-Patch1: ibus-hangul-setup-gi.patch
+# upstreamed patches
+Patch0: ibus-hangul-HEAD.patch
+# not upstreamed patches
%if %have_bridge_hotkey
Patch2: ibus-hangul-add-hangul-hotkey.patch
%endif
-Patch3: ibus-hangul-engine-name.patch
BuildRequires: gettext-devel
BuildRequires: intltool
@@ -47,15 +48,12 @@ libhangul.
%prep
%setup -q
-#patch0 -p1 -b .HEAD
-%patch1 -p1 -b .setup-gi
+%patch0 -p1 -b .HEAD
%if %have_bridge_hotkey
%patch2 -p1 -b .add-hangul-hotkey
%endif
-%patch3 -p1 -b .engine-name
-
%build
autoreconf
%configure --disable-static %{?_with_hotkeys}
@@ -93,6 +91,10 @@ fi
%{_datadir}/icons/hicolor/*/apps/*
%changelog
+* Thu Nov 15 2012 Daiki Ueno - 1.4.1-7
+- Re-add ibus-hangul-HEAD.patch based on recent upstream change
+- Apply ibus-hangul-add-hangul-hotkey.patch only for F-15 and F-16
+
* Wed Oct 31 2012 Daiki Ueno - 1.4.1-6
- Add ibus-hangul-engine-name.patch
- Update ibus-hangul-setup-gi.patch