Hello community,

here is the log from the commit of package ibus-sunpinyin for 
openSUSE:Leap:15.2 checked in at 2020-05-11 08:39:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/ibus-sunpinyin (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.ibus-sunpinyin.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ibus-sunpinyin"

Mon May 11 08:39:04 2020 rev:17 rq:801862 version:2.0.99

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/ibus-sunpinyin/ibus-sunpinyin.changes  
2020-01-15 15:11:51.178121459 +0100
+++ 
/work/SRC/openSUSE:Leap:15.2/.ibus-sunpinyin.new.2738/ibus-sunpinyin.changes    
    2020-05-11 08:39:34.159053151 +0200
@@ -1,0 +2,17 @@
+Fri Mar  6 08:20:31 UTC 2020 - Hillwood Yang <[email protected]>
+
+- Add ibus-sunpinyin-fix-libexecdir.patch: Fix libexecdir path, 
+  add ibus-sunpinyin.changes libexecdir should be in 
+  %{_libdir}/ibus/ for ibus. 
+
+-------------------------------------------------------------------
+Tue Mar  3 12:38:51 UTC 2020 - Hillwood Yang <[email protected]>
+
+- Use python3, python2 is EOF. Add ibus-sunpinyin-migrate-to-python3.patch
+
+-------------------------------------------------------------------
+Fri Apr 13 08:09:00 UTC 2018 - [email protected]
+
+- Drop Provides tag, make sure python2 won't be automatically installed 
+
+-------------------------------------------------------------------

New:
----
  ibus-sunpinyin-fix-libexecdir.patch
  ibus-sunpinyin-migrate-to-python3.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ibus-sunpinyin.spec ++++++
--- /var/tmp/diff_new_pack.p6owAp/_old  2020-05-11 08:39:34.643054199 +0200
+++ /var/tmp/diff_new_pack.p6owAp/_new  2020-05-11 08:39:34.643054199 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ibus-sunpinyin
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -20,24 +20,25 @@
 Version:        2.0.99
 Release:        0
 Summary:        Sunpinyin module for ibus
-License:        LGPL-2.1 or CDDL-1.0
+License:        LGPL-2.1-only OR CDDL-1.0
 Group:          System/I18n/Chinese
 Url:            https://github.com/sunpinyin/sunpinyin
 Source:         
https://github.com/sunpinyin/sunpinyin/archive/v3.0.0-rc1/sunpinyin-3.0.0-rc1.tar.gz
 # PATCH-FIX-UPSTREAM ibus-sunpinyin-scons-on-py3.patch [email protected] -- 
Fix build with scons using python3 as interpreter
 Patch0:         ibus-sunpinyin-scons-on-py3.patch
+# PATCH-FIX-UPSTREAM ibus-sunpinyin-migrate-to-python3.patch 
[email protected] -- Use python3, python2 is EOF
+Patch1:         ibus-sunpinyin-migrate-to-python3.patch
+# PATCH-FIX-UPSTREAM ibus-sunpinyin-fix-libexecdir.patch [email protected] 
-- libexecdir should be in %{_libdir}/ibus/
+Patch2:         ibus-sunpinyin-fix-libexecdir.patch
 BuildRequires:  gcc-c++
 BuildRequires:  intltool
 BuildRequires:  scons >= 1.2.0
 BuildRequires:  pkgconfig(ibus-1.0)
-BuildRequires:  pkgconfig(python2)
+BuildRequires:  pkgconfig(python3)
 BuildRequires:  pkgconfig(sqlite3)
 BuildRequires:  pkgconfig(sunpinyin-2.0)
-%if 0%{?is_opensuse}
-Provides:       locale(ibus:zh_CN;zh_SG)
-%endif
-Requires:       python-ibus
 Requires:       sunpinyin-data
+Provides:       locale(ibus:zh_CN;zh_SG)
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -47,31 +48,34 @@
 %prep
 %setup -q -n sunpinyin-3.0.0-rc1
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
 sed -i "s/LIBEXECDIR'\].*ibus-sunpinyin.*/LIBEXECDIR'\]/" SConstruct
 
 %build
 cd wrapper/ibus/
 scons --prefix=%{_prefix} \
       --libdir=%{_libdir} \
-      --libexecdir=%{_libdir}
+      --libexecdir=%{_libdir}/ibus
 
 %install
 pushd wrapper/ibus/
 scons install --prefix=%{_prefix} \
               --libdir=%{_libdir} \
-              --libexecdir=%{_libdir} \
+              --libexecdir=%{_libdir}/ibus \
               --install-sandbox=%{buildroot}
 popd
 
+chmod 755 %{buildroot}%{_datadir}/%{name}/setup/main.py
+
 %find_lang %{name}
 
 %files -f %{name}.lang
 %defattr(-,root,root)
-%doc wrapper/ibus/README wrapper/ibus/COPYING 
-%doc wrapper/ibus/LGPL.LICENSE wrapper/ibus/OPENSOLARIS.LICENSE
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/ibus-engine-sunpinyin
-%{_libdir}/%{name}/ibus-setup-sunpinyin
+%doc wrapper/ibus/README 
+%license wrapper/ibus/COPYING wrapper/ibus/LGPL.LICENSE 
wrapper/ibus/OPENSOLARIS.LICENSE
+%{_libdir}/ibus/ibus-engine-sunpinyin
+%{_libdir}/ibus/ibus-setup-sunpinyin
 %{_datadir}/%{name}
 %{_datadir}/ibus/component/sunpinyin.xml
 

++++++ ibus-sunpinyin-fix-libexecdir.patch ++++++
diff -Nur sunpinyin-3.0.0-rc1/wrapper/ibus/SConstruct 
sunpinyin-3.0.0-rc1-new/wrapper/ibus/SConstruct
--- sunpinyin-3.0.0-rc1/wrapper/ibus/SConstruct 2020-03-06 16:43:44.640899052 
+0800
+++ sunpinyin-3.0.0-rc1-new/wrapper/ibus/SConstruct     2020-03-06 
16:44:44.536512831 +0800
@@ -71,7 +71,7 @@
 
 data_dir = env['DATADIR'] + '/ibus-sunpinyin'
 icons_dir = env['DATADIR'] + '/ibus-sunpinyin/icons'
-bin_dir = env['LIBEXECDIR'] + '/ibus-sunpinyin'
+bin_dir = env['LIBEXECDIR'] + '/'
 gettext_package = 'ibus-sunpinyin'
 
 extra_cflags = ' -DIBUS_SUNPINYIN_LOCALEDIR=\'"%s"\'' % (env['DATADIR'] + 
'/locale')
++++++ ibus-sunpinyin-migrate-to-python3.patch ++++++
diff -Nur sunpinyin/wrapper/ibus/debian/changelog 
sunpinyin-new/wrapper/ibus/debian/changelog
--- sunpinyin/wrapper/ibus/debian/changelog     1970-01-01 08:00:00.000000000 
+0800
+++ sunpinyin-new/wrapper/ibus/debian/changelog 2020-03-03 20:33:45.210426000 
+0800
@@ -0,0 +1,5 @@
+ibus-sunpinyin (2.0.2~git20100607) unstable; urgency=low
+
+  * first debian package
+
+ -- Mike Qin <[email protected]>  Mon, 23 May 2010 11:20:00 +0800
diff -Nur sunpinyin/wrapper/ibus/debian/control.in 
sunpinyin-new/wrapper/ibus/debian/control.in
--- sunpinyin/wrapper/ibus/debian/control.in    1970-01-01 08:00:00.000000000 
+0800
+++ sunpinyin-new/wrapper/ibus/debian/control.in        2020-03-03 
20:33:45.210426000 +0800
@@ -0,0 +1,15 @@
+Source: ibus-sunpinyin
+Section: util
+Priority: optional
+Maintainer: Mike Qin <[email protected]>
+Build-Depends: @cdbs@, pkg-config, libgtk2.0-dev (>=2.12.0),
+ libsqlite3-dev (>=3.6), libsunpinyin3-dev, libibus-dev (>=1.2.0)
+Standards-Version: 3.8.4
+Homepage: http://code.google.com/p/sunpinyin/
+
+Package: ibus-sunpinyin
+Architecture: any
+Section: util
+Priority: optional
+Depends: libsunpinyin3, ${shlibs:Depends}, ${misc:Depends}
+Homepage: http://code.google.com/p/sunpinyin/
diff -Nur sunpinyin/wrapper/ibus/debian/rules 
sunpinyin-new/wrapper/ibus/debian/rules
--- sunpinyin/wrapper/ibus/debian/rules 1970-01-01 08:00:00.000000000 +0800
+++ sunpinyin-new/wrapper/ibus/debian/rules     2020-03-03 20:33:45.210426000 
+0800
@@ -0,0 +1,10 @@
+#!/usr/bin/make -f
+# -*- mode: makefile; indent-tabs-mode: t -*- vim:noet:ts=4
+
+include /usr/share/cdbs/1/class/scons.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_SCONS_BUILD_OPTIONS := --prefix=/usr
+DEB_SCONS_INSTALL_OPTIONS := $(DEB_SCONS_BUILD_OPTIONS) \
+       --install-sandbox=$(DEB_DESTDIR)
+
diff -Nur sunpinyin/wrapper/ibus/.gitignore 
sunpinyin-new/wrapper/ibus/.gitignore
--- sunpinyin/wrapper/ibus/.gitignore   1970-01-01 08:00:00.000000000 +0800
+++ sunpinyin-new/wrapper/ibus/.gitignore       2020-03-03 20:33:45.210426000 
+0800
@@ -0,0 +1,3 @@
+cmakebuild/
+setup/ibus-setup-sunpinyin
+
diff -Nur sunpinyin/wrapper/ibus/po/.gitignore 
sunpinyin-new/wrapper/ibus/po/.gitignore
--- sunpinyin/wrapper/ibus/po/.gitignore        1970-01-01 08:00:00.000000000 
+0800
+++ sunpinyin-new/wrapper/ibus/po/.gitignore    2020-03-03 20:33:45.210426000 
+0800
@@ -0,0 +1,4 @@
+POTFILES
+stamp-it
+Makefile.in.in
+
diff -Nur sunpinyin/wrapper/ibus/setup/ibus-setup-sunpinyin.in 
sunpinyin-new/wrapper/ibus/setup/ibus-setup-sunpinyin.in
--- sunpinyin/wrapper/ibus/setup/ibus-setup-sunpinyin.in        2016-05-08 
21:57:00.000000000 +0800
+++ sunpinyin-new/wrapper/ibus/setup/ibus-setup-sunpinyin.in    2020-03-03 
21:08:09.694916205 +0800
@@ -4,4 +4,4 @@
 exec_prefix=${prefix}
 export IBUS_PREFIX=${prefix}
 export IBUS_LOCALEDIR=${prefix}/share/locale
-exec python @DATA_DIR@/setup/main.py $@
+exec python3 @DATA_DIR@/setup/main.py $@
diff -Nur sunpinyin/wrapper/ibus/setup/main.py 
sunpinyin-new/wrapper/ibus/setup/main.py
--- sunpinyin/wrapper/ibus/setup/main.py        2016-05-08 21:57:00.000000000 
+0800
+++ sunpinyin-new/wrapper/ibus/setup/main.py    2020-03-03 21:07:39.739075161 
+0800
@@ -1,5 +1,6 @@
+#!/usr/bin/python3
 # -*- coding: utf-8 -*-
-# 
+#
 # Copyright (c) 2009 Leo Zheng <[email protected]>, Kov Chai 
<[email protected]>
 # *
 # The contents of this file are subject to the terms of either the GNU Lesser
@@ -7,12 +8,12 @@
 # Distribution License ("CDDL")(collectively, the "License"). You may not use 
this
 # file except in compliance with the License. You can obtain a copy of the 
CDDL at
 # http://www.opensource.org/licenses/cddl1.php and a copy of the LGPLv2.1 at
-# http://www.opensource.org/licenses/lgpl-license.php. See the License for the 
+# http://www.opensource.org/licenses/lgpl-license.php. See the License for the
 # specific language governing permissions and limitations under the License. 
When
 # distributing the software, include this License Header Notice in each file 
and
 # include the full text of the License in the License file as well as the
 # following notice:
-# 
+#
 # NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION 
LICENSE
 # (CDDL)
 # For Covered Software in this distribution, this License shall be governed by 
the
@@ -20,9 +21,9 @@
 # Any litigation relating to this License shall be subject to the jurisdiction 
of
 # the Federal Courts of the Northern District of California and the state 
courts
 # of the State of California, with venue lying in Santa Clara County, 
California.
-# 
+#
 # Contributor(s):
-# 
+#
 # If you wish your version of this file to be governed by only the CDDL or only
 # the LGPL Version 2.1, indicate your decision by adding "[Contributor]" 
elects to
 # include this software in this distribution under the [CDDL or LGPL Version 
2.1]
@@ -31,14 +32,26 @@
 # Version 2.1, or to extend the choice of license to its licensees as provided
 # above. However, if you add LGPL Version 2.1 code and therefore, elected the 
LGPL
 # Version 2 license, then the option applies only if the new code is made 
subject
-# to such option by the copyright holder. 
+# to such option by the copyright holder.
 #
 
 import sys
 import os
 from os import path
-import gtk
-import ibus
+try:
+    import gtk
+    import glib
+except ImportError:
+    from gi import require_version as gi_require_version
+    gi_require_version('Gtk', '3.0')
+    from gi.repository import Gtk as gtk
+    from gi.repository import GLib as glib
+try:
+    import ibus
+except ImportError:
+    from gi import require_version as gi_require_version
+    gi_require_version('IBus', '1.0')
+    from gi.repository import IBus as ibus
 import gettext
 import locale
 
@@ -52,27 +65,35 @@
     @staticmethod
     def pr(message):
         print >> sys.stderr, message
-        
+
+
 class Option(object):
     """Option serves as an interface of ibus.config
 
     it is used to synchronize the configuration with setting on user interface
     """
     config = ibus.Bus().get_config()
-    
+    __wrappers = {
+        type(True): glib.Variant.new_boolean,
+        type(1): glib.Variant.new_int32,
+        type('str'): glib.Variant.new_string,
+        type([]): glib.Variant.new_strv,
+    }
+
     def __init__(self, name, default):
         self.name = name
         self.default = default
-    
+        self.__wrap = self.__wrappers[type(self.default)]
+
     def read(self):
         section, key = self.__get_config_name()
-        return self.config.get_value(section, key, self.default)
+        wrapped = self.config.get_value(section, key)
+        return self.default if wrapped is None else wrapped.unpack()
 
     def write(self, v):
         section, key = self.__get_config_name()
-        return self.config.set_value(section, key, type(self.default)(v))
+        return self.config.set_value(section, key, self.__wrap(v))
 
-   
     def __get_config_name(self):
         keys = self.name.rsplit(SEPARATOR ,1)
         if len(keys) == 2:
@@ -96,7 +117,7 @@
 
     def init(self):
         pass
-    
+
     def read_config(self):
         """update user inferface with ibus.config
         """
@@ -106,13 +127,13 @@
     def write_config(self):
         v = self.save_ui_setting()
         self.write(v)
-        
+
     def save_ui_setting(self):
         """save user interface settings into self.v
         """
         self.v = self.__get_value()
         return self.v
-    
+
     def is_changed(self):
         return self.v != self.__get_value()
 
@@ -127,7 +148,7 @@
             self.widget.set_value(v)
         except:
             self.widget.set_active(v)
-            
+
 class CheckBoxOption(TrivalOption):
     def __init__(self, name, default, owner):
         super(CheckBoxOption, self).__init__(name, default, owner)
@@ -140,7 +161,7 @@
             default = options.index(default)
         super(ComboBoxOption, self).__init__(name, default, owner)
         self.options = options
-        
+
     def init(self):
         model = gtk.ListStore(str)
         for v in self.options:
@@ -156,7 +177,7 @@
         except ValueError:
             # otherwise save its index
             return active
-    
+
     def __set_value(self, v):
         try:
             # if the options are just numbers, we treat 'self.v' as the literal
@@ -166,7 +187,7 @@
         except ValueError:
             active = v
         self.widget.set_active(active)
-        
+
 class RadioOption(Option):
     """option represented using multiple Raidio buttons
     """
@@ -177,7 +198,7 @@
 
     def init_ui(self):
         self.read_config()
-        
+
     def read_config(self):
         self.v = self.read()
         name = SEPARATOR.join([self.name, self.v])
@@ -200,7 +221,7 @@
     def __init__(self, name, mapping):
         self.name = name
         self.mapping = mapping
-        
+
 class MappingOption(object):
     """an option which presents some sort of mapping, e.g. fuzzy pinyin mapping
 
@@ -211,7 +232,7 @@
         self.name = name
         self.widget = owner.get_object(name)
         self.mappings = mappings
-        
+
     def get_mappings(self):
         if self.widget.get_active():
             return [':'.join(self.mappings)]
@@ -223,18 +244,18 @@
 
     def get_active(self):
         return self.widget.get_active()
-    
+
     is_enabled = property(get_active, set_active)
 
     def key(self):
         return self.mappings[0]
-    
+
 class MultiMappingOption(Option):
     def __init__(self, name, options, default=[]):
         Option.__init__(self, name, default)
         self.options = options
         self.saved_pairs = default
-        
+
     def read_config(self):
         if not self.saved_pairs:
             self.saved_pairs = self.read()
@@ -242,24 +263,24 @@
         for opt in self.options:
             opt.is_enabled = (opt.key() in keys)
             # throw away unknown pair
-    
+
     def write_config(self):
         # ignore empty settings
         if self.saved_pairs:
             self.write(self.saved_pairs)
-        
+
     def save_ui_setting(self):
         self.saved_pairs = sum([opt.get_mappings() for opt in self.options
                                 if opt.is_enabled], [])
         return self.saved_pairs
-    
+
     def set_active_all(self, enabled):
         for opt in self.options:
             opt.is_enabled = enabled
-            
+
 class MultiCheckDialog (object):
     """ a modal dialog box with 'choose all' and 'choose none' button
-    
+
     TODO: another option is to use radio button
     """
     def __init__ (self, ui_name, config_name, mappings, 
option_klass=MappingOption):
@@ -269,25 +290,26 @@
         self.option_klass = option_klass
         self.saved_settings = []
         self.mapping_options = None
-        
+
     def get_setup_name(self):
         """assuming the name of dialog looks like 'dlg_fuzzy_setup'
         """
         return '_'.join(['dlg', self.ui_name, 'setup'])
-    
-    def __init_ui(self):
+
+    def __init_ui(self, parent_window):
         dlg_name = self.get_setup_name()
         self.__xml = gtk.Builder()
         self.__xml.add_objects_from_file(XML_FILE, [dlg_name])
         self.__dlg = self.__xml.get_object(dlg_name)
         assert self.__dlg is not None, "dialog %s not found in %s" % 
(dlg_name, XML_FILE)
+        self.__dlg.set_transient_for(parent_window)
         handlers = {'_'.join(["on", self.ui_name, "select_all_clicked"]) : 
self.on_button_check_all_clicked,
                     '_'.join(["on", self.ui_name, "unselect_all_clicked"]) : 
self.on_button_uncheck_all_clicked,
                     '_'.join(["on", self.ui_name, "ok_clicked"]) : 
self.on_button_ok_clicked,
                     '_'.join(["on", self.ui_name, "cancel_clicked"]) : 
self.on_button_cancel_clicked}
         self.__xml.connect_signals(handlers)
 
-        options = [self.option_klass(m.name, m.mapping, self.__xml) 
+        options = [self.option_klass(m.name, m.mapping, self.__xml)
                    for m in self.mappings]
         self.mapping_options = MultiMappingOption(self.config_name, options, 
self.saved_settings)
 
@@ -298,15 +320,15 @@
         pass
 
     init_ui = read_config = dummy
-    
-    def run(self):
-        self.__init_ui()
+
+    def run(self, parent_window):
+        self.__init_ui(parent_window)
         self.__read_config()
         self.__dlg.run()
-        
+
     def __read_config(self):
         self.mapping_options.read_config()
-        
+
     def __save_ui_settings(self):
         """save to in-memory storage, will flush to config if not canceled in 
main_window
         """
@@ -315,20 +337,20 @@
     def write_config(self):
         if self.mapping_options is not None:
             self.mapping_options.write_config()
-            
+
     def on_button_check_all_clicked(self, button):
         self.mapping_options.set_active_all(True)
-        
+
     def on_button_uncheck_all_clicked(self, button):
         self.mapping_options.set_active_all(False)
-    
+
     def on_button_ok_clicked(self, button):
         """update given options with settings in UI, these settings will be
         written to config if user push 'OK' or 'Apply' in the main window
         """
         self.__save_ui_settings()
         self.__dlg.destroy()
-        
+
     def on_button_cancel_clicked(self, button):
         self.__dlg.destroy()
 
@@ -353,7 +375,7 @@
                                   ui_name = 'fuzzy',
                                   config_name = 'QuanPin/Fuzzy/Pinyins',
                                   mappings = mappings)
-        
+
 class CorrectionSetupDialog (MultiCheckDialog):
     def __init__(self):
         mappings = [MappingInfo('QuanPin/AutoCorrection/GnNg', ('gn','ng')),
@@ -374,7 +396,7 @@
             self.init_keys_values(mappings)
         else:
             self.widget.set_sensitive(False)
-            
+
     def init_keys_values(self, mappings):
         self.keys = [m[0] for m in mappings]
         values_with_closing = [v or k for k, v in mappings]
@@ -412,7 +434,7 @@
         self.widget.set_active(enabled)
 
     is_enabled = property(MappingOption.get_active, set_active)
-    
+
     def key(self):
         for k, v in self.mappings:
             if v is not None:
@@ -460,13 +482,13 @@
     def __init__ (self):
         self.__bus = ibus.Bus()
         self.__config = self.__bus.get_config()
-        
-        
+
+
     def run(self):
         self.__init_ui("main_window")
         self.__read_config()
         gtk.main()
-        
+
     def __init_ui(self, name):
         self.__init_gettext()
         xml_file = path.join(path.dirname(__file__), XML_FILE)
@@ -488,19 +510,19 @@
         self.__fuzzy_setup = FuzzySetupDialog()
         self.__correction_setup = CorrectionSetupDialog()
         self.__punctmapping_setup = PunctMappingSetupDialog()
-        
+
         self.__options = [
             TrivalOption("General/MemoryPower", 3, self.__xml),
             TrivalOption("General/PageSize", 10, self.__xml),
             TrivalOption("General/MaxBest", 1, self.__xml),
             TrivalOption("General/MaxTailCandidate", 0, self.__xml),
-            
+
             RadioOption("General/InitialStatus/Mode", 'Chinese', ['Chinese', 
'English'], self.__xml),
             RadioOption("General/InitialStatus/Punct", 'Full', ['Full', 
'Half'], self.__xml),
             RadioOption("General/InitialStatus/Letter", 'Half', ['Full', 
'Half'], self.__xml),
             RadioOption("General/Charset", 'GBK', ['GB2312', 'GBK', 
'GB18030'], self.__xml),
             CheckBoxOption("General/PunctMapping/Enabled", False, self.__xml),
-                                
+
             RadioOption("Keyboard/ModeSwitch", 'Shift', ['Shift', 'Control'], 
self.__xml),
             RadioOption("Keyboard/PunctSwitch", 'None', ['ControlComma',
                                                          'ControlPeriod',
@@ -510,7 +532,7 @@
             CheckBoxOption("Keyboard/Page/CommaPeriod", False, self.__xml),
             CheckBoxOption("Keyboard/CancelBackspace", True, self.__xml),
             CheckBoxOption("Keyboard/SmartPunct", True, self.__xml),
-            
+
             RadioOption("Pinyin/Scheme", 'QuanPin', ['QuanPin', 'ShuangPin'], 
self.__xml),
             ComboBoxOption("Pinyin/ShuangPinType", 'MS2003', ['MS2003',
                                                               'ABC',
@@ -522,7 +544,7 @@
             CheckBoxOption("QuanPin/AutoCorrection/Enabled", False, 
self.__xml),
             CheckBoxOption("QuanPin/FuzzySegs/Enabled", False, self.__xml),
             CheckBoxOption("QuanPin/InnerFuzzy/Enabled", False, self.__xml),
-            
+
             self.__fuzzy_setup,
             self.__correction_setup,
             self.__punctmapping_setup,
@@ -534,7 +556,7 @@
                 return opt
         else:
             return None
-        
+
     def __read_config(self):
         for opt in self.__options:
             opt.init_ui()
@@ -543,7 +565,7 @@
         self.on_chk_correction_enabled_toggled(None)
         self.on_chk_punctmapping_enabled_toggled(None)
         self.on_radio_shuangpin_toggled(None)
-        
+
     def __write_config(self):
         for opt in self.__options:
             opt.write_config()
@@ -563,14 +585,14 @@
         enabled = radio.get_active()
         combo = self.__xml.get_object("Pinyin/ShuangPinType")
         combo.set_sensitive(enabled)
-        
+
     def on_chk_fuzzy_enabled_toggled(self, button):
         self.__update_enabling_button("QuanPin/Fuzzy/Enabled",
                                       "button_fuzzy_setup")
-        
+
     def on_button_fuzzy_setup_clicked(self, button):
-        self.__fuzzy_setup.run()
-        
+        self.__fuzzy_setup.run(self.window)
+
     def on_chk_correction_enabled_toggled(self, button):
         self.__update_enabling_button("QuanPin/AutoCorrection/Enabled",
                                       "button_correction_setup")
@@ -580,19 +602,19 @@
                                       "QuanPin/InnerFuzzy/Enabled")
 
     def on_button_correction_setup_clicked(self, button):
-        self.__correction_setup.run()
-        
+        self.__correction_setup.run(self.window)
+
     def on_chk_punctmapping_enabled_toggled(self, button):
         self.__update_enabling_button("General/PunctMapping/Enabled",
                                       "button_punctmapping_setup")
-    
+
     def on_button_punctmapping_setup_clicked(self, button):
-        self.__punctmapping_setup.run()
-    
+        self.__punctmapping_setup.run(self.window)
+
     def on_main_ok_clicked(self, button):
         self.__write_config()
         self.__quit()
-        
+
     def on_main_apply_clicked(self, button):
         self.__write_config()
 
@@ -601,7 +623,7 @@
 
     def __quit(self):
         gtk.main_quit()
-    
+
 if __name__ == "__main__":
     MainWindow().run()
 
diff -Nur sunpinyin/wrapper/ibus/setup/setup.xml 
sunpinyin-new/wrapper/ibus/setup/setup.xml
--- sunpinyin/wrapper/ibus/setup/setup.xml      2016-05-08 21:57:00.000000000 
+0800
+++ sunpinyin-new/wrapper/ibus/setup/setup.xml  2020-03-03 20:33:45.210426000 
+0800
@@ -50,7 +50,7 @@
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
                 <property name="use_action_appearance">False</property>
-                <signal name="clicked" 
handler="on_correction_uncheck_all_clicked" swapped="no"/>
+                <signal name="clicked" 
handler="on_correction_unselect_all_clicked" swapped="no"/>
               </object>
               <packing>
                 <property name="expand">False</property>
diff -Nur sunpinyin/wrapper/ibus/src/sunpinyin_engine.cpp 
sunpinyin-new/wrapper/ibus/src/sunpinyin_engine.cpp
--- sunpinyin/wrapper/ibus/src/sunpinyin_engine.cpp     2016-05-08 
21:57:00.000000000 +0800
+++ sunpinyin-new/wrapper/ibus/src/sunpinyin_engine.cpp 2020-03-03 
20:33:45.210426000 +0800
@@ -131,7 +131,7 @@
 
     if (getenv("DISABLE_HARD_FORWARD") == NULL) {
         // Ctrl+<space> is pressed. let's just hard code these.
-        // it looks rediculous, but on what else do you need to do this hack?
+        // it looks ridiculous, but on what else do you need to do this hack?
         if (key.code == 0x20 && key.modifiers == IM_CTRL_MASK) {
             m_hard_forward = !m_hard_forward;
             return TRUE;

Reply via email to