[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#783811: jessie-pu: package ibus-cangjie/2.2-2



On Sat, May 09, 2015 at 08:34:26PM +0100, Adam D. Barratt wrote:
> It's up to you which way you want to manage that. However, I would
> appreciate it if the changelog could mention the actual issues
> addressed, rather than simply "Backport 2.4 bugfix".
> 
> With the above note in mind, please go ahead.

The package ibus-cangjie (2.2-2+deb8u1) is in stable now, with a revised
changelog.

-- 
ChangZhuo Chen (陳昌倬) <czchen@gmail.com>
http://czchen.info/
Key fingerprint = EC9F 905D 866D BE46 A896  C827 BE0C 9242 03F4 552D
diff -Nru ibus-cangjie-2.2/debian/changelog ibus-cangjie-2.2/debian/changelog
--- ibus-cangjie-2.2/debian/changelog	2015-05-11 01:13:01.000000000 +0800
+++ ibus-cangjie-2.2/debian/changelog	2015-05-12 23:16:54.000000000 +0800
@@ -1,3 +1,25 @@
+ibus-cangjie (2.2-2+deb8u1) stable; urgency=medium
+
+  * Backport 2.4 bugfix (Closes: 782453)
+    * A serious usability issue, where we would in some cases suggest
+      duplicate characters to the users:
+      https://github.com/Cangjians/ibus-cangjie/issues/63
+
+    * A python traceback (in the background, not crashing the engine,
+      but which was nevertheless triggering automatic crash catchers):
+      https://github.com/Cangjians/ibus-cangjie/issues/57
+
+    * An incorrect translation for Taiwan users:
+      https://github.com/Cangjians/ibus-cangjie/issues/61
+
+    * works around another serious usability issue, where the candidate popup
+      was misplaced (i.e not at the input cursor, but at the bottom of the
+      screen) on some applications, most notably Firefox (which is quite the
+      common app)
+      https://github.com/Cangjians/ibus-cangjie/issues/60
+
+ -- ChangZhuo Chen (陳昌倬) <czchen@gmail.com>  Sun, 10 May 2015 18:00:01 +0800
+
 ibus-cangjie (2.2-2) unstable; urgency=medium
 
   [ChangZhuo Chen]
diff -Nru ibus-cangjie-2.2/debian/patches/0002-backport-2.4-bugfix.patch ibus-cangjie-2.2/debian/patches/0002-backport-2.4-bugfix.patch
--- ibus-cangjie-2.2/debian/patches/0002-backport-2.4-bugfix.patch	1970-01-01 08:00:00.000000000 +0800
+++ ibus-cangjie-2.2/debian/patches/0002-backport-2.4-bugfix.patch	2015-05-12 23:15:18.000000000 +0800
@@ -0,0 +1,96 @@
+Description: Backport 2.4 bugfix
+---
+Origin: upstream
+Bug-Debian: http://bugs.debian.org/782453
+--- ibus-cangjie-2.2.orig/po/zh_TW.po
++++ ibus-cangjie-2.2/po/zh_TW.po
+@@ -98,7 +98,7 @@ msgstr "輸入法版本"
+ msgid ""
+ "Only characters common in Hong Kong can be inputted by default.\n"
+ "The following additional characters can be enabled:"
+-msgstr "預設情況下只能輸入香港常用字。\n可以額外啟用下列額字元:"
++msgstr "預設情況下只能輸入香港常用字。\n可以額外啟用下列字元:"
+ 
+ #. The Taiwanese Zhuyin alphabet is known under two names in English.
+ #. Obviously, if it only has one name in your language, don't try to keep two
+--- ibus-cangjie-2.2.orig/src/engine.py
++++ ibus-cangjie-2.2/src/engine.py
+@@ -249,7 +249,12 @@ class Engine(IBus.Engine):
+                 self.get_candidates(by_shortcode=True)
+ 
+             else:
+-                self.get_candidates()
++                try:
++                    self.get_candidates()
++
++                except cangjie.errors.CangjieNoCharsError:
++                    self.play_error_bell()
++                    return True
+ 
+         if self.lookuptable.get_number_of_candidates():
+             self.do_select_candidate(1)
+@@ -394,9 +399,16 @@ class Engine(IBus.Engine):
+         else:
+             chars = self.cangjie.get_characters_by_shortcode(code)
+ 
++        # Finding an element in a dict is **much** faster than in a list
++        seen = {}
++
+         for c in sorted(chars, key=attrgetter("frequency"), reverse=True):
++            if c.chchar in seen:
++                continue
++
+             self.lookuptable.append_candidate(IBus.Text.new_from_string(c.chchar))
+             num_candidates += 1
++            seen[c.chchar] = True
+ 
+         if num_candidates == 1:
+             self.do_select_candidate(1)
+@@ -421,6 +433,20 @@ class Engine(IBus.Engine):
+         text = IBus.Text.new_from_string(self.current_radicals)
+         super(Engine, self).update_auxiliary_text(text, len(self.current_radicals)>0)
+ 
++        # We don't use pre-edit at all for Cangjie or Quick
++        #
++        # However, some applications (most notably Firefox) fail to correctly
++        # position the candidate popup, as if they got confused by the absence
++        # of a pre-edit text. :(
++        #
++        # This is a horrible hack, but it fixes the immediate problem.
++        if self.current_radicals:
++            super(Engine, self).update_preedit_text(IBus.Text.new_from_string('\u200B'), 0, True)
++
++        else:
++            super(Engine, self).update_preedit_text(IBus.Text.new_from_string(''), 0, False)
++        # End of the horrible workaround
++
+     def update_lookup_table(self):
+         """Update the lookup table."""
+         if not self.current_input:
+--- ibus-cangjie-2.2.orig/src/setup.py
++++ ibus-cangjie-2.2/src/setup.py
+@@ -99,6 +99,9 @@ class Setup(object):
+         We need to react, in case the value was changed from somewhere else,
+         for example from another setup UI.
+         """
++        if key == "halfwidth-chars":
++            return
++
+         if key == "version":
+             new_value = self.settings.get_int(key)
+ 
+--- ibus-cangjie-2.2.orig/tests/run_tests.in
++++ ibus-cangjie-2.2/tests/run_tests.in
+@@ -47,6 +47,12 @@ class MockEngine:
+         # We don't need anything here for the unit tests
+         pass
+ 
++    def update_preedit_text(self, text, cursor_pos, visible):
++        # We don't need anything here for the unit tests
++        #
++        # We only have this for an ugly workaround.
++        pass
++
+ 
+ class MockLookupTable:
+     def __init__(self):
diff -Nru ibus-cangjie-2.2/debian/patches/series ibus-cangjie-2.2/debian/patches/series
--- ibus-cangjie-2.2/debian/patches/series	2015-05-11 01:13:01.000000000 +0800
+++ ibus-cangjie-2.2/debian/patches/series	2015-05-12 23:15:18.000000000 +0800
@@ -1 +1,2 @@
 0001-install-engine-to-correct-dir.diff
+0002-backport-2.4-bugfix.patch

Attachment: signature.asc
Description: Digital signature


Reply to: