Updated ibus-HEAD.patch from upstream.

Fixed ibus-setup SEGV when an engine is selected.
Fixed ibus-setup deprecated warnings with the latest python3-gobject.
Integrated the 'IBUS_SETUP_XID' environment variable for each engine setup.
Set prgname 'ibus-setup' for ibus-setup.
This commit is contained in:
Takao Fujiwara 2014-07-14 16:52:35 +09:00
parent 6f58b8fb0d
commit e08ec45e28
4 changed files with 464 additions and 43 deletions

View File

@ -1,6 +1,6 @@
From a6d4b9ac9a22c5b88c362b659eaf6fd59a0cf5bd Mon Sep 17 00:00:00 2001
From 91f6d9f3d0fc854711c2ba151c0dc5105a0a9152 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Tue, 14 Jan 2014 15:30:24 +0900
Date: Mon, 14 Jul 2014 16:20:21 +0900
Subject: [PATCH] Reload preload engines until users customize the list.
The idea is, if users don't customize the preload_engines with ibus-setup,
@ -18,14 +18,14 @@ IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value
'preload-engines'.
---
data/ibus.schemas.in | 24 ++++++++++++++
setup/main.py | 70 +++++++++++++++++++++++++++++++++++----
setup/main.py | 72 ++++++++++++++++++++++++++++++++++++----
setup/setup.ui | 22 +++++++++++--
src/ibustypes.h | 10 ++++++
ui/gtk3/panel.vala | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 210 insertions(+), 9 deletions(-)
5 files changed, 212 insertions(+), 9 deletions(-)
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
index 8fd7e15..28d2219 100644
index 1e4776b..9ee0b1a 100644
--- a/data/ibus.schemas.in
+++ b/data/ibus.schemas.in
@@ -2,6 +2,30 @@
@ -60,7 +60,7 @@ index 8fd7e15..28d2219 100644
<applyto>/desktop/ibus/general/preload_engines</applyto>
<owner>ibus</owner>
diff --git a/setup/main.py b/setup/main.py
index d3f4414..235ef9c 100644
index dee7be4..a991438 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -190,16 +190,30 @@ class Setup(object):
@ -124,7 +124,7 @@ index d3f4414..235ef9c 100644
def __treeview_notify_cb(self, treeview, prop):
if prop.name not in ("active-engine", "engines"):
return
@@ -321,6 +343,43 @@ class Setup(object):
@@ -321,6 +343,44 @@ class Setup(object):
del self.__engine_setup_exec_list[name]
self.__engine_setup_exec_list[name] = os.spawnl(os.P_NOWAIT, *args)
@ -140,9 +140,10 @@ index d3f4414..235ef9c 100644
+ "cleared immediately and the list will be " \
+ "configured by the login language every time. " \
+ "Do you agree with this?")
+ dlg = Gtk.MessageDialog(type = Gtk.MessageType.QUESTION,
+ dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.QUESTION,
+ transient_for = self.__window,
+ buttons = Gtk.ButtonsType.YES_NO,
+ message_format = message)
+ text = message)
+ id = dlg.run()
+ dlg.destroy()
+ self.__flush_gtk_events()
@ -169,7 +170,7 @@ index d3f4414..235ef9c 100644
self.__bus = IBus.Bus()
if self.__bus.is_connected():
diff --git a/setup/setup.ui b/setup/setup.ui
index 65dcee4..a6a001b 100644
index 5ffbe47..7c60b72 100644
--- a/setup/setup.ui
+++ b/setup/setup.ui
@@ -677,7 +677,23 @@
@ -197,7 +198,7 @@ index 65dcee4..a6a001b 100644
<property name="orientation">horizontal</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -868,7 +884,7 @@
@@ -869,7 +885,7 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
@ -206,7 +207,7 @@ index 65dcee4..a6a001b 100644
</packing>
</child>
<child>
@@ -916,7 +932,7 @@
@@ -917,7 +933,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
@ -237,7 +238,7 @@ index 86fc2cc..cb9eb22 100644
* @x: x coordinate.
* @y: y coordinate.
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
index 1da7966..fc60fd4 100644
index 7a15049..e6c128a 100644
--- a/ui/gtk3/panel.vala
+++ b/ui/gtk3/panel.vala
@@ -141,6 +141,10 @@ class Panel : IBus.PanelService {
@ -349,5 +350,5 @@ index 1da7966..fc60fd4 100644
private void update_xkb_engines() {
--
1.8.0
1.8.5.3

View File

@ -212,7 +212,7 @@ index 1b617f8..c16f86a 100644
From 9bad0c944162a1700dcb6615aab2a6a9cfd9eff5 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 12 Jun 2014 11:38:43 +0900
Subject: [PATCH 1/8] Fix escape key with Ctrl+Shift+U ISO 14755.
Subject: [PATCH] Fix escape key with Ctrl+Shift+U ISO 14755.
GtkIMContextSimple uses gdk_keymap_get_for_display() to check the readable
hex codes but IBusEngineSimple ignored it because does not have the display
@ -314,7 +314,7 @@ index 8c076ac..300a828 100644
From b6afffbd1a06ecf17af009f1de3e513988ecb92e Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Wed, 18 Jun 2014 11:42:34 +0900
Subject: [PATCH 2/8] Update ibuscomposetable.h for pt-br.
Subject: [PATCH] Update ibuscomposetable.h for pt-br.
pt_BR.UTF-8/Compose file is updated:
http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=e3dc0d1733
@ -1000,7 +1000,7 @@ index 2ba3571..22aab48 100644
From a5300750e38b5327bdd255d777544d0c0ebcb4d9 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Tue, 24 Jun 2014 11:24:40 +0900
Subject: [PATCH 4/8] Do not sort ibus engines when they are saved by
Subject: [PATCH] Do not sort ibus engines when they are saved by
ibus-setup.
ibus 1.5 changes the engine order with Super+space shortcut key
@ -1099,7 +1099,7 @@ index dee7be4..1d89f3d 100644
From 8ef258ec31f12405e4f5ded6a7a4d80114a219d4 Mon Sep 17 00:00:00 2001
From: Osamu Aoki <osamu@debian.org>
Date: Thu, 3 Jul 2014 11:39:32 +0900
Subject: [PATCH 5/8] Use "keycode Linux_keycode = X11_keysym" format
Subject: [PATCH] Use "keycode Linux_keycode = X11_keysym" format
Delete non-Linux keyboard compatibility.
@ -1150,7 +1150,7 @@ index 2c78347..e5546fa 100644
From 3dcf24742216d6234a45ace1b433b864efdf08a2 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 4 Jul 2014 16:03:57 +0900
Subject: [PATCH 7/8] Add ibus reset-config and read-config sub-commands.
Subject: [PATCH] Add ibus reset-config and read-config sub-commands.
BUG=rhbz#530711
TEST=tools/ibus
@ -1243,17 +1243,20 @@ index db4fd23..ecce80a 100644
--
1.8.5.3
From 4c245bbbac3edea90980a0f47ef2d5c0c070f936 Mon Sep 17 00:00:00 2001
From 9e5a2bd2c40f9eed8d99710b63b3dab737aa9b95 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Mon, 7 Jul 2014 16:17:25 +0900
Subject: [PATCH 8/8] Update ibus(1) for read-config and reset-config.
Date: Tue, 8 Jul 2014 11:42:12 +0900
Subject: [PATCH] Update ibus(1) for read-config and reset-config.
TEST=tools/ibus.1.gz
Review URL: https://codereview.appspot.com/111900044
---
tools/ibus.1.in | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/tools/ibus.1.in b/tools/ibus.1.in
index ab99db4..f777f65 100644
index ab99db4..6ac92ff 100644
--- a/tools/ibus.1.in
+++ b/tools/ibus.1.in
@@ -85,6 +85,13 @@ directories, separated by ':'.
@ -1261,7 +1264,7 @@ index ab99db4..f777f65 100644
Show the D-Bus address of ibus-daemon.
.TP
+\fBread\-config\fR
+Show the setting values in a gsettings configuration file.
+Print the setting values in a gsettings configuration file.
+.TP
+\fBreset\-config\fR
+Reset the user setting values to the default ones in a gsettings
@ -1273,3 +1276,414 @@ index ab99db4..f777f65 100644
--
1.8.5.3
From 10483bfebd1f51ffa52ad7d017193ae728f93bf5 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 10 Jul 2014 11:54:30 +0900
Subject: [PATCH] Fix ibus-setup SEGV in enginetreeview.py
When an engine is added on ibus-setup, enginetreeview.append_engine()
calls self.__model.append(None) and it causes engine == None in
__icon_cell_data_cb() and __name_cell_data_cb() in enginetreeview
with python3-gobject 3.13.x which version has implemented several
deprecated warnings in gi/overrides/Gtk.py .
I think this problem also could happen in the old versions if
the system would be slow.
BUG=rhbz#1048429
TEST=setup in Fedora 21
Review URL: https://codereview.appspot.com/104620043
---
setup/enginetreeview.py | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/setup/enginetreeview.py b/setup/enginetreeview.py
index 3ab81b7..afb23fc 100644
--- a/setup/enginetreeview.py
+++ b/setup/enginetreeview.py
@@ -128,12 +128,25 @@ class EngineTreeView(Gtk.TreeView):
def __icon_cell_data_cb(self, celllayout, renderer, model, it, data):
engine = self.__model.get_value(it, 0)
+ # When append_engine() is called, self.__model.append(None)
+ # is called internally and engine == None could happen in
+ # a slow system.
+ if engine == None:
+ return
+
icon_size = Gtk.icon_size_lookup(Gtk.IconSize.LARGE_TOOLBAR)[0]
pixbuf = load_icon(engine.get_icon(), Gtk.IconSize.LARGE_TOOLBAR)
renderer.set_property("pixbuf", pixbuf)
def __name_cell_data_cb(self, celllayout, renderer, model, it, data):
engine = self.__model.get_value(it, 0)
+
+ # When append_engine() is called, self.__model.append(None)
+ # is called internally and engine == None could happen in
+ # a slow system.
+ if engine == None:
+ return
+
renderer.set_property("sensitive", True)
language = IBus.get_language_name(engine.get_language())
renderer.set_property("text",
@@ -215,7 +228,6 @@ class EngineTreeView(Gtk.TreeView):
it = self.__model.prepend(None)
self.__model.set(it, 0, engine)
self.__engines = [engine] + self.__engines
- self.scroll_to_cell(self.__model[0].path, None)
def append_engine(self, engine):
if engine == None or engine in self.__engines:
@@ -223,7 +235,6 @@ class EngineTreeView(Gtk.TreeView):
it = self.__model.append(None)
self.__model.set(it, 0, engine)
self.__engines.append(engine)
- self.scroll_to_cell(self.__model[-1].path, None)
def remove_engine(self):
it = self.get_selected_iter()
--
1.8.5.3
From a17dc8e8bd288adedb77ae417d6825419337daae Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 11 Jul 2014 11:45:05 +0900
Subject: [PATCH] Fix deprecated warnings with python3-gobject 3.13.3.
python3-gobject adds several warnings in gi/overrides/Gtk.py
/usr/share/ibus/setup/main.py:74: PyGIDeprecationWarning:
Using positional arguments with the GObject constructor has been
deprecated. Please specify keyword(s) for "schema" or use a class
specific constructor.
See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
/usr/share/ibus/setup/main.py:364: PyGTKDeprecationWarning:
The keyword(s) "type" have been deprecated in favor of "message_type"
respectively.
See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
TEST=setup
Review URL: https://codereview.appspot.com/110990044
---
setup/engineabout.py | 12 +++++++-----
setup/keyboardshortcut.py | 32 ++++++++++++++++++--------------
setup/main.py | 30 ++++++++++++++++++------------
setup/setup.ui | 2 ++
4 files changed, 45 insertions(+), 31 deletions(-)
diff --git a/setup/engineabout.py b/setup/engineabout.py
index 50ab001..09e9b5c 100644
--- a/setup/engineabout.py
+++ b/setup/engineabout.py
@@ -29,12 +29,14 @@ from gi.repository import Pango
from i18n import _, N_
class EngineAbout(Gtk.Dialog):
- def __init__(self, enginedesc):
- self.__engine_desc = enginedesc
- super(EngineAbout, self).__init__(_("About"), None,
- Gtk.DialogFlags.MODAL,
- (_("_Close"), Gtk.ResponseType.CLOSE))
+ def __init__(self, engine, transient_for = None):
+ self.__engine_desc = engine
+ super(EngineAbout, self).__init__(
+ title = _("About"),
+ transient_for = transient_for)
+ buttons = (_("_Close"), Gtk.ResponseType.CLOSE)
+ self.add_buttons(*buttons)
self.__init_ui()
def __init_ui(self):
diff --git a/setup/keyboardshortcut.py b/setup/keyboardshortcut.py
index d82fea8..91595f7 100644
--- a/setup/keyboardshortcut.py
+++ b/setup/keyboardshortcut.py
@@ -49,7 +49,8 @@ class KeyboardShortcutSelection(Gtk.Box):
# self.pack_start(label, False, True, 4)
# shortcuts view
- self.__shortcut_view = Gtk.TreeView(Gtk.ListStore(GObject.TYPE_STRING))
+ self.__shortcut_view = Gtk.TreeView(
+ model = Gtk.ListStore(GObject.TYPE_STRING))
self.__shortcut_view.set_size_request(-1, 100)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(_("Keyboard shortcuts"), renderer, text = 0)
@@ -63,7 +64,7 @@ class KeyboardShortcutSelection(Gtk.Box):
# key code
hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
- label = Gtk.Label(_("Key code:"))
+ label = Gtk.Label(label = _("Key code:"))
label.set_justify(Gtk.Justification.LEFT)
label.set_alignment(0.0, 0.5)
hbox.pack_start(label, False, True, 4)
@@ -71,19 +72,19 @@ class KeyboardShortcutSelection(Gtk.Box):
self.__keycode_entry = Gtk.Entry()
self.__keycode_entry.connect("notify::text", self.__keycode_entry_notify_cb)
hbox.pack_start(self.__keycode_entry, True, True, 4)
- self.__keycode_button = Gtk.Button("...")
+ self.__keycode_button = Gtk.Button(label = "...")
self.__keycode_button.connect("clicked", self.__keycode_button_clicked_cb)
hbox.pack_start(self.__keycode_button, False, True, 4)
self.pack_start(hbox, False, True, 4)
# modifiers
hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
- label = Gtk.Label(_("Modifiers:"))
+ label = Gtk.Label(label = _("Modifiers:"))
label.set_justify(Gtk.Justification.LEFT)
label.set_alignment(0.0, 0.5)
hbox.pack_start(label, False, True, 4)
- table = Gtk.Table(4, 2)
+ table = Gtk.Table(n_rows = 4, n_columns = 2)
self.__modifier_buttons = []
self.__modifier_buttons.append(("Control",
Gtk.CheckButton.new_with_mnemonic("_Control"),
@@ -250,8 +251,10 @@ class KeyboardShortcutSelection(Gtk.Box):
def __keycode_button_clicked_cb(self, button):
out = []
- dlg = Gtk.MessageDialog(parent = self.get_toplevel(), buttons = Gtk.ButtonsType.CLOSE)
- message = _("Please press a key (or a key combination).\nThe dialog will be closed when the key is released.")
+ dlg = Gtk.MessageDialog(transient_for = self.get_toplevel(),
+ buttons = Gtk.ButtonsType.CLOSE)
+ message = _("Please press a key (or a key combination).\n" \
+ "The dialog will be closed when the key is released.")
dlg.set_markup(message)
dlg.set_title(_("Please press a key (or a key combination)"))
sw = Gtk.ScrolledWindow()
@@ -265,7 +268,7 @@ class KeyboardShortcutSelection(Gtk.Box):
model = Gtk.ListStore(GObject.TYPE_INT,
GObject.TYPE_UINT,
GObject.TYPE_UINT)
- accel_view = Gtk.TreeView(model)
+ accel_view = Gtk.TreeView(model = model)
sw.add(accel_view)
column = Gtk.TreeViewColumn()
renderer = Gtk.CellRendererAccel(accel_mode=Gtk.CellRendererAccelMode.OTHER,
@@ -315,8 +318,9 @@ class KeyboardShortcutSelection(Gtk.Box):
self.__apply_button.set_sensitive(False)
class KeyboardShortcutSelectionDialog(Gtk.Dialog):
- def __init__(self, title = None, parent = None, flags = 0, buttons = None):
- super(KeyboardShortcutSelectionDialog, self).__init__(title, parent, flags, buttons)
+ def __init__(self, title = None, transient_for = None, flags = 0):
+ super(KeyboardShortcutSelectionDialog, self).__init__(
+ title = title, transient_for = transient_for, flags = flags)
self.__selection_view = KeyboardShortcutSelection()
self.vbox.pack_start(self.__selection_view, False, True, 0)
self.vbox.show_all()
@@ -333,10 +337,10 @@ class KeyboardShortcutSelectionDialog(Gtk.Dialog):
if __name__ == "__main__":
- dlg = KeyboardShortcutSelectionDialog(
- title = "Select test",
- buttons = (_("_Cancel"), Gtk.ResponseType.CANCEL,
- _("_OK"), Gtk.ResponseType.OK))
+ dlg = KeyboardShortcutSelectionDialog(title = "Select test")
+ buttons = (_("_Cancel"), Gtk.ResponseType.CANCEL,
+ _("_OK"), Gtk.ResponseType.OK)
+ dlg.add_buttons(buttons)
dlg.add_shortcut("Control+Shift+space")
dlg.set_shortcuts(None)
print((dlg.run()))
diff --git a/setup/main.py b/setup/main.py
index 1d89f3d..1bc9cfb 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -70,10 +70,12 @@ class Setup(object):
def __init__(self):
super(Setup, self).__init__()
- self.__settings_general = Gio.Settings("org.freedesktop.ibus.general");
+ self.__settings_general = Gio.Settings(
+ schema = "org.freedesktop.ibus.general");
self.__settings_hotkey = Gio.Settings(
- "org.freedesktop.ibus.general.hotkey");
- self.__settings_panel = Gio.Settings("org.freedesktop.ibus.panel");
+ schema = "org.freedesktop.ibus.general.hotkey");
+ self.__settings_panel = Gio.Settings(
+ schema = "org.freedesktop.ibus.panel");
# IBus.Bus() calls ibus_bus_new().
# Gtk.Builder().add_from_file() also calls ibus_bus_new_async()
@@ -300,7 +302,7 @@ class Setup(object):
def __button_engine_about_cb(self, button):
engine = self.__treeview.get_active_engine()
if engine:
- about = EngineAbout(engine)
+ about = EngineAbout(engine = engine, transient_for = self.__window)
about.run()
about.destroy()
@@ -328,7 +330,7 @@ class Setup(object):
return
message = _("The IBus daemon is not running. Do you wish to start it?")
- dlg = Gtk.MessageDialog(type = Gtk.MessageType.QUESTION,
+ dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.QUESTION,
buttons = Gtk.ButtonsType.YES_NO,
text = message)
id = dlg.run()
@@ -354,7 +356,7 @@ class Setup(object):
" export XMODIFIERS=@im=ibus\n"
" export QT_IM_MODULE=ibus"
)
- dlg = Gtk.MessageDialog(type = Gtk.MessageType.INFO,
+ dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.INFO,
buttons = Gtk.ButtonsType.OK,
text = message)
id = dlg.run()
@@ -363,7 +365,7 @@ class Setup(object):
else:
# Translators: %d == 5 currently
message = _("IBus daemon could not be started in %d seconds")
- dlg = Gtk.MessageDialog(type = Gtk.MessageType.INFO,
+ dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.INFO,
buttons = Gtk.ButtonsType.OK,
text = message % timeout)
id = dlg.run()
@@ -378,7 +380,9 @@ class Setup(object):
# Translators: Title of the window
title2 = _("switching input methods")
title = title1 % title2
- dialog = keyboardshortcut.KeyboardShortcutSelectionDialog(buttons = buttons, title = title)
+ dialog = keyboardshortcut.KeyboardShortcutSelectionDialog(
+ title = title, transient_for = self.__window)
+ dialog.add_buttons(*buttons)
text = entry.get_text()
if text:
shortcuts = text.split("; ")
@@ -409,9 +413,10 @@ class Setup(object):
try:
self.__bus.register_start_engine(data[DATA_LANG], data[DATA_NAME])
except Exception as e:
- dlg = Gtk.MessageDialog(type = Gtk.MessageType.ERROR,
+ dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.ERROR,
+ transient_for = self.__window,
buttons = Gtk.ButtonsType.CLOSE,
- message_format = str(e))
+ text = str(e))
dlg.run()
dlg.destroy()
self.__flush_gtk_events()
@@ -420,9 +425,10 @@ class Setup(object):
try:
self.__bus.register_stop_engine(data[DATA_LANG], data[DATA_NAME])
except Exception as e:
- dlg = Gtk.MessageDialog(type = Gtk.MessageType.ERROR,
+ dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.ERROR,
+ transient_for = self.__window,
buttons = Gtk.ButtonsType.CLOSE,
- message_format = str(e))
+ text = str(e))
dlg.run()
dlg.destroy()
self.__flush_gtk_events()
diff --git a/setup/setup.ui b/setup/setup.ui
index bb78433..d7801ea 100644
--- a/setup/setup.ui
+++ b/setup/setup.ui
@@ -62,6 +62,8 @@
<property name="resizable">False</property>
<property name="window_position">center-always</property>
<property name="icon_name">ibus-setup</property>
+ <!-- for GtkFontChooserDialog -->
+ <property name="modal">True</property>
<child>
<object class="GtkBox" id="vbox1">
<property name="orientation">vertical</property>
--
1.8.5.3
From b1b4e2946682e3d53aa396d8469c7fa16a2dbca8 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 11 Jul 2014 11:50:04 +0900
Subject: [PATCH] Export the 'IBUS_SETUP_XID' environment variable for each
engine setup.
Follow GNOME_CONTROL_CENTER_XID.
https://wiki.gnome.org/AllanDay/IMEGuidelines
TEST=setup
Review URL: https://codereview.appspot.com/112920044
---
setup/main.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/setup/main.py b/setup/main.py
index 1bc9cfb..e4ddd45 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -28,6 +28,7 @@ import signal
import sys
import time
+from gi.repository import GdkX11
from gi.repository import Gio
from gi.repository import GLib
from gi.repository import Gtk
@@ -233,6 +234,7 @@ class Setup(object):
# add icon search path
self.__window = self.__builder.get_object("window_preferences")
self.__window.connect("delete-event", Gtk.main_quit)
+ self.__window.connect("notify::window", self.__gdk_window_set_cb)
self.__button_close = self.__builder.get_object("button_close")
self.__button_close.connect("clicked", Gtk.main_quit)
@@ -248,6 +250,10 @@ class Setup(object):
self.__init_panel()
self.__init_general()
+ def __gdk_window_set_cb(self, object, pspec):
+ str = '%u' % GdkX11.X11Window.get_xid(object.get_window())
+ GLib.setenv('IBUS_SETUP_XID', str, True)
+
def __combobox_notify_active_engine_cb(self, combobox, property):
engine = self.__combobox.get_active_engine()
button = self.__builder.get_object("button_engine_add")
--
1.8.5.3
From 9b2004efcd26e11bbd56cf51656fe326fc11be8e Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Mon, 14 Jul 2014 11:45:25 +0900
Subject: [PATCH] Call GLib.set_prgname('ibus-setup') for ibus-setup
main.py
TEST=xlsclients
Review URL: https://codereview.appspot.com/108550043
---
setup/main.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/setup/main.py b/setup/main.py
index e4ddd45..9bd0af1 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -28,9 +28,13 @@ import signal
import sys
import time
+from gi.repository import GLib
+# set_prgname before importing other modules to show the name in warning
+# messages when import modules are failed.
+GLib.set_prgname('ibus-setup')
+
from gi.repository import GdkX11
from gi.repository import Gio
-from gi.repository import GLib
from gi.repository import Gtk
from gi.repository import IBus
from os import path
--
1.8.5.3

View File

@ -1,6 +1,6 @@
From 6c5b4f197afde5185c23ed725eecb36da43507e6 Mon Sep 17 00:00:00 2001
From 79587f187998b6e89c478ac23c7dbcba56a91637 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Tue, 14 Jan 2014 15:30:54 +0900
Date: Mon, 14 Jul 2014 16:21:19 +0900
Subject: [PATCH] Enable ibus-setup to show the frequently used languages
only in IME list.
@ -10,7 +10,7 @@ Subject: [PATCH] Enable ibus-setup to show the frequently used languages
2 files changed, 292 insertions(+), 24 deletions(-)
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
index 28d2219..0600133 100644
index 9ee0b1a..c638e7d 100644
--- a/data/ibus.schemas.in
+++ b/data/ibus.schemas.in
@@ -384,6 +384,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn
@ -189,7 +189,7 @@ index 28d2219..0600133 100644
<applyto>/desktop/ibus/panel/custom_font</applyto>
<owner>ibus</owner>
diff --git a/setup/enginecombobox.py b/setup/enginecombobox.py
index b45ad56..830f0e8 100644
index 2a2a677..a203b25 100644
--- a/setup/enginecombobox.py
+++ b/setup/enginecombobox.py
@@ -24,6 +24,7 @@ import locale
@ -207,7 +207,7 @@ index b45ad56..830f0e8 100644
+ self.__all_model = None
+ self.__show_sub_lang = False
+ self.__settings_xkblayoutconfig = Gio.Settings(
+ "org.freedesktop.ibus.general.xkblayoutconfig");
+ schema = "org.freedesktop.ibus.general.xkblayoutconfig");
renderer = Gtk.CellRendererPixbuf()
renderer.set_property("xalign", 0)
@ -217,17 +217,6 @@ index b45ad56..830f0e8 100644
- def set_engines(self, engines):
- self.__model = Gtk.TreeStore(object)
-
- iter1 = self.__model.append(None)
- self.__model.set(iter1, 0, 0)
- langs = {}
- for e in engines:
- l = IBus.get_language_name(e.get_language())
- if l == None:
- l = ""
- if l not in langs:
- langs[l] = []
- langs[l].append(e)
+ def __gconf_get_lang_list_from_locale(self):
+ common_list = ['en', 'Other']
+ loc = None
@ -256,7 +245,17 @@ index b45ad56..830f0e8 100644
+ if lang_list == None:
+ return [loc] + common_list
+ return lang_list + common_list
+
- iter1 = self.__model.append(None)
- self.__model.set(iter1, 0, 0)
- langs = {}
- for e in engines:
- l = IBus.get_language_name(e.get_language())
- if l == None:
- l = ""
- if l not in langs:
- langs[l] = []
- langs[l].append(e)
+ def __has_engine_in_lang_list(self, engine, lang_list):
+ retval = False
+ for lang in lang_list:
@ -410,5 +409,5 @@ index b45ad56..830f0e8 100644
raise AttributeError('unknown property %s' % property.name)
--
1.8.0
1.8.5.3

View File

@ -36,7 +36,7 @@
Name: ibus
Version: 1.5.7
Release: 5%{?dist}
Release: 6%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@ -466,6 +466,13 @@ fi
%{_datadir}/gtk-doc/html/*
%changelog
* Mon Jul 14 2014 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.7-6
- Updated ibus-HEAD.patch from upstream.
Fixed ibus-setup SEGV when an engine is selected.
Fixed ibus-setup deprecated warnings with the latest python3-gobject.
Integrated the 'IBUS_SETUP_XID' environment variable for each engine setup.
Set prgname 'ibus-setup' for ibus-setup.
* Mon Jul 07 2014 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.7-5
- Updated ibus-HEAD.patch from upstream.
Added pl(qwertz).