Merge lp:~attente/unity-control-center/fcitx-transition into lp:unity-control-center
- fcitx-transition
- Merge into trunk
Proposed by
William Hua
Status: | Merged |
---|---|
Approved by: | Sebastien Bacher |
Approved revision: | 12797 |
Merged at revision: | 12808 |
Proposed branch: | lp:~attente/unity-control-center/fcitx-transition |
Merge into: | lp:unity-control-center |
Diff against target: |
1609 lines (+1052/-108) 9 files modified
configure.ac (+23/-0) debian/control (+2/-0) panels/region/Makefile.am (+2/-1) panels/region/cc-region-panel.c (+17/-4) panels/region/gnome-region-panel-input-chooser.ui (+2/-0) panels/region/gnome-region-panel-input.c (+369/-39) panels/region/unity-region-panel-fcitx.ui (+560/-0) panels/region/unity-region-panel-ibus.ui (+75/-63) po/POTFILES.in (+2/-1) |
To merge this branch: | bzr merge lp:~attente/unity-control-center/fcitx-transition |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sebastien Bacher | Approve | ||
Review via email: mp+249523@code.launchpad.net |
Commit message
Basic Fcitx support.
Description of the change
Basic Fcitx support.
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'configure.ac' | |||
2 | --- configure.ac 2014-08-29 10:26:05 +0000 | |||
3 | +++ configure.ac 2015-02-12 16:27:19 +0000 | |||
4 | @@ -86,6 +86,23 @@ | |||
5 | 86 | IBUS_MODULE= | 86 | IBUS_MODULE= |
6 | 87 | fi | 87 | fi |
7 | 88 | 88 | ||
8 | 89 | # Fcitx support | ||
9 | 90 | |||
10 | 91 | AC_ARG_ENABLE(fcitx, | ||
11 | 92 | AS_HELP_STRING([--disable-fcitx], | ||
12 | 93 | [Disable Fcitx support]), | ||
13 | 94 | enable_fcitx=$enableval, | ||
14 | 95 | enable_fcitx=yes) | ||
15 | 96 | |||
16 | 97 | if test "x$enable_fcitx" = "xyes" ; then | ||
17 | 98 | FCITX_MODULE="fcitx-config fcitx-gclient" | ||
18 | 99 | AC_DEFINE(HAVE_FCITX, 1, [Defined if Fcitx support is enabled]) | ||
19 | 100 | else | ||
20 | 101 | FCITX_MODULE= | ||
21 | 102 | fi | ||
22 | 103 | |||
23 | 104 | AM_CONDITIONAL(HAVE_FCITX, test "x$enable_fcitx" == "xyes") | ||
24 | 105 | |||
25 | 89 | dnl ============================================== | 106 | dnl ============================================== |
26 | 90 | dnl Check that we meet the dependencies | 107 | dnl Check that we meet the dependencies |
27 | 91 | dnl ============================================== | 108 | dnl ============================================== |
28 | @@ -140,6 +157,7 @@ | |||
29 | 140 | polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION | 157 | polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION |
30 | 141 | gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION | 158 | gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION |
31 | 142 | $IBUS_MODULE | 159 | $IBUS_MODULE |
32 | 160 | $FCITX_MODULE | ||
33 | 143 | x11) | 161 | x11) |
34 | 144 | PKG_CHECK_MODULES(SCREEN_PANEL, $COMMON_MODULES) | 162 | PKG_CHECK_MODULES(SCREEN_PANEL, $COMMON_MODULES) |
35 | 145 | PKG_CHECK_MODULES(SOUND_PANEL, $COMMON_MODULES libxml-2.0 | 163 | PKG_CHECK_MODULES(SOUND_PANEL, $COMMON_MODULES libxml-2.0 |
36 | @@ -514,4 +532,9 @@ | |||
37 | 514 | else | 532 | else |
38 | 515 | AC_MSG_NOTICE([ Region panel IBus support disabled]) | 533 | AC_MSG_NOTICE([ Region panel IBus support disabled]) |
39 | 516 | fi | 534 | fi |
40 | 535 | if test "x$enable_fcitx" == "xyes"; then | ||
41 | 536 | AC_MSG_NOTICE([** Fcitx (Region panel Fcitx support)]) | ||
42 | 537 | else | ||
43 | 538 | AC_MSG_NOTICE([ Region panel Fcitx support disabled]) | ||
44 | 539 | fi | ||
45 | 517 | AC_MSG_NOTICE([End options]) | 540 | AC_MSG_NOTICE([End options]) |
46 | 518 | 541 | ||
47 | === modified file 'debian/control' | |||
48 | --- debian/control 2015-02-03 12:17:16 +0000 | |||
49 | +++ debian/control 2015-02-12 16:27:19 +0000 | |||
50 | @@ -8,6 +8,7 @@ | |||
51 | 8 | debhelper (>= 9), | 8 | debhelper (>= 9), |
52 | 9 | dh-migrations, | 9 | dh-migrations, |
53 | 10 | desktop-file-utils, | 10 | desktop-file-utils, |
54 | 11 | fcitx-libs-dev, | ||
55 | 11 | gtk-doc-tools, | 12 | gtk-doc-tools, |
56 | 12 | gnome-common, | 13 | gnome-common, |
57 | 13 | gnome-pkg-tools (>= 0.10), | 14 | gnome-pkg-tools (>= 0.10), |
58 | @@ -67,6 +68,7 @@ | |||
59 | 67 | accountsservice, | 68 | accountsservice, |
60 | 68 | apg, | 69 | apg, |
61 | 69 | desktop-file-utils, | 70 | desktop-file-utils, |
62 | 71 | fcitx-data, | ||
63 | 70 | gkbd-capplet (>= 3.5.90), | 72 | gkbd-capplet (>= 3.5.90), |
64 | 71 | gnome-desktop3-data, | 73 | gnome-desktop3-data, |
65 | 72 | adwaita-icon-theme, | 74 | adwaita-icon-theme, |
66 | 73 | 75 | ||
67 | === modified file 'panels/region/Makefile.am' | |||
68 | --- panels/region/Makefile.am 2013-12-18 22:19:53 +0000 | |||
69 | +++ panels/region/Makefile.am 2015-02-12 16:27:19 +0000 | |||
70 | @@ -44,7 +44,8 @@ | |||
71 | 44 | uidir = $(pkgdatadir)/ui | 44 | uidir = $(pkgdatadir)/ui |
72 | 45 | ui_DATA = \ | 45 | ui_DATA = \ |
73 | 46 | gnome-region-panel.ui \ | 46 | gnome-region-panel.ui \ |
75 | 47 | unity-region-panel.ui \ | 47 | unity-region-panel-ibus.ui \ |
76 | 48 | unity-region-panel-fcitx.ui \ | ||
77 | 48 | gnome-region-panel-input-chooser.ui \ | 49 | gnome-region-panel-input-chooser.ui \ |
78 | 49 | $(NULL) | 50 | $(NULL) |
79 | 50 | 51 | ||
80 | 51 | 52 | ||
81 | === modified file 'panels/region/cc-region-panel.c' | |||
82 | --- panels/region/cc-region-panel.c 2014-02-20 09:30:01 +0000 | |||
83 | +++ panels/region/cc-region-panel.c 2015-02-12 16:27:19 +0000 | |||
84 | @@ -57,6 +57,12 @@ | |||
85 | 57 | } | 57 | } |
86 | 58 | 58 | ||
87 | 59 | static gboolean | 59 | static gboolean |
88 | 60 | is_fcitx_active (void) | ||
89 | 61 | { | ||
90 | 62 | return g_strcmp0 (g_getenv ("GTK_IM_MODULE"), "fcitx") == 0; | ||
91 | 63 | } | ||
92 | 64 | |||
93 | 65 | static gboolean | ||
94 | 60 | has_indicator_keyboard (void) | 66 | has_indicator_keyboard (void) |
95 | 61 | { | 67 | { |
96 | 62 | GSettingsSchema *schema; | 68 | GSettingsSchema *schema; |
97 | @@ -168,10 +174,17 @@ | |||
98 | 168 | 174 | ||
99 | 169 | priv->builder = gtk_builder_new (); | 175 | priv->builder = gtk_builder_new (); |
100 | 170 | 176 | ||
105 | 171 | if (has_indicator_keyboard ()) | 177 | if (has_indicator_keyboard ()) { |
106 | 172 | gtk_builder_add_from_file (priv->builder, | 178 | if (is_fcitx_active ()) { |
107 | 173 | GNOMECC_UI_DIR "/unity-region-panel.ui", | 179 | gtk_builder_add_from_file (priv->builder, |
108 | 174 | &error); | 180 | GNOMECC_UI_DIR "/unity-region-panel-fcitx.ui", |
109 | 181 | &error); | ||
110 | 182 | } else { | ||
111 | 183 | gtk_builder_add_from_file (priv->builder, | ||
112 | 184 | GNOMECC_UI_DIR "/unity-region-panel-ibus.ui", | ||
113 | 185 | &error); | ||
114 | 186 | } | ||
115 | 187 | } | ||
116 | 175 | else | 188 | else |
117 | 176 | gtk_builder_add_from_file (priv->builder, | 189 | gtk_builder_add_from_file (priv->builder, |
118 | 177 | GNOMECC_UI_DIR "/gnome-region-panel.ui", | 190 | GNOMECC_UI_DIR "/gnome-region-panel.ui", |
119 | 178 | 191 | ||
120 | === modified file 'panels/region/gnome-region-panel-input-chooser.ui' | |||
121 | --- panels/region/gnome-region-panel-input-chooser.ui 2012-06-01 17:46:38 +0000 | |||
122 | +++ panels/region/gnome-region-panel-input-chooser.ui 2015-02-12 16:27:19 +0000 | |||
123 | @@ -9,6 +9,8 @@ | |||
124 | 9 | <column type="gchararray"/> | 9 | <column type="gchararray"/> |
125 | 10 | <!-- type specific identifier --> | 10 | <!-- type specific identifier --> |
126 | 11 | <column type="gchararray"/> | 11 | <column type="gchararray"/> |
127 | 12 | <!-- text colour --> | ||
128 | 13 | <column type="GdkRGBA"/> | ||
129 | 12 | </columns> | 14 | </columns> |
130 | 13 | </object> | 15 | </object> |
131 | 14 | <object class="GtkTreeModelFilter" id="filtered_input_source_model"> | 16 | <object class="GtkTreeModelFilter" id="filtered_input_source_model"> |
132 | 15 | 17 | ||
133 | === modified file 'panels/region/gnome-region-panel-input.c' | |||
134 | --- panels/region/gnome-region-panel-input.c 2014-03-07 18:13:40 +0000 | |||
135 | +++ panels/region/gnome-region-panel-input.c 2015-02-12 16:27:19 +0000 | |||
136 | @@ -34,6 +34,12 @@ | |||
137 | 34 | #include <ibus.h> | 34 | #include <ibus.h> |
138 | 35 | #endif | 35 | #endif |
139 | 36 | 36 | ||
140 | 37 | #ifdef HAVE_FCITX | ||
141 | 38 | #include <fcitx-config/fcitx-config.h> | ||
142 | 39 | #include <fcitx-gclient/fcitxinputmethod.h> | ||
143 | 40 | #include <fcitx-gclient/fcitxkbd.h> | ||
144 | 41 | #endif | ||
145 | 42 | |||
146 | 37 | #include "gdm-languages.h" | 43 | #include "gdm-languages.h" |
147 | 38 | #include "gnome-region-panel-input.h" | 44 | #include "gnome-region-panel-input.h" |
148 | 39 | #include "keyboard-shortcuts.h" | 45 | #include "keyboard-shortcuts.h" |
149 | @@ -46,6 +52,12 @@ | |||
150 | 46 | #define KEY_INPUT_SOURCES "sources" | 52 | #define KEY_INPUT_SOURCES "sources" |
151 | 47 | #define INPUT_SOURCE_TYPE_XKB "xkb" | 53 | #define INPUT_SOURCE_TYPE_XKB "xkb" |
152 | 48 | #define INPUT_SOURCE_TYPE_IBUS "ibus" | 54 | #define INPUT_SOURCE_TYPE_IBUS "ibus" |
153 | 55 | #define INPUT_SOURCE_TYPE_FCITX "fcitx" | ||
154 | 56 | #define FCITX_XKB_PREFIX "fcitx-keyboard-" | ||
155 | 57 | |||
156 | 58 | #define ENV_GTK_IM_MODULE "GTK_IM_MODULE" | ||
157 | 59 | #define GTK_IM_MODULE_IBUS "ibus" | ||
158 | 60 | #define GTK_IM_MODULE_FCITX "fcitx" | ||
159 | 49 | 61 | ||
160 | 50 | #define MEDIA_KEYS_SCHEMA_ID "org.gnome.desktop.wm.keybindings" | 62 | #define MEDIA_KEYS_SCHEMA_ID "org.gnome.desktop.wm.keybindings" |
161 | 51 | #define KEY_PREV_INPUT_SOURCE "switch-input-source-backward" | 63 | #define KEY_PREV_INPUT_SOURCE "switch-input-source-backward" |
162 | @@ -71,6 +83,7 @@ | |||
163 | 71 | NAME_COLUMN, | 83 | NAME_COLUMN, |
164 | 72 | TYPE_COLUMN, | 84 | TYPE_COLUMN, |
165 | 73 | ID_COLUMN, | 85 | ID_COLUMN, |
166 | 86 | COLOUR_COLUMN, | ||
167 | 74 | SETUP_COLUMN, | 87 | SETUP_COLUMN, |
168 | 75 | LEGACY_SETUP_COLUMN, | 88 | LEGACY_SETUP_COLUMN, |
169 | 76 | N_COLUMNS | 89 | N_COLUMNS |
170 | @@ -86,15 +99,41 @@ | |||
171 | 86 | static GtkWidget *input_chooser = NULL; /* weak pointer */ | 99 | static GtkWidget *input_chooser = NULL; /* weak pointer */ |
172 | 87 | static CcRegionKeyboardItem *prev_source_item = NULL; | 100 | static CcRegionKeyboardItem *prev_source_item = NULL; |
173 | 88 | static CcRegionKeyboardItem *next_source_item = NULL; | 101 | static CcRegionKeyboardItem *next_source_item = NULL; |
174 | 102 | static GdkRGBA active_colour; | ||
175 | 103 | static GdkRGBA inactive_colour; | ||
176 | 89 | 104 | ||
177 | 90 | #ifdef HAVE_IBUS | 105 | #ifdef HAVE_IBUS |
178 | 91 | static IBusBus *ibus = NULL; | 106 | static IBusBus *ibus = NULL; |
179 | 92 | static GHashTable *ibus_engines = NULL; | 107 | static GHashTable *ibus_engines = NULL; |
180 | 93 | static GCancellable *ibus_cancellable = NULL; | 108 | static GCancellable *ibus_cancellable = NULL; |
181 | 94 | static guint shell_name_watch_id = 0; | 109 | static guint shell_name_watch_id = 0; |
183 | 95 | 110 | static gboolean is_ibus_active = FALSE; | |
184 | 96 | #endif /* HAVE_IBUS */ | 111 | #endif /* HAVE_IBUS */ |
185 | 97 | 112 | ||
186 | 113 | #ifdef HAVE_FCITX | ||
187 | 114 | static FcitxInputMethod *fcitx = NULL; | ||
188 | 115 | static FcitxKbd *fcitx_keyboard = NULL; | ||
189 | 116 | static GHashTable *fcitx_engines = NULL; | ||
190 | 117 | static GCancellable *fcitx_cancellable = NULL; | ||
191 | 118 | static gboolean is_fcitx_active = FALSE; | ||
192 | 119 | |||
193 | 120 | struct _FcitxShareStateConfig | ||
194 | 121 | { | ||
195 | 122 | FcitxGenericConfig config; | ||
196 | 123 | gint share_state; | ||
197 | 124 | }; | ||
198 | 125 | |||
199 | 126 | typedef struct _FcitxShareStateConfig FcitxShareStateConfig; | ||
200 | 127 | |||
201 | 128 | static CONFIG_BINDING_BEGIN (FcitxShareStateConfig) | ||
202 | 129 | CONFIG_BINDING_REGISTER ("Program", "ShareStateAmongWindow", share_state) | ||
203 | 130 | CONFIG_BINDING_END () | ||
204 | 131 | |||
205 | 132 | static CONFIG_DESC_DEFINE (get_fcitx_config_desc, "config.desc") | ||
206 | 133 | |||
207 | 134 | static FcitxShareStateConfig fcitx_config; | ||
208 | 135 | #endif /* HAVE_FCITX */ | ||
209 | 136 | |||
210 | 98 | static void populate_model (GtkListStore *store, | 137 | static void populate_model (GtkListStore *store, |
211 | 99 | GtkListStore *active_sources_store); | 138 | GtkListStore *active_sources_store); |
212 | 100 | static GtkWidget *input_chooser_new (GtkWindow *main_window, | 139 | static GtkWidget *input_chooser_new (GtkWindow *main_window, |
213 | @@ -439,19 +478,23 @@ | |||
214 | 439 | GDesktopAppInfo *app_info = NULL; | 478 | GDesktopAppInfo *app_info = NULL; |
215 | 440 | gchar *legacy_setup = NULL; | 479 | gchar *legacy_setup = NULL; |
216 | 441 | gchar *display_name = NULL; | 480 | gchar *display_name = NULL; |
217 | 481 | gchar *name = NULL; | ||
218 | 442 | 482 | ||
219 | 443 | engine_desc = g_hash_table_lookup (ibus_engines, id); | 483 | engine_desc = g_hash_table_lookup (ibus_engines, id); |
220 | 444 | if (engine_desc) | 484 | if (engine_desc) |
221 | 445 | { | 485 | { |
222 | 446 | display_name = engine_get_display_name (engine_desc); | 486 | display_name = engine_get_display_name (engine_desc); |
223 | 487 | name = g_strdup_printf ("%s (IBus)", display_name); | ||
224 | 447 | app_info = setup_app_info_for_id (id); | 488 | app_info = setup_app_info_for_id (id); |
225 | 448 | legacy_setup = legacy_setup_for_id (id); | 489 | legacy_setup = legacy_setup_for_id (id); |
226 | 449 | 490 | ||
227 | 450 | gtk_list_store_set (GTK_LIST_STORE (model), &iter, | 491 | gtk_list_store_set (GTK_LIST_STORE (model), &iter, |
229 | 451 | NAME_COLUMN, display_name, | 492 | NAME_COLUMN, name, |
230 | 493 | COLOUR_COLUMN, is_ibus_active ? &active_colour : &inactive_colour, | ||
231 | 452 | SETUP_COLUMN, app_info, | 494 | SETUP_COLUMN, app_info, |
232 | 453 | LEGACY_SETUP_COLUMN, legacy_setup, | 495 | LEGACY_SETUP_COLUMN, legacy_setup, |
233 | 454 | -1); | 496 | -1); |
234 | 497 | g_free (name); | ||
235 | 455 | g_free (display_name); | 498 | g_free (display_name); |
236 | 456 | g_free (legacy_setup); | 499 | g_free (legacy_setup); |
237 | 457 | if (app_info) | 500 | if (app_info) |
238 | @@ -597,7 +640,11 @@ | |||
239 | 597 | 640 | ||
240 | 598 | fetch_ibus_engines (builder); | 641 | fetch_ibus_engines (builder); |
241 | 599 | 642 | ||
242 | 643 | #ifdef HAVE_FCITX | ||
243 | 644 | if (has_indicator_keyboard () && !is_fcitx_active) | ||
244 | 645 | #else | ||
245 | 600 | if (has_indicator_keyboard ()) | 646 | if (has_indicator_keyboard ()) |
246 | 647 | #endif | ||
247 | 601 | update_source_radios (builder); | 648 | update_source_radios (builder); |
248 | 602 | 649 | ||
249 | 603 | /* We've got everything we needed, don't want to be called again. */ | 650 | /* We've got everything we needed, don't want to be called again. */ |
250 | @@ -681,6 +728,7 @@ | |||
251 | 681 | NAME_COLUMN, name, | 728 | NAME_COLUMN, name, |
252 | 682 | TYPE_COLUMN, INPUT_SOURCE_TYPE_XKB, | 729 | TYPE_COLUMN, INPUT_SOURCE_TYPE_XKB, |
253 | 683 | ID_COLUMN, tmp->data, | 730 | ID_COLUMN, tmp->data, |
254 | 731 | COLOUR_COLUMN, &active_colour, | ||
255 | 684 | -1); | 732 | -1); |
256 | 685 | } | 733 | } |
257 | 686 | g_free (source_id); | 734 | g_free (source_id); |
258 | @@ -691,6 +739,7 @@ | |||
259 | 691 | if (ibus_engines) | 739 | if (ibus_engines) |
260 | 692 | { | 740 | { |
261 | 693 | gchar *display_name; | 741 | gchar *display_name; |
262 | 742 | gchar *name; | ||
263 | 694 | 743 | ||
264 | 695 | sources = g_hash_table_get_keys (ibus_engines); | 744 | sources = g_hash_table_get_keys (ibus_engines); |
265 | 696 | 745 | ||
266 | @@ -704,13 +753,16 @@ | |||
267 | 704 | continue; | 753 | continue; |
268 | 705 | 754 | ||
269 | 706 | display_name = engine_get_display_name (g_hash_table_lookup (ibus_engines, tmp->data)); | 755 | display_name = engine_get_display_name (g_hash_table_lookup (ibus_engines, tmp->data)); |
270 | 756 | name = g_strdup_printf ("%s (IBus)", display_name); | ||
271 | 707 | 757 | ||
272 | 708 | gtk_list_store_append (store, &iter); | 758 | gtk_list_store_append (store, &iter); |
273 | 709 | gtk_list_store_set (store, &iter, | 759 | gtk_list_store_set (store, &iter, |
275 | 710 | NAME_COLUMN, display_name, | 760 | NAME_COLUMN, name, |
276 | 711 | TYPE_COLUMN, INPUT_SOURCE_TYPE_IBUS, | 761 | TYPE_COLUMN, INPUT_SOURCE_TYPE_IBUS, |
277 | 712 | ID_COLUMN, tmp->data, | 762 | ID_COLUMN, tmp->data, |
278 | 763 | COLOUR_COLUMN, is_ibus_active ? &active_colour : &inactive_colour, | ||
279 | 713 | -1); | 764 | -1); |
280 | 765 | g_free (name); | ||
281 | 714 | g_free (display_name); | 766 | g_free (display_name); |
282 | 715 | } | 767 | } |
283 | 716 | g_free (source_id); | 768 | g_free (source_id); |
284 | @@ -719,6 +771,44 @@ | |||
285 | 719 | } | 771 | } |
286 | 720 | #endif | 772 | #endif |
287 | 721 | 773 | ||
288 | 774 | #ifdef HAVE_FCITX | ||
289 | 775 | if (fcitx_engines) | ||
290 | 776 | { | ||
291 | 777 | GHashTableIter engines_iter; | ||
292 | 778 | gpointer key; | ||
293 | 779 | gpointer value; | ||
294 | 780 | |||
295 | 781 | g_hash_table_iter_init (&engines_iter, fcitx_engines); | ||
296 | 782 | while (g_hash_table_iter_next (&engines_iter, &key, &value)) | ||
297 | 783 | { | ||
298 | 784 | const gchar *id = key; | ||
299 | 785 | const FcitxIMItem *engine = value; | ||
300 | 786 | |||
301 | 787 | if (g_str_has_prefix (id, FCITX_XKB_PREFIX)) | ||
302 | 788 | continue; | ||
303 | 789 | |||
304 | 790 | source_id = g_strconcat (INPUT_SOURCE_TYPE_FCITX, id, NULL); | ||
305 | 791 | |||
306 | 792 | if (!g_hash_table_contains (active_sources_table, source_id)) | ||
307 | 793 | { | ||
308 | 794 | gchar *name = g_strdup_printf ("%s (Fcitx)", engine->name); | ||
309 | 795 | |||
310 | 796 | gtk_list_store_append (store, &iter); | ||
311 | 797 | gtk_list_store_set (store, &iter, | ||
312 | 798 | TYPE_COLUMN, INPUT_SOURCE_TYPE_FCITX, | ||
313 | 799 | ID_COLUMN, id, | ||
314 | 800 | NAME_COLUMN, name, | ||
315 | 801 | COLOUR_COLUMN, is_fcitx_active ? &active_colour : &inactive_colour, | ||
316 | 802 | -1); | ||
317 | 803 | |||
318 | 804 | g_free (name); | ||
319 | 805 | } | ||
320 | 806 | |||
321 | 807 | g_free (source_id); | ||
322 | 808 | } | ||
323 | 809 | } | ||
324 | 810 | #endif | ||
325 | 811 | |||
326 | 722 | g_hash_table_destroy (active_sources_table); | 812 | g_hash_table_destroy (active_sources_table); |
327 | 723 | } | 813 | } |
328 | 724 | 814 | ||
329 | @@ -734,6 +824,7 @@ | |||
330 | 734 | GDesktopAppInfo *app_info; | 824 | GDesktopAppInfo *app_info; |
331 | 735 | gchar *legacy_setup; | 825 | gchar *legacy_setup; |
332 | 736 | GtkTreeIter tree_iter; | 826 | GtkTreeIter tree_iter; |
333 | 827 | gboolean active; | ||
334 | 737 | 828 | ||
335 | 738 | sources = g_settings_get_value (input_sources_settings, KEY_INPUT_SOURCES); | 829 | sources = g_settings_get_value (input_sources_settings, KEY_INPUT_SOURCES); |
336 | 739 | 830 | ||
337 | @@ -743,6 +834,7 @@ | |||
338 | 743 | display_name = NULL; | 834 | display_name = NULL; |
339 | 744 | app_info = NULL; | 835 | app_info = NULL; |
340 | 745 | legacy_setup = NULL; | 836 | legacy_setup = NULL; |
341 | 837 | active = FALSE; | ||
342 | 746 | 838 | ||
343 | 747 | if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB)) | 839 | if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB)) |
344 | 748 | { | 840 | { |
345 | @@ -753,6 +845,7 @@ | |||
346 | 753 | continue; | 845 | continue; |
347 | 754 | } | 846 | } |
348 | 755 | display_name = g_strdup (name); | 847 | display_name = g_strdup (name); |
349 | 848 | active = TRUE; | ||
350 | 756 | } | 849 | } |
351 | 757 | else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) | 850 | else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) |
352 | 758 | { | 851 | { |
353 | @@ -764,15 +857,36 @@ | |||
354 | 764 | 857 | ||
355 | 765 | if (engine_desc) | 858 | if (engine_desc) |
356 | 766 | { | 859 | { |
358 | 767 | display_name = engine_get_display_name (engine_desc); | 860 | gchar *engine_name = engine_get_display_name (engine_desc); |
359 | 861 | display_name = g_strdup_printf ("%s (IBus)", engine_name); | ||
360 | 768 | app_info = setup_app_info_for_id (id); | 862 | app_info = setup_app_info_for_id (id); |
361 | 769 | legacy_setup = legacy_setup_for_id (id); | 863 | legacy_setup = legacy_setup_for_id (id); |
362 | 864 | active = is_ibus_active; | ||
363 | 865 | g_free (engine_name); | ||
364 | 770 | } | 866 | } |
365 | 771 | #else | 867 | #else |
366 | 772 | g_warning ("IBus input source type specified but IBus support was not compiled"); | 868 | g_warning ("IBus input source type specified but IBus support was not compiled"); |
367 | 773 | continue; | 869 | continue; |
368 | 774 | #endif | 870 | #endif |
369 | 775 | } | 871 | } |
370 | 872 | else if (g_str_equal (type, INPUT_SOURCE_TYPE_FCITX)) | ||
371 | 873 | { | ||
372 | 874 | #ifdef HAVE_FCITX | ||
373 | 875 | if (fcitx_engines) | ||
374 | 876 | { | ||
375 | 877 | const FcitxIMItem *engine = g_hash_table_lookup (fcitx_engines, id); | ||
376 | 878 | |||
377 | 879 | if (engine) | ||
378 | 880 | { | ||
379 | 881 | display_name = g_strdup_printf ("%s (Fcitx)", engine->name); | ||
380 | 882 | active = is_fcitx_active; | ||
381 | 883 | } | ||
382 | 884 | } | ||
383 | 885 | #else | ||
384 | 886 | g_warning ("Fcitx input source type specified but Fcitx support was not compiled"); | ||
385 | 887 | continue; | ||
386 | 888 | #endif | ||
387 | 889 | } | ||
388 | 776 | else | 890 | else |
389 | 777 | { | 891 | { |
390 | 778 | g_warning ("Unknown input source type '%s'", type); | 892 | g_warning ("Unknown input source type '%s'", type); |
391 | @@ -784,6 +898,7 @@ | |||
392 | 784 | NAME_COLUMN, display_name, | 898 | NAME_COLUMN, display_name, |
393 | 785 | TYPE_COLUMN, type, | 899 | TYPE_COLUMN, type, |
394 | 786 | ID_COLUMN, id, | 900 | ID_COLUMN, id, |
395 | 901 | COLOUR_COLUMN, active ? &active_colour : &inactive_colour, | ||
396 | 787 | SETUP_COLUMN, app_info, | 902 | SETUP_COLUMN, app_info, |
397 | 788 | LEGACY_SETUP_COLUMN, legacy_setup, | 903 | LEGACY_SETUP_COLUMN, legacy_setup, |
398 | 789 | -1); | 904 | -1); |
399 | @@ -901,6 +1016,7 @@ | |||
400 | 901 | gboolean settings_sensitive; | 1016 | gboolean settings_sensitive; |
401 | 902 | GDesktopAppInfo *app_info; | 1017 | GDesktopAppInfo *app_info; |
402 | 903 | gchar *legacy_setup; | 1018 | gchar *legacy_setup; |
403 | 1019 | gchar *type; | ||
404 | 904 | 1020 | ||
405 | 905 | remove_button = WID("input_source_remove"); | 1021 | remove_button = WID("input_source_remove"); |
406 | 906 | show_button = WID("input_source_show"); | 1022 | show_button = WID("input_source_show"); |
407 | @@ -915,6 +1031,7 @@ | |||
408 | 915 | { | 1031 | { |
409 | 916 | index = idx_from_model_iter (model, &iter); | 1032 | index = idx_from_model_iter (model, &iter); |
410 | 917 | gtk_tree_model_get (model, &iter, | 1033 | gtk_tree_model_get (model, &iter, |
411 | 1034 | TYPE_COLUMN, &type, | ||
412 | 918 | SETUP_COLUMN, &app_info, | 1035 | SETUP_COLUMN, &app_info, |
413 | 919 | LEGACY_SETUP_COLUMN, &legacy_setup, | 1036 | LEGACY_SETUP_COLUMN, &legacy_setup, |
414 | 920 | -1); | 1037 | -1); |
415 | @@ -922,11 +1039,16 @@ | |||
416 | 922 | else | 1039 | else |
417 | 923 | { | 1040 | { |
418 | 924 | index = -1; | 1041 | index = -1; |
419 | 1042 | type = NULL; | ||
420 | 925 | app_info = NULL; | 1043 | app_info = NULL; |
421 | 926 | legacy_setup = NULL; | 1044 | legacy_setup = NULL; |
422 | 927 | } | 1045 | } |
423 | 928 | 1046 | ||
424 | 1047 | #ifdef HAVE_FCITX | ||
425 | 1048 | settings_sensitive = (index >= 0 && (app_info != NULL || legacy_setup != NULL || g_strcmp0 (type, INPUT_SOURCE_TYPE_FCITX) == 0)); | ||
426 | 1049 | #else | ||
427 | 929 | settings_sensitive = (index >= 0 && (app_info != NULL || legacy_setup != NULL)); | 1050 | settings_sensitive = (index >= 0 && (app_info != NULL || legacy_setup != NULL)); |
428 | 1051 | #endif | ||
429 | 930 | 1052 | ||
430 | 931 | if (app_info) | 1053 | if (app_info) |
431 | 932 | g_object_unref (app_info); | 1054 | g_object_unref (app_info); |
432 | @@ -1171,6 +1293,8 @@ | |||
433 | 1171 | gchar *kbd_viewer_args; | 1293 | gchar *kbd_viewer_args; |
434 | 1172 | const gchar *xkb_layout; | 1294 | const gchar *xkb_layout; |
435 | 1173 | const gchar *xkb_variant; | 1295 | const gchar *xkb_variant; |
436 | 1296 | gchar *layout = NULL; | ||
437 | 1297 | gchar *variant = NULL; | ||
438 | 1174 | 1298 | ||
439 | 1175 | g_debug ("show selected layout"); | 1299 | g_debug ("show selected layout"); |
440 | 1176 | 1300 | ||
441 | @@ -1215,22 +1339,40 @@ | |||
442 | 1215 | goto exit; | 1339 | goto exit; |
443 | 1216 | #endif | 1340 | #endif |
444 | 1217 | } | 1341 | } |
445 | 1342 | else if (g_str_equal (type, INPUT_SOURCE_TYPE_FCITX)) | ||
446 | 1343 | { | ||
447 | 1344 | #ifdef HAVE_FCITX | ||
448 | 1345 | if (fcitx_keyboard) | ||
449 | 1346 | { | ||
450 | 1347 | fcitx_kbd_get_layout_for_im (fcitx_keyboard, id, &layout, &variant); | ||
451 | 1348 | xkb_layout = layout; | ||
452 | 1349 | xkb_variant = variant; | ||
453 | 1350 | } | ||
454 | 1351 | #else | ||
455 | 1352 | g_warning ("Fcitx input source type specified but Fcitx support was not compiled"); | ||
456 | 1353 | goto exit; | ||
457 | 1354 | #endif | ||
458 | 1355 | } | ||
459 | 1218 | else | 1356 | else |
460 | 1219 | { | 1357 | { |
461 | 1220 | g_warning ("Unknown input source type '%s'", type); | 1358 | g_warning ("Unknown input source type '%s'", type); |
462 | 1221 | goto exit; | 1359 | goto exit; |
463 | 1222 | } | 1360 | } |
464 | 1223 | 1361 | ||
466 | 1224 | if (xkb_variant[0]) | 1362 | if (xkb_variant != NULL && xkb_variant[0]) |
467 | 1225 | kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", | 1363 | kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", |
468 | 1226 | xkb_layout, xkb_variant); | 1364 | xkb_layout, xkb_variant); |
470 | 1227 | else | 1365 | else if (xkb_layout != NULL && xkb_layout[0]) |
471 | 1228 | kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l %s", | 1366 | kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l %s", |
472 | 1229 | xkb_layout); | 1367 | xkb_layout); |
473 | 1368 | else | ||
474 | 1369 | kbd_viewer_args = g_strdup ("gkbd-keyboard-display -g 1"); | ||
475 | 1230 | 1370 | ||
476 | 1231 | g_spawn_command_line_async (kbd_viewer_args, NULL); | 1371 | g_spawn_command_line_async (kbd_viewer_args, NULL); |
477 | 1232 | 1372 | ||
478 | 1233 | g_free (kbd_viewer_args); | 1373 | g_free (kbd_viewer_args); |
479 | 1374 | g_free (variant); | ||
480 | 1375 | g_free (layout); | ||
481 | 1234 | exit: | 1376 | exit: |
482 | 1235 | g_free (type); | 1377 | g_free (type); |
483 | 1236 | g_free (id); | 1378 | g_free (id); |
484 | @@ -1245,6 +1387,7 @@ | |||
485 | 1245 | GdkAppLaunchContext *ctx; | 1387 | GdkAppLaunchContext *ctx; |
486 | 1246 | GDesktopAppInfo *app_info; | 1388 | GDesktopAppInfo *app_info; |
487 | 1247 | gchar *legacy_setup; | 1389 | gchar *legacy_setup; |
488 | 1390 | gchar *type; | ||
489 | 1248 | gchar *id; | 1391 | gchar *id; |
490 | 1249 | GError *error = NULL; | 1392 | GError *error = NULL; |
491 | 1250 | 1393 | ||
492 | @@ -1253,18 +1396,21 @@ | |||
493 | 1253 | if (!get_selected_iter (builder, &model, &iter)) | 1396 | if (!get_selected_iter (builder, &model, &iter)) |
494 | 1254 | return; | 1397 | return; |
495 | 1255 | 1398 | ||
497 | 1256 | gtk_tree_model_get (model, &iter, SETUP_COLUMN, &app_info, LEGACY_SETUP_COLUMN, &legacy_setup, -1); | 1399 | gtk_tree_model_get (model, &iter, |
498 | 1400 | ID_COLUMN, &id, | ||
499 | 1401 | TYPE_COLUMN, &type, | ||
500 | 1402 | SETUP_COLUMN, &app_info, | ||
501 | 1403 | LEGACY_SETUP_COLUMN, &legacy_setup, | ||
502 | 1404 | -1); | ||
503 | 1257 | 1405 | ||
504 | 1258 | if (app_info) | 1406 | if (app_info) |
505 | 1259 | { | 1407 | { |
506 | 1260 | ctx = gdk_display_get_app_launch_context (gdk_display_get_default ()); | 1408 | ctx = gdk_display_get_app_launch_context (gdk_display_get_default ()); |
507 | 1261 | gdk_app_launch_context_set_timestamp (ctx, gtk_get_current_event_time ()); | 1409 | gdk_app_launch_context_set_timestamp (ctx, gtk_get_current_event_time ()); |
508 | 1262 | 1410 | ||
509 | 1263 | gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); | ||
510 | 1264 | g_app_launch_context_setenv (G_APP_LAUNCH_CONTEXT (ctx), | 1411 | g_app_launch_context_setenv (G_APP_LAUNCH_CONTEXT (ctx), |
511 | 1265 | "IBUS_ENGINE_NAME", | 1412 | "IBUS_ENGINE_NAME", |
512 | 1266 | id); | 1413 | id); |
513 | 1267 | g_free (id); | ||
514 | 1268 | 1414 | ||
515 | 1269 | if (!g_app_info_launch (G_APP_INFO (app_info), NULL, G_APP_LAUNCH_CONTEXT (ctx), &error)) | 1415 | if (!g_app_info_launch (G_APP_INFO (app_info), NULL, G_APP_LAUNCH_CONTEXT (ctx), &error)) |
516 | 1270 | { | 1416 | { |
517 | @@ -1283,6 +1429,10 @@ | |||
518 | 1283 | g_error_free (error); | 1429 | g_error_free (error); |
519 | 1284 | } | 1430 | } |
520 | 1285 | } | 1431 | } |
521 | 1432 | #ifdef HAVE_FCITX | ||
522 | 1433 | else if (g_strcmp0 (type, INPUT_SOURCE_TYPE_FCITX) == 0 && fcitx) | ||
523 | 1434 | fcitx_input_method_configure_im (fcitx, id); | ||
524 | 1435 | #endif | ||
525 | 1286 | 1436 | ||
526 | 1287 | g_free (legacy_setup); | 1437 | g_free (legacy_setup); |
527 | 1288 | } | 1438 | } |
528 | @@ -1386,7 +1536,11 @@ | |||
529 | 1386 | gchar *key, | 1536 | gchar *key, |
530 | 1387 | gpointer user_data) | 1537 | gpointer user_data) |
531 | 1388 | { | 1538 | { |
532 | 1539 | #ifdef HAVE_FCITX | ||
533 | 1540 | if (!is_fcitx_active && (g_strcmp0 (key, KEY_GROUP_PER_WINDOW) == 0 || g_strcmp0 (key, KEY_DEFAULT_GROUP) == 0)) | ||
534 | 1541 | #else | ||
535 | 1389 | if (g_strcmp0 (key, KEY_GROUP_PER_WINDOW) == 0 || g_strcmp0 (key, KEY_DEFAULT_GROUP) == 0) | 1542 | if (g_strcmp0 (key, KEY_GROUP_PER_WINDOW) == 0 || g_strcmp0 (key, KEY_DEFAULT_GROUP) == 0) |
536 | 1543 | #endif | ||
537 | 1390 | update_source_radios (user_data); | 1544 | update_source_radios (user_data); |
538 | 1391 | } | 1545 | } |
539 | 1392 | 1546 | ||
540 | @@ -1451,6 +1605,22 @@ | |||
541 | 1451 | return edited ? GTK_ENTRY_ACCEL_UPDATE : GTK_ENTRY_ACCEL_IGNORE; | 1605 | return edited ? GTK_ENTRY_ACCEL_UPDATE : GTK_ENTRY_ACCEL_IGNORE; |
542 | 1452 | } | 1606 | } |
543 | 1453 | 1607 | ||
544 | 1608 | #ifdef HAVE_FCITX | ||
545 | 1609 | static void | ||
546 | 1610 | clear_fcitx (void) | ||
547 | 1611 | { | ||
548 | 1612 | FcitxConfigFree (&fcitx_config.config); | ||
549 | 1613 | |||
550 | 1614 | if (fcitx_cancellable) | ||
551 | 1615 | g_cancellable_cancel (fcitx_cancellable); | ||
552 | 1616 | |||
553 | 1617 | g_clear_pointer (&fcitx_engines, g_hash_table_unref); | ||
554 | 1618 | g_clear_object (&fcitx_cancellable); | ||
555 | 1619 | g_clear_object (&fcitx_keyboard); | ||
556 | 1620 | g_clear_object (&fcitx); | ||
557 | 1621 | } | ||
558 | 1622 | #endif | ||
559 | 1623 | |||
560 | 1454 | static void | 1624 | static void |
561 | 1455 | builder_finalized (gpointer data, | 1625 | builder_finalized (gpointer data, |
562 | 1456 | GObject *where_the_object_was) | 1626 | GObject *where_the_object_was) |
563 | @@ -1465,6 +1635,10 @@ | |||
564 | 1465 | g_clear_object (&next_source_item); | 1635 | g_clear_object (&next_source_item); |
565 | 1466 | g_clear_object (&prev_source_item); | 1636 | g_clear_object (&prev_source_item); |
566 | 1467 | 1637 | ||
567 | 1638 | #ifdef HAVE_FCITX | ||
568 | 1639 | clear_fcitx (); | ||
569 | 1640 | #endif | ||
570 | 1641 | |||
571 | 1468 | #ifdef HAVE_IBUS | 1642 | #ifdef HAVE_IBUS |
572 | 1469 | clear_ibus (); | 1643 | clear_ibus (); |
573 | 1470 | #endif | 1644 | #endif |
574 | @@ -1502,6 +1676,113 @@ | |||
575 | 1502 | return ret; | 1676 | return ret; |
576 | 1503 | } | 1677 | } |
577 | 1504 | 1678 | ||
578 | 1679 | #ifdef HAVE_FCITX | ||
579 | 1680 | static void | ||
580 | 1681 | fcitx_init (void) | ||
581 | 1682 | { | ||
582 | 1683 | GError *error = NULL; | ||
583 | 1684 | |||
584 | 1685 | fcitx_cancellable = g_cancellable_new (); | ||
585 | 1686 | fcitx = fcitx_input_method_new (G_BUS_TYPE_SESSION, | ||
586 | 1687 | G_DBUS_PROXY_FLAGS_NONE, | ||
587 | 1688 | 0, | ||
588 | 1689 | fcitx_cancellable, | ||
589 | 1690 | &error); | ||
590 | 1691 | g_clear_object (&fcitx_cancellable); | ||
591 | 1692 | |||
592 | 1693 | if (fcitx) | ||
593 | 1694 | { | ||
594 | 1695 | GPtrArray *engines = fcitx_input_method_get_imlist_nofree (fcitx); | ||
595 | 1696 | |||
596 | 1697 | if (engines) | ||
597 | 1698 | { | ||
598 | 1699 | guint i; | ||
599 | 1700 | |||
600 | 1701 | fcitx_engines = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) fcitx_im_item_free); | ||
601 | 1702 | |||
602 | 1703 | for (i = 0; i < engines->len; i++) | ||
603 | 1704 | { | ||
604 | 1705 | FcitxIMItem *engine = g_ptr_array_index (engines, i); | ||
605 | 1706 | g_hash_table_insert (fcitx_engines, engine->unique_name, engine); | ||
606 | 1707 | } | ||
607 | 1708 | |||
608 | 1709 | g_ptr_array_unref (engines); | ||
609 | 1710 | } | ||
610 | 1711 | } | ||
611 | 1712 | else | ||
612 | 1713 | { | ||
613 | 1714 | g_warning ("Fcitx input method framework unavailable: %s", error->message); | ||
614 | 1715 | g_clear_error (&error); | ||
615 | 1716 | } | ||
616 | 1717 | |||
617 | 1718 | fcitx_cancellable = g_cancellable_new (); | ||
618 | 1719 | fcitx_keyboard = fcitx_kbd_new (G_BUS_TYPE_SESSION, | ||
619 | 1720 | G_DBUS_PROXY_FLAGS_NONE, | ||
620 | 1721 | 0, | ||
621 | 1722 | fcitx_cancellable, | ||
622 | 1723 | &error); | ||
623 | 1724 | g_clear_object (&fcitx_cancellable); | ||
624 | 1725 | |||
625 | 1726 | if (!fcitx_keyboard) | ||
626 | 1727 | { | ||
627 | 1728 | g_warning ("Fcitx keyboard module unavailable: %s", error->message); | ||
628 | 1729 | g_clear_error (&error); | ||
629 | 1730 | } | ||
630 | 1731 | } | ||
631 | 1732 | |||
632 | 1733 | static void | ||
633 | 1734 | save_fcitx_config (void) | ||
634 | 1735 | { | ||
635 | 1736 | FILE *file = FcitxXDGGetFileUserWithPrefix (NULL, "config", "w", NULL); | ||
636 | 1737 | FcitxConfigSaveConfigFileFp (file, &fcitx_config.config, get_fcitx_config_desc ()); | ||
637 | 1738 | |||
638 | 1739 | if (file) | ||
639 | 1740 | fclose (file); | ||
640 | 1741 | |||
641 | 1742 | fcitx_input_method_reload_config (fcitx); | ||
642 | 1743 | } | ||
643 | 1744 | |||
644 | 1745 | static void | ||
645 | 1746 | load_fcitx_config (void) | ||
646 | 1747 | { | ||
647 | 1748 | static gboolean loaded = FALSE; | ||
648 | 1749 | |||
649 | 1750 | if (loaded) | ||
650 | 1751 | return; | ||
651 | 1752 | |||
652 | 1753 | FILE *file = FcitxXDGGetFileUserWithPrefix (NULL, "config", "r", NULL); | ||
653 | 1754 | FcitxConfigFile *config_file = FcitxConfigParseConfigFileFp (file, get_fcitx_config_desc ()); | ||
654 | 1755 | FcitxShareStateConfigConfigBind (&fcitx_config, config_file, get_fcitx_config_desc ()); | ||
655 | 1756 | FcitxConfigBindSync (&fcitx_config.config); | ||
656 | 1757 | |||
657 | 1758 | if (file) | ||
658 | 1759 | fclose (file); | ||
659 | 1760 | |||
660 | 1761 | loaded = TRUE; | ||
661 | 1762 | } | ||
662 | 1763 | |||
663 | 1764 | static void | ||
664 | 1765 | set_share_state (gint share_state) | ||
665 | 1766 | { | ||
666 | 1767 | if (share_state != fcitx_config.share_state) | ||
667 | 1768 | { | ||
668 | 1769 | fcitx_config.share_state = share_state; | ||
669 | 1770 | save_fcitx_config (); | ||
670 | 1771 | } | ||
671 | 1772 | } | ||
672 | 1773 | |||
673 | 1774 | static void | ||
674 | 1775 | share_state_radio_toggled (GtkToggleButton *widget, | ||
675 | 1776 | gpointer user_data) | ||
676 | 1777 | { | ||
677 | 1778 | if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("share-state-no-radio")))) | ||
678 | 1779 | set_share_state (0); | ||
679 | 1780 | else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("share-state-all-radio")))) | ||
680 | 1781 | set_share_state (1); | ||
681 | 1782 | else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("share-state-per-program-radio")))) | ||
682 | 1783 | set_share_state (2); | ||
683 | 1784 | } | ||
684 | 1785 | #endif | ||
685 | 1505 | 1786 | ||
686 | 1506 | void | 1787 | void |
687 | 1507 | setup_input_tabs (GtkBuilder *builder_, | 1788 | setup_input_tabs (GtkBuilder *builder_, |
688 | @@ -1513,6 +1794,8 @@ | |||
689 | 1513 | GtkListStore *store; | 1794 | GtkListStore *store; |
690 | 1514 | GtkTreeModel *filtered_store; | 1795 | GtkTreeModel *filtered_store; |
691 | 1515 | GtkTreeSelection *selection; | 1796 | GtkTreeSelection *selection; |
692 | 1797 | GtkStyleContext *context; | ||
693 | 1798 | const gchar *module; | ||
694 | 1516 | 1799 | ||
695 | 1517 | builder = builder_; | 1800 | builder = builder_; |
696 | 1518 | 1801 | ||
697 | @@ -1531,12 +1814,14 @@ | |||
698 | 1531 | cell = gtk_cell_renderer_text_new (); | 1814 | cell = gtk_cell_renderer_text_new (); |
699 | 1532 | gtk_tree_view_column_pack_start (column, cell, TRUE); | 1815 | gtk_tree_view_column_pack_start (column, cell, TRUE); |
700 | 1533 | gtk_tree_view_column_add_attribute (column, cell, "text", NAME_COLUMN); | 1816 | gtk_tree_view_column_add_attribute (column, cell, "text", NAME_COLUMN); |
701 | 1817 | gtk_tree_view_column_add_attribute (column, cell, "foreground-rgba", COLOUR_COLUMN); | ||
702 | 1534 | gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); | 1818 | gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); |
703 | 1535 | 1819 | ||
704 | 1536 | store = gtk_list_store_new (N_COLUMNS, | 1820 | store = gtk_list_store_new (N_COLUMNS, |
705 | 1537 | G_TYPE_STRING, | 1821 | G_TYPE_STRING, |
706 | 1538 | G_TYPE_STRING, | 1822 | G_TYPE_STRING, |
707 | 1539 | G_TYPE_STRING, | 1823 | G_TYPE_STRING, |
708 | 1824 | GDK_TYPE_RGBA, | ||
709 | 1540 | G_TYPE_DESKTOP_APP_INFO, | 1825 | G_TYPE_DESKTOP_APP_INFO, |
710 | 1541 | G_TYPE_STRING); | 1826 | G_TYPE_STRING); |
711 | 1542 | 1827 | ||
712 | @@ -1549,8 +1834,15 @@ | |||
713 | 1549 | if (!xkb_info) | 1834 | if (!xkb_info) |
714 | 1550 | xkb_info = gnome_xkb_info_new (); | 1835 | xkb_info = gnome_xkb_info_new (); |
715 | 1551 | 1836 | ||
716 | 1837 | context = gtk_widget_get_style_context (treeview); | ||
717 | 1838 | gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &active_colour); | ||
718 | 1839 | gtk_style_context_get_color (context, GTK_STATE_FLAG_INSENSITIVE, &inactive_colour); | ||
719 | 1840 | |||
720 | 1841 | module = g_getenv (ENV_GTK_IM_MODULE); | ||
721 | 1842 | |||
722 | 1552 | #ifdef HAVE_IBUS | 1843 | #ifdef HAVE_IBUS |
723 | 1553 | ibus_init (); | 1844 | ibus_init (); |
724 | 1845 | is_ibus_active = g_strcmp0 (module, GTK_IM_MODULE_IBUS) == 0; | ||
725 | 1554 | shell_name_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION, | 1846 | shell_name_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION, |
726 | 1555 | "org.gnome.Shell", | 1847 | "org.gnome.Shell", |
727 | 1556 | G_BUS_NAME_WATCHER_FLAGS_NONE, | 1848 | G_BUS_NAME_WATCHER_FLAGS_NONE, |
728 | @@ -1560,6 +1852,11 @@ | |||
729 | 1560 | NULL); | 1852 | NULL); |
730 | 1561 | #endif | 1853 | #endif |
731 | 1562 | 1854 | ||
732 | 1855 | #ifdef HAVE_FCITX | ||
733 | 1856 | fcitx_init (); | ||
734 | 1857 | is_fcitx_active = g_strcmp0 (module, GTK_IM_MODULE_FCITX) == 0; | ||
735 | 1858 | #endif | ||
736 | 1859 | |||
737 | 1563 | populate_with_active_sources (store); | 1860 | populate_with_active_sources (store); |
738 | 1564 | 1861 | ||
739 | 1565 | selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); | 1862 | selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); |
740 | @@ -1604,33 +1901,73 @@ | |||
741 | 1604 | media_key_settings = g_settings_new (MEDIA_KEYS_SCHEMA_ID); | 1901 | media_key_settings = g_settings_new (MEDIA_KEYS_SCHEMA_ID); |
742 | 1605 | indicator_settings = g_settings_new (INDICATOR_KEYBOARD_SCHEMA_ID); | 1902 | indicator_settings = g_settings_new (INDICATOR_KEYBOARD_SCHEMA_ID); |
743 | 1606 | 1903 | ||
744 | 1607 | update_source_radios (builder); | ||
745 | 1608 | |||
746 | 1609 | g_settings_bind (indicator_settings, | 1904 | g_settings_bind (indicator_settings, |
747 | 1610 | KEY_VISIBLE, | 1905 | KEY_VISIBLE, |
748 | 1611 | WID ("show-indicator-check"), | 1906 | WID ("show-indicator-check"), |
749 | 1612 | "active", | 1907 | "active", |
750 | 1613 | G_SETTINGS_BIND_DEFAULT); | 1908 | G_SETTINGS_BIND_DEFAULT); |
771 | 1614 | g_settings_bind (ibus_panel_settings, | 1909 | |
772 | 1615 | IBUS_ORIENTATION_KEY, | 1910 | #ifdef HAVE_FCITX |
773 | 1616 | WID ("orientation-combo"), | 1911 | if (is_fcitx_active) |
774 | 1617 | "active", | 1912 | { |
775 | 1618 | G_SETTINGS_BIND_DEFAULT); | 1913 | load_fcitx_config (); |
776 | 1619 | g_settings_bind (ibus_panel_settings, | 1914 | |
777 | 1620 | IBUS_USE_CUSTOM_FONT_KEY, | 1915 | switch (fcitx_config.share_state) |
778 | 1621 | WID ("custom-font-check"), | 1916 | { |
779 | 1622 | "active", | 1917 | case 0: |
780 | 1623 | G_SETTINGS_BIND_DEFAULT); | 1918 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("share-state-no-radio")), TRUE); |
781 | 1624 | g_settings_bind (ibus_panel_settings, | 1919 | break; |
782 | 1625 | IBUS_USE_CUSTOM_FONT_KEY, | 1920 | case 1: |
783 | 1626 | WID ("custom-font-button"), | 1921 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("share-state-all-radio")), TRUE); |
784 | 1627 | "sensitive", | 1922 | break; |
785 | 1628 | G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); | 1923 | case 2: |
786 | 1629 | g_settings_bind (ibus_panel_settings, | 1924 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("share-state-per-program-radio")), TRUE); |
787 | 1630 | IBUS_CUSTOM_FONT_KEY, | 1925 | break; |
788 | 1631 | WID ("custom-font-button"), | 1926 | } |
789 | 1632 | "font-name", | 1927 | |
790 | 1633 | G_SETTINGS_BIND_DEFAULT | G_SETTINGS_BIND_NO_SENSITIVITY); | 1928 | g_signal_connect (WID ("share-state-all-radio"), "toggled", |
791 | 1929 | G_CALLBACK (share_state_radio_toggled), builder); | ||
792 | 1930 | g_signal_connect (WID ("share-state-no-radio"), "toggled", | ||
793 | 1931 | G_CALLBACK (share_state_radio_toggled), builder); | ||
794 | 1932 | g_signal_connect (WID ("share-state-per-program-radio"), "toggled", | ||
795 | 1933 | G_CALLBACK (share_state_radio_toggled), builder); | ||
796 | 1934 | } | ||
797 | 1935 | else | ||
798 | 1936 | #endif /* HAVE_FCITX */ | ||
799 | 1937 | { | ||
800 | 1938 | update_source_radios (builder); | ||
801 | 1939 | |||
802 | 1940 | g_settings_bind (ibus_panel_settings, | ||
803 | 1941 | IBUS_ORIENTATION_KEY, | ||
804 | 1942 | WID ("orientation-combo"), | ||
805 | 1943 | "active", | ||
806 | 1944 | G_SETTINGS_BIND_DEFAULT); | ||
807 | 1945 | g_settings_bind (ibus_panel_settings, | ||
808 | 1946 | IBUS_USE_CUSTOM_FONT_KEY, | ||
809 | 1947 | WID ("custom-font-check"), | ||
810 | 1948 | "active", | ||
811 | 1949 | G_SETTINGS_BIND_DEFAULT); | ||
812 | 1950 | g_settings_bind (ibus_panel_settings, | ||
813 | 1951 | IBUS_USE_CUSTOM_FONT_KEY, | ||
814 | 1952 | WID ("custom-font-button"), | ||
815 | 1953 | "sensitive", | ||
816 | 1954 | G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); | ||
817 | 1955 | g_settings_bind (ibus_panel_settings, | ||
818 | 1956 | IBUS_CUSTOM_FONT_KEY, | ||
819 | 1957 | WID ("custom-font-button"), | ||
820 | 1958 | "font-name", | ||
821 | 1959 | G_SETTINGS_BIND_DEFAULT | G_SETTINGS_BIND_NO_SENSITIVITY); | ||
822 | 1960 | |||
823 | 1961 | g_signal_connect (WID ("same-source-radio"), "toggled", | ||
824 | 1962 | G_CALLBACK (source_radio_toggled), builder); | ||
825 | 1963 | g_signal_connect (WID ("different-source-radio"), "toggled", | ||
826 | 1964 | G_CALLBACK (source_radio_toggled), builder); | ||
827 | 1965 | g_signal_connect (WID ("default-source-radio"), "toggled", | ||
828 | 1966 | G_CALLBACK (source_radio_toggled), builder); | ||
829 | 1967 | g_signal_connect (WID ("current-source-radio"), "toggled", | ||
830 | 1968 | G_CALLBACK (source_radio_toggled), builder); | ||
831 | 1969 | } | ||
832 | 1970 | |||
833 | 1634 | g_settings_bind_with_mapping (media_key_settings, | 1971 | g_settings_bind_with_mapping (media_key_settings, |
834 | 1635 | KEY_PREV_INPUT_SOURCE, | 1972 | KEY_PREV_INPUT_SOURCE, |
835 | 1636 | WID ("prev-source-entry"), | 1973 | WID ("prev-source-entry"), |
836 | @@ -1652,14 +1989,6 @@ | |||
837 | 1652 | G_CALLBACK (shortcut_key_pressed), builder); | 1989 | G_CALLBACK (shortcut_key_pressed), builder); |
838 | 1653 | g_signal_connect (WID ("next-source-entry"), "key-pressed", | 1990 | g_signal_connect (WID ("next-source-entry"), "key-pressed", |
839 | 1654 | G_CALLBACK (shortcut_key_pressed), builder); | 1991 | G_CALLBACK (shortcut_key_pressed), builder); |
840 | 1655 | g_signal_connect (WID ("same-source-radio"), "toggled", | ||
841 | 1656 | G_CALLBACK (source_radio_toggled), builder); | ||
842 | 1657 | g_signal_connect (WID ("different-source-radio"), "toggled", | ||
843 | 1658 | G_CALLBACK (source_radio_toggled), builder); | ||
844 | 1659 | g_signal_connect (WID ("default-source-radio"), "toggled", | ||
845 | 1660 | G_CALLBACK (source_radio_toggled), builder); | ||
846 | 1661 | g_signal_connect (WID ("current-source-radio"), "toggled", | ||
847 | 1662 | G_CALLBACK (source_radio_toggled), builder); | ||
848 | 1663 | g_signal_connect (libgnomekbd_settings, | 1992 | g_signal_connect (libgnomekbd_settings, |
849 | 1664 | "changed", | 1993 | "changed", |
850 | 1665 | G_CALLBACK (libgnomekbd_settings_changed), | 1994 | G_CALLBACK (libgnomekbd_settings_changed), |
851 | @@ -1848,6 +2177,7 @@ | |||
852 | 1848 | gtk_tree_view_column_new_with_attributes ("Input Sources", | 2177 | gtk_tree_view_column_new_with_attributes ("Input Sources", |
853 | 1849 | gtk_cell_renderer_text_new (), | 2178 | gtk_cell_renderer_text_new (), |
854 | 1850 | "text", NAME_COLUMN, | 2179 | "text", NAME_COLUMN, |
855 | 2180 | "foreground-rgba", COLOUR_COLUMN, | ||
856 | 1851 | NULL); | 2181 | NULL); |
857 | 1852 | 2182 | ||
858 | 1853 | gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window); | 2183 | gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window); |
859 | 1854 | 2184 | ||
860 | === added file 'panels/region/unity-region-panel-fcitx.ui' | |||
861 | --- panels/region/unity-region-panel-fcitx.ui 1970-01-01 00:00:00 +0000 | |||
862 | +++ panels/region/unity-region-panel-fcitx.ui 2015-02-12 16:27:19 +0000 | |||
863 | @@ -0,0 +1,560 @@ | |||
864 | 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
865 | 2 | <interface> | ||
866 | 3 | <!-- interface-requires gtk+ 3.0 --> | ||
867 | 4 | <object class="GtkAdjustment" id="adjustment1"> | ||
868 | 5 | <property name="lower">100</property> | ||
869 | 6 | <property name="upper">2000</property> | ||
870 | 7 | <property name="value">500</property> | ||
871 | 8 | <property name="step_increment">10</property> | ||
872 | 9 | <property name="page_increment">10</property> | ||
873 | 10 | </object> | ||
874 | 11 | <object class="GtkAdjustment" id="adjustment10"> | ||
875 | 12 | <property name="lower">1</property> | ||
876 | 13 | <property name="upper">100000</property> | ||
877 | 14 | <property name="value">1</property> | ||
878 | 15 | <property name="step_increment">1</property> | ||
879 | 16 | <property name="page_increment">10</property> | ||
880 | 17 | </object> | ||
881 | 18 | <object class="GtkAdjustment" id="adjustment2"> | ||
882 | 19 | <property name="lower">10</property> | ||
883 | 20 | <property name="upper">110</property> | ||
884 | 21 | <property name="value">30</property> | ||
885 | 22 | <property name="step_increment">10</property> | ||
886 | 23 | <property name="page_increment">10</property> | ||
887 | 24 | </object> | ||
888 | 25 | <object class="GtkAdjustment" id="adjustment3"> | ||
889 | 26 | <property name="lower">100</property> | ||
890 | 27 | <property name="upper">2500</property> | ||
891 | 28 | <property name="value">1000</property> | ||
892 | 29 | <property name="step_increment">200</property> | ||
893 | 30 | <property name="page_increment">200</property> | ||
894 | 31 | </object> | ||
895 | 32 | <object class="GtkAdjustment" id="adjustment4"> | ||
896 | 33 | <property name="upper">500</property> | ||
897 | 34 | <property name="value">0.5</property> | ||
898 | 35 | <property name="step_increment">10</property> | ||
899 | 36 | <property name="page_increment">10</property> | ||
900 | 37 | </object> | ||
901 | 38 | <object class="GtkAdjustment" id="adjustment5"> | ||
902 | 39 | <property name="upper">900</property> | ||
903 | 40 | <property name="value">0.5</property> | ||
904 | 41 | <property name="step_increment">10</property> | ||
905 | 42 | <property name="page_increment">10</property> | ||
906 | 43 | </object> | ||
907 | 44 | <object class="GtkAdjustment" id="adjustment6"> | ||
908 | 45 | <property name="upper">3000</property> | ||
909 | 46 | <property name="value">1800</property> | ||
910 | 47 | <property name="step_increment">10</property> | ||
911 | 48 | <property name="page_increment">10</property> | ||
912 | 49 | </object> | ||
913 | 50 | <object class="GtkAdjustment" id="adjustment7"> | ||
914 | 51 | <property name="lower">10</property> | ||
915 | 52 | <property name="upper">1000</property> | ||
916 | 53 | <property name="value">300</property> | ||
917 | 54 | <property name="step_increment">10</property> | ||
918 | 55 | <property name="page_increment">10</property> | ||
919 | 56 | </object> | ||
920 | 57 | <object class="GtkAdjustment" id="adjustment8"> | ||
921 | 58 | <property name="lower">10</property> | ||
922 | 59 | <property name="upper">2000</property> | ||
923 | 60 | <property name="value">300</property> | ||
924 | 61 | <property name="step_increment">10</property> | ||
925 | 62 | <property name="page_increment">10</property> | ||
926 | 63 | </object> | ||
927 | 64 | <object class="GtkAdjustment" id="adjustment9"> | ||
928 | 65 | <property name="lower">1</property> | ||
929 | 66 | <property name="upper">100000</property> | ||
930 | 67 | <property name="value">1</property> | ||
931 | 68 | <property name="step_increment">1</property> | ||
932 | 69 | <property name="page_increment">10</property> | ||
933 | 70 | </object> | ||
934 | 71 | <object class="GtkListStore" id="display_language_liststore"/> | ||
935 | 72 | <object class="GtkDialog" id="region_dialog"> | ||
936 | 73 | <property name="can_focus">False</property> | ||
937 | 74 | <property name="border_width">5</property> | ||
938 | 75 | <property name="title" translatable="yes">Region and Language</property> | ||
939 | 76 | <property name="default_width">600</property> | ||
940 | 77 | <property name="default_height">430</property> | ||
941 | 78 | <property name="type_hint">dialog</property> | ||
942 | 79 | <child internal-child="vbox"> | ||
943 | 80 | <object class="GtkBox" id="dialog-vbox1"> | ||
944 | 81 | <property name="visible">True</property> | ||
945 | 82 | <property name="can_focus">False</property> | ||
946 | 83 | <property name="orientation">vertical</property> | ||
947 | 84 | <property name="spacing">2</property> | ||
948 | 85 | <child internal-child="action_area"> | ||
949 | 86 | <object class="GtkButtonBox" id="dialog-action_area1"> | ||
950 | 87 | <property name="can_focus">False</property> | ||
951 | 88 | </object> | ||
952 | 89 | <packing> | ||
953 | 90 | <property name="expand">False</property> | ||
954 | 91 | <property name="fill">True</property> | ||
955 | 92 | <property name="pack_type">end</property> | ||
956 | 93 | <property name="position">0</property> | ||
957 | 94 | </packing> | ||
958 | 95 | </child> | ||
959 | 96 | <child> | ||
960 | 97 | <object class="GtkVBox" id="region_vbox"> | ||
961 | 98 | <property name="visible">True</property> | ||
962 | 99 | <property name="can_focus">False</property> | ||
963 | 100 | <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> | ||
964 | 101 | <property name="border_width">5</property> | ||
965 | 102 | <property name="spacing">12</property> | ||
966 | 103 | <child> | ||
967 | 104 | <object class="GtkVBox" id="vbox5"> | ||
968 | 105 | <property name="visible">True</property> | ||
969 | 106 | <property name="can_focus">False</property> | ||
970 | 107 | <property name="border_width">12</property> | ||
971 | 108 | <property name="spacing">12</property> | ||
972 | 109 | <child> | ||
973 | 110 | <object class="GtkHBox" id="hbox3"> | ||
974 | 111 | <property name="visible">True</property> | ||
975 | 112 | <property name="can_focus">False</property> | ||
976 | 113 | <property name="spacing">12</property> | ||
977 | 114 | <child> | ||
978 | 115 | <object class="GtkVBox" id="vbox6"> | ||
979 | 116 | <property name="visible">True</property> | ||
980 | 117 | <property name="can_focus">False</property> | ||
981 | 118 | <property name="margin_right">5</property> | ||
982 | 119 | <child> | ||
983 | 120 | <object class="GtkLabel" id="label2"> | ||
984 | 121 | <property name="visible">True</property> | ||
985 | 122 | <property name="can_focus">False</property> | ||
986 | 123 | <property name="margin_bottom">5</property> | ||
987 | 124 | <property name="xalign">0</property> | ||
988 | 125 | <property name="label" translatable="yes">Input sources to use:</property> | ||
989 | 126 | </object> | ||
990 | 127 | <packing> | ||
991 | 128 | <property name="expand">False</property> | ||
992 | 129 | <property name="fill">True</property> | ||
993 | 130 | <property name="position">0</property> | ||
994 | 131 | </packing> | ||
995 | 132 | </child> | ||
996 | 133 | <child> | ||
997 | 134 | <object class="GtkScrolledWindow" id="input_sources_swindow"> | ||
998 | 135 | <property name="visible">True</property> | ||
999 | 136 | <property name="can_focus">True</property> | ||
1000 | 137 | <property name="shadow_type">in</property> | ||
1001 | 138 | <child> | ||
1002 | 139 | <object class="GtkTreeView" id="active_input_sources"> | ||
1003 | 140 | <property name="visible">True</property> | ||
1004 | 141 | <property name="can_focus">True</property> | ||
1005 | 142 | <property name="headers_visible">False</property> | ||
1006 | 143 | <child internal-child="selection"> | ||
1007 | 144 | <object class="GtkTreeSelection" id="treeview-selection3"/> | ||
1008 | 145 | </child> | ||
1009 | 146 | </object> | ||
1010 | 147 | </child> | ||
1011 | 148 | </object> | ||
1012 | 149 | <packing> | ||
1013 | 150 | <property name="expand">True</property> | ||
1014 | 151 | <property name="fill">True</property> | ||
1015 | 152 | <property name="position">1</property> | ||
1016 | 153 | </packing> | ||
1017 | 154 | </child> | ||
1018 | 155 | <child> | ||
1019 | 156 | <object class="GtkToolbar" id="input-toolbar"> | ||
1020 | 157 | <property name="visible">True</property> | ||
1021 | 158 | <property name="can_focus">False</property> | ||
1022 | 159 | <property name="toolbar_style">icons</property> | ||
1023 | 160 | <property name="show_arrow">False</property> | ||
1024 | 161 | <property name="icon_size">1</property> | ||
1025 | 162 | <style> | ||
1026 | 163 | <class name="inline-toolbar"/> | ||
1027 | 164 | </style> | ||
1028 | 165 | <child> | ||
1029 | 166 | <object class="GtkToolItem" id="i_s_ar_item"> | ||
1030 | 167 | <property name="visible">True</property> | ||
1031 | 168 | <property name="can_focus">False</property> | ||
1032 | 169 | <child> | ||
1033 | 170 | <object class="GtkBox" id="i_s_ar_box"> | ||
1034 | 171 | <property name="visible">True</property> | ||
1035 | 172 | <property name="can_focus">False</property> | ||
1036 | 173 | <child> | ||
1037 | 174 | <object class="GtkButton" id="input_source_add"> | ||
1038 | 175 | <property name="visible">True</property> | ||
1039 | 176 | <property name="can_focus">False</property> | ||
1040 | 177 | <property name="receives_default">False</property> | ||
1041 | 178 | <child> | ||
1042 | 179 | <object class="GtkImage" id="i_s_a_image"> | ||
1043 | 180 | <property name="visible">True</property> | ||
1044 | 181 | <property name="can_focus">False</property> | ||
1045 | 182 | <property name="icon_name">list-add-symbolic</property> | ||
1046 | 183 | <property name="icon-size">1</property> | ||
1047 | 184 | </object> | ||
1048 | 185 | </child> | ||
1049 | 186 | </object> | ||
1050 | 187 | <packing> | ||
1051 | 188 | <property name="expand">False</property> | ||
1052 | 189 | <property name="fill">True</property> | ||
1053 | 190 | <property name="position">0</property> | ||
1054 | 191 | </packing> | ||
1055 | 192 | </child> | ||
1056 | 193 | <child> | ||
1057 | 194 | <object class="GtkButton" id="input_source_remove"> | ||
1058 | 195 | <property name="visible">True</property> | ||
1059 | 196 | <property name="can_focus">False</property> | ||
1060 | 197 | <property name="receives_default">False</property> | ||
1061 | 198 | <child> | ||
1062 | 199 | <object class="GtkImage" id="i_s_r_image"> | ||
1063 | 200 | <property name="visible">True</property> | ||
1064 | 201 | <property name="can_focus">False</property> | ||
1065 | 202 | <property name="icon_name">list-remove-symbolic</property> | ||
1066 | 203 | <property name="icon-size">1</property> | ||
1067 | 204 | </object> | ||
1068 | 205 | </child> | ||
1069 | 206 | </object> | ||
1070 | 207 | <packing> | ||
1071 | 208 | <property name="expand">False</property> | ||
1072 | 209 | <property name="fill">True</property> | ||
1073 | 210 | <property name="position">1</property> | ||
1074 | 211 | </packing> | ||
1075 | 212 | </child> | ||
1076 | 213 | </object> | ||
1077 | 214 | </child> | ||
1078 | 215 | </object> | ||
1079 | 216 | <packing> | ||
1080 | 217 | <property name="expand">False</property> | ||
1081 | 218 | </packing> | ||
1082 | 219 | </child> | ||
1083 | 220 | <child> | ||
1084 | 221 | <object class="GtkSeparatorToolItem" id="sep1"> | ||
1085 | 222 | <property name="visible">True</property> | ||
1086 | 223 | <property name="can_focus">False</property> | ||
1087 | 224 | <property name="draw">False</property> | ||
1088 | 225 | </object> | ||
1089 | 226 | <packing> | ||
1090 | 227 | <property name="expand">True</property> | ||
1091 | 228 | </packing> | ||
1092 | 229 | </child> | ||
1093 | 230 | <child> | ||
1094 | 231 | <object class="GtkToolItem" id="i_s_ud_item"> | ||
1095 | 232 | <property name="visible">True</property> | ||
1096 | 233 | <property name="can_focus">False</property> | ||
1097 | 234 | <child> | ||
1098 | 235 | <object class="GtkBox" id="i_s_ud_box"> | ||
1099 | 236 | <property name="visible">True</property> | ||
1100 | 237 | <property name="can_focus">False</property> | ||
1101 | 238 | <child> | ||
1102 | 239 | <object class="GtkButton" id="input_source_move_up"> | ||
1103 | 240 | <property name="visible">True</property> | ||
1104 | 241 | <property name="can_focus">False</property> | ||
1105 | 242 | <property name="receives_default">False</property> | ||
1106 | 243 | <child> | ||
1107 | 244 | <object class="GtkImage" id="i_s_u_image"> | ||
1108 | 245 | <property name="visible">True</property> | ||
1109 | 246 | <property name="can_focus">False</property> | ||
1110 | 247 | <property name="icon_name">go-up-symbolic</property> | ||
1111 | 248 | <property name="icon-size">1</property> | ||
1112 | 249 | </object> | ||
1113 | 250 | </child> | ||
1114 | 251 | </object> | ||
1115 | 252 | <packing> | ||
1116 | 253 | <property name="expand">False</property> | ||
1117 | 254 | <property name="fill">True</property> | ||
1118 | 255 | <property name="position">0</property> | ||
1119 | 256 | </packing> | ||
1120 | 257 | </child> | ||
1121 | 258 | <child> | ||
1122 | 259 | <object class="GtkButton" id="input_source_move_down"> | ||
1123 | 260 | <property name="visible">True</property> | ||
1124 | 261 | <property name="can_focus">False</property> | ||
1125 | 262 | <property name="receives_default">False</property> | ||
1126 | 263 | <child> | ||
1127 | 264 | <object class="GtkImage" id="i_s_d_image"> | ||
1128 | 265 | <property name="visible">True</property> | ||
1129 | 266 | <property name="can_focus">False</property> | ||
1130 | 267 | <property name="icon_name">go-down-symbolic</property> | ||
1131 | 268 | <property name="icon-size">1</property> | ||
1132 | 269 | </object> | ||
1133 | 270 | </child> | ||
1134 | 271 | </object> | ||
1135 | 272 | <packing> | ||
1136 | 273 | <property name="expand">False</property> | ||
1137 | 274 | <property name="fill">True</property> | ||
1138 | 275 | <property name="position">1</property> | ||
1139 | 276 | </packing> | ||
1140 | 277 | </child> | ||
1141 | 278 | </object> | ||
1142 | 279 | </child> | ||
1143 | 280 | </object> | ||
1144 | 281 | <packing> | ||
1145 | 282 | <property name="expand">False</property> | ||
1146 | 283 | </packing> | ||
1147 | 284 | </child> | ||
1148 | 285 | <child> | ||
1149 | 286 | <object class="GtkSeparatorToolItem" id="sep2"> | ||
1150 | 287 | <property name="visible">True</property> | ||
1151 | 288 | <property name="can_focus">False</property> | ||
1152 | 289 | <property name="hexpand">True</property> | ||
1153 | 290 | <property name="draw">False</property> | ||
1154 | 291 | </object> | ||
1155 | 292 | <packing> | ||
1156 | 293 | <property name="expand">True</property> | ||
1157 | 294 | </packing> | ||
1158 | 295 | </child> | ||
1159 | 296 | <child> | ||
1160 | 297 | <object class="GtkToolItem" id="i_s_sp_item"> | ||
1161 | 298 | <property name="visible">True</property> | ||
1162 | 299 | <property name="can_focus">False</property> | ||
1163 | 300 | <child> | ||
1164 | 301 | <object class="GtkBox" id="i_s_sp_box"> | ||
1165 | 302 | <property name="visible">True</property> | ||
1166 | 303 | <property name="can_focus">False</property> | ||
1167 | 304 | <child> | ||
1168 | 305 | <object class="GtkButton" id="input_source_settings"> | ||
1169 | 306 | <property name="visible">True</property> | ||
1170 | 307 | <property name="can_focus">False</property> | ||
1171 | 308 | <property name="receives_default">False</property> | ||
1172 | 309 | <child> | ||
1173 | 310 | <object class="GtkImage" id="i_s_s_image"> | ||
1174 | 311 | <property name="visible">True</property> | ||
1175 | 312 | <property name="can_focus">False</property> | ||
1176 | 313 | <property name="pixel_size">16</property> | ||
1177 | 314 | <property name="icon_name">preferences-system-symbolic</property> | ||
1178 | 315 | <property name="icon-size">1</property> | ||
1179 | 316 | </object> | ||
1180 | 317 | </child> | ||
1181 | 318 | </object> | ||
1182 | 319 | <packing> | ||
1183 | 320 | <property name="expand">False</property> | ||
1184 | 321 | <property name="fill">True</property> | ||
1185 | 322 | <property name="position">0</property> | ||
1186 | 323 | </packing> | ||
1187 | 324 | </child> | ||
1188 | 325 | <child> | ||
1189 | 326 | <object class="GtkButton" id="input_source_show"> | ||
1190 | 327 | <property name="visible">True</property> | ||
1191 | 328 | <property name="can_focus">False</property> | ||
1192 | 329 | <property name="receives_default">False</property> | ||
1193 | 330 | <child> | ||
1194 | 331 | <object class="GtkImage" id="i_s_p_image"> | ||
1195 | 332 | <property name="visible">True</property> | ||
1196 | 333 | <property name="can_focus">False</property> | ||
1197 | 334 | <property name="icon_name">input-keyboard-symbolic</property> | ||
1198 | 335 | <property name="icon-size">1</property> | ||
1199 | 336 | </object> | ||
1200 | 337 | </child> | ||
1201 | 338 | </object> | ||
1202 | 339 | <packing> | ||
1203 | 340 | <property name="expand">False</property> | ||
1204 | 341 | <property name="fill">True</property> | ||
1205 | 342 | <property name="position">1</property> | ||
1206 | 343 | </packing> | ||
1207 | 344 | </child> | ||
1208 | 345 | </object> | ||
1209 | 346 | </child> | ||
1210 | 347 | </object> | ||
1211 | 348 | <packing> | ||
1212 | 349 | <property name="expand">False</property> | ||
1213 | 350 | </packing> | ||
1214 | 351 | </child> | ||
1215 | 352 | </object> | ||
1216 | 353 | <packing> | ||
1217 | 354 | <property name="expand">False</property> | ||
1218 | 355 | <property name="fill">True</property> | ||
1219 | 356 | <property name="position">2</property> | ||
1220 | 357 | </packing> | ||
1221 | 358 | </child> | ||
1222 | 359 | </object> | ||
1223 | 360 | <packing> | ||
1224 | 361 | <property name="expand">True</property> | ||
1225 | 362 | <property name="fill">True</property> | ||
1226 | 363 | <property name="position">0</property> | ||
1227 | 364 | </packing> | ||
1228 | 365 | </child> | ||
1229 | 366 | <child> | ||
1230 | 367 | <object class="GtkBox" id="box2"> | ||
1231 | 368 | <property name="visible">True</property> | ||
1232 | 369 | <property name="can_focus">False</property> | ||
1233 | 370 | <property name="orientation">vertical</property> | ||
1234 | 371 | <child> | ||
1235 | 372 | <object class="GtkLabel" id="label22"> | ||
1236 | 373 | <property name="visible">True</property> | ||
1237 | 374 | <property name="can_focus">False</property> | ||
1238 | 375 | <property name="margin_bottom">5</property> | ||
1239 | 376 | <property name="xalign">0</property> | ||
1240 | 377 | <property name="label" translatable="yes">Switch to next source using:</property> | ||
1241 | 378 | </object> | ||
1242 | 379 | <packing> | ||
1243 | 380 | <property name="expand">False</property> | ||
1244 | 381 | <property name="fill">True</property> | ||
1245 | 382 | <property name="position">0</property> | ||
1246 | 383 | </packing> | ||
1247 | 384 | </child> | ||
1248 | 385 | <child> | ||
1249 | 386 | <object class="GtkEntryAccel" id="next-source-entry"> | ||
1250 | 387 | <property name="visible">True</property> | ||
1251 | 388 | <property name="can_focus">True</property> | ||
1252 | 389 | <property name="margin_bottom">5</property> | ||
1253 | 390 | <property name="invisible_char">•</property> | ||
1254 | 391 | </object> | ||
1255 | 392 | <packing> | ||
1256 | 393 | <property name="expand">False</property> | ||
1257 | 394 | <property name="fill">True</property> | ||
1258 | 395 | <property name="position">1</property> | ||
1259 | 396 | </packing> | ||
1260 | 397 | </child> | ||
1261 | 398 | <child> | ||
1262 | 399 | <object class="GtkLabel" id="label24"> | ||
1263 | 400 | <property name="visible">True</property> | ||
1264 | 401 | <property name="can_focus">False</property> | ||
1265 | 402 | <property name="margin_bottom">5</property> | ||
1266 | 403 | <property name="xalign">0</property> | ||
1267 | 404 | <property name="label" translatable="yes">Switch to previous source using:</property> | ||
1268 | 405 | </object> | ||
1269 | 406 | <packing> | ||
1270 | 407 | <property name="expand">False</property> | ||
1271 | 408 | <property name="fill">True</property> | ||
1272 | 409 | <property name="position">2</property> | ||
1273 | 410 | </packing> | ||
1274 | 411 | </child> | ||
1275 | 412 | <child> | ||
1276 | 413 | <object class="GtkEntryAccel" id="prev-source-entry"> | ||
1277 | 414 | <property name="visible">True</property> | ||
1278 | 415 | <property name="can_focus">True</property> | ||
1279 | 416 | <property name="margin_bottom">15</property> | ||
1280 | 417 | <property name="invisible_char">•</property> | ||
1281 | 418 | </object> | ||
1282 | 419 | <packing> | ||
1283 | 420 | <property name="expand">False</property> | ||
1284 | 421 | <property name="fill">True</property> | ||
1285 | 422 | <property name="position">3</property> | ||
1286 | 423 | </packing> | ||
1287 | 424 | </child> | ||
1288 | 425 | <child> | ||
1289 | 426 | <object class="GtkBox" id="per-window-box"> | ||
1290 | 427 | <property name="visible">True</property> | ||
1291 | 428 | <property name="can_focus">False</property> | ||
1292 | 429 | <property name="orientation">vertical</property> | ||
1293 | 430 | <child> | ||
1294 | 431 | <object class="GtkRadioButton" id="share-state-all-radio"> | ||
1295 | 432 | <property name="label" translatable="yes">Use the same source for all windows</property> | ||
1296 | 433 | <property name="visible">True</property> | ||
1297 | 434 | <property name="can_focus">False</property> | ||
1298 | 435 | <property name="receives_default">False</property> | ||
1299 | 436 | <property name="xalign">0</property> | ||
1300 | 437 | <property name="active">False</property> | ||
1301 | 438 | <property name="draw_indicator">True</property> | ||
1302 | 439 | </object> | ||
1303 | 440 | <packing> | ||
1304 | 441 | <property name="expand">False</property> | ||
1305 | 442 | <property name="fill">True</property> | ||
1306 | 443 | <property name="position">0</property> | ||
1307 | 444 | </packing> | ||
1308 | 445 | </child> | ||
1309 | 446 | <child> | ||
1310 | 447 | <object class="GtkRadioButton" id="share-state-no-radio"> | ||
1311 | 448 | <property name="label" translatable="yes">Allow different sources for each window</property> | ||
1312 | 449 | <property name="visible">True</property> | ||
1313 | 450 | <property name="can_focus">False</property> | ||
1314 | 451 | <property name="receives_default">False</property> | ||
1315 | 452 | <property name="xalign">0</property> | ||
1316 | 453 | <property name="active">True</property> | ||
1317 | 454 | <property name="draw_indicator">True</property> | ||
1318 | 455 | <property name="group">share-state-all-radio</property> | ||
1319 | 456 | </object> | ||
1320 | 457 | <packing> | ||
1321 | 458 | <property name="expand">False</property> | ||
1322 | 459 | <property name="fill">True</property> | ||
1323 | 460 | <property name="position">1</property> | ||
1324 | 461 | </packing> | ||
1325 | 462 | </child> | ||
1326 | 463 | <child> | ||
1327 | 464 | <object class="GtkRadioButton" id="share-state-per-program-radio"> | ||
1328 | 465 | <property name="label" translatable="yes">Allow different sources for each application</property> | ||
1329 | 466 | <property name="visible">True</property> | ||
1330 | 467 | <property name="can_focus">False</property> | ||
1331 | 468 | <property name="receives_default">False</property> | ||
1332 | 469 | <property name="xalign">0</property> | ||
1333 | 470 | <property name="active">False</property> | ||
1334 | 471 | <property name="draw_indicator">True</property> | ||
1335 | 472 | <property name="group">share-state-all-radio</property> | ||
1336 | 473 | </object> | ||
1337 | 474 | <packing> | ||
1338 | 475 | <property name="expand">False</property> | ||
1339 | 476 | <property name="fill">True</property> | ||
1340 | 477 | <property name="position">2</property> | ||
1341 | 478 | </packing> | ||
1342 | 479 | </child> | ||
1343 | 480 | </object> | ||
1344 | 481 | <packing> | ||
1345 | 482 | <property name="expand">True</property> | ||
1346 | 483 | <property name="fill">True</property> | ||
1347 | 484 | <property name="position">4</property> | ||
1348 | 485 | </packing> | ||
1349 | 486 | </child> | ||
1350 | 487 | </object> | ||
1351 | 488 | <packing> | ||
1352 | 489 | <property name="expand">True</property> | ||
1353 | 490 | <property name="fill">True</property> | ||
1354 | 491 | <property name="position">1</property> | ||
1355 | 492 | </packing> | ||
1356 | 493 | </child> | ||
1357 | 494 | </object> | ||
1358 | 495 | <packing> | ||
1359 | 496 | <property name="expand">True</property> | ||
1360 | 497 | <property name="fill">True</property> | ||
1361 | 498 | <property name="position">0</property> | ||
1362 | 499 | </packing> | ||
1363 | 500 | </child> | ||
1364 | 501 | <child> | ||
1365 | 502 | <object class="GtkBox" id="box1"> | ||
1366 | 503 | <property name="visible">True</property> | ||
1367 | 504 | <property name="can_focus">False</property> | ||
1368 | 505 | <property name="valign">end</property> | ||
1369 | 506 | <child> | ||
1370 | 507 | <object class="GtkCheckButton" id="show-indicator-check"> | ||
1371 | 508 | <property name="label" translatable="yes">Show current input source in the menu bar</property> | ||
1372 | 509 | <property name="visible">True</property> | ||
1373 | 510 | <property name="can_focus">False</property> | ||
1374 | 511 | <property name="receives_default">False</property> | ||
1375 | 512 | <property name="hexpand">True</property> | ||
1376 | 513 | <property name="xalign">0</property> | ||
1377 | 514 | <property name="draw_indicator">True</property> | ||
1378 | 515 | </object> | ||
1379 | 516 | <packing> | ||
1380 | 517 | <property name="expand">False</property> | ||
1381 | 518 | <property name="fill">True</property> | ||
1382 | 519 | <property name="position">0</property> | ||
1383 | 520 | </packing> | ||
1384 | 521 | </child> | ||
1385 | 522 | <child> | ||
1386 | 523 | <object class="GtkLinkButton" id="jump-to-shortcuts"> | ||
1387 | 524 | <property name="label" translatable="yes">Keyboard Settings...</property> | ||
1388 | 525 | <property name="visible">True</property> | ||
1389 | 526 | <property name="can_focus">True</property> | ||
1390 | 527 | <property name="receives_default">True</property> | ||
1391 | 528 | <property name="has_tooltip">True</property> | ||
1392 | 529 | <property name="halign">end</property> | ||
1393 | 530 | <property name="relief">none</property> | ||
1394 | 531 | </object> | ||
1395 | 532 | <packing> | ||
1396 | 533 | <property name="expand">False</property> | ||
1397 | 534 | <property name="fill">True</property> | ||
1398 | 535 | <property name="position">1</property> | ||
1399 | 536 | </packing> | ||
1400 | 537 | </child> | ||
1401 | 538 | </object> | ||
1402 | 539 | <packing> | ||
1403 | 540 | <property name="expand">False</property> | ||
1404 | 541 | <property name="fill">True</property> | ||
1405 | 542 | <property name="position">1</property> | ||
1406 | 543 | </packing> | ||
1407 | 544 | </child> | ||
1408 | 545 | </object> | ||
1409 | 546 | <packing> | ||
1410 | 547 | <property name="position">3</property> | ||
1411 | 548 | </packing> | ||
1412 | 549 | </child> | ||
1413 | 550 | </object> | ||
1414 | 551 | <packing> | ||
1415 | 552 | <property name="expand">False</property> | ||
1416 | 553 | <property name="fill">True</property> | ||
1417 | 554 | <property name="position">1</property> | ||
1418 | 555 | </packing> | ||
1419 | 556 | </child> | ||
1420 | 557 | </object> | ||
1421 | 558 | </child> | ||
1422 | 559 | </object> | ||
1423 | 560 | </interface> | ||
1424 | 0 | 561 | ||
1425 | === renamed file 'panels/region/unity-region-panel.ui' => 'panels/region/unity-region-panel-ibus.ui' | |||
1426 | --- panels/region/unity-region-panel.ui 2013-11-28 06:02:43 +0000 | |||
1427 | +++ panels/region/unity-region-panel-ibus.ui 2015-02-12 16:27:19 +0000 | |||
1428 | @@ -423,76 +423,88 @@ | |||
1429 | 423 | </packing> | 423 | </packing> |
1430 | 424 | </child> | 424 | </child> |
1431 | 425 | <child> | 425 | <child> |
1434 | 426 | <object class="GtkRadioButton" id="same-source-radio"> | 426 | <object class="GtkBox" id="per-window-box"> |
1433 | 427 | <property name="label" translatable="yes">Use the same source for all windows</property> | ||
1435 | 428 | <property name="visible">True</property> | 427 | <property name="visible">True</property> |
1436 | 429 | <property name="can_focus">False</property> | 428 | <property name="can_focus">False</property> |
1441 | 430 | <property name="receives_default">False</property> | 429 | <property name="orientation">vertical</property> |
1442 | 431 | <property name="xalign">0</property> | 430 | <child> |
1443 | 432 | <property name="active">True</property> | 431 | <object class="GtkRadioButton" id="same-source-radio"> |
1444 | 433 | <property name="draw_indicator">True</property> | 432 | <property name="label" translatable="yes">Use the same source for all windows</property> |
1445 | 433 | <property name="visible">True</property> | ||
1446 | 434 | <property name="can_focus">False</property> | ||
1447 | 435 | <property name="receives_default">False</property> | ||
1448 | 436 | <property name="xalign">0</property> | ||
1449 | 437 | <property name="active">True</property> | ||
1450 | 438 | <property name="draw_indicator">True</property> | ||
1451 | 439 | </object> | ||
1452 | 440 | <packing> | ||
1453 | 441 | <property name="expand">False</property> | ||
1454 | 442 | <property name="fill">True</property> | ||
1455 | 443 | <property name="position">0</property> | ||
1456 | 444 | </packing> | ||
1457 | 445 | </child> | ||
1458 | 446 | <child> | ||
1459 | 447 | <object class="GtkRadioButton" id="different-source-radio"> | ||
1460 | 448 | <property name="label" translatable="yes">Allow different sources for each window</property> | ||
1461 | 449 | <property name="visible">True</property> | ||
1462 | 450 | <property name="can_focus">False</property> | ||
1463 | 451 | <property name="receives_default">False</property> | ||
1464 | 452 | <property name="xalign">0</property> | ||
1465 | 453 | <property name="active">True</property> | ||
1466 | 454 | <property name="draw_indicator">True</property> | ||
1467 | 455 | <property name="group">same-source-radio</property> | ||
1468 | 456 | </object> | ||
1469 | 457 | <packing> | ||
1470 | 458 | <property name="expand">False</property> | ||
1471 | 459 | <property name="fill">True</property> | ||
1472 | 460 | <property name="position">1</property> | ||
1473 | 461 | </packing> | ||
1474 | 462 | </child> | ||
1475 | 463 | <child> | ||
1476 | 464 | <object class="GtkRadioButton" id="default-source-radio"> | ||
1477 | 465 | <property name="label" translatable="yes">New windows use the default source</property> | ||
1478 | 466 | <property name="visible">True</property> | ||
1479 | 467 | <property name="can_focus">False</property> | ||
1480 | 468 | <property name="receives_default">False</property> | ||
1481 | 469 | <property name="margin_left">25</property> | ||
1482 | 470 | <property name="xalign">0</property> | ||
1483 | 471 | <property name="active">True</property> | ||
1484 | 472 | <property name="draw_indicator">True</property> | ||
1485 | 473 | </object> | ||
1486 | 474 | <packing> | ||
1487 | 475 | <property name="expand">False</property> | ||
1488 | 476 | <property name="fill">True</property> | ||
1489 | 477 | <property name="position">2</property> | ||
1490 | 478 | </packing> | ||
1491 | 479 | </child> | ||
1492 | 480 | <child> | ||
1493 | 481 | <object class="GtkRadioButton" id="current-source-radio"> | ||
1494 | 482 | <property name="label" translatable="yes">New windows use the current source</property> | ||
1495 | 483 | <property name="visible">True</property> | ||
1496 | 484 | <property name="can_focus">False</property> | ||
1497 | 485 | <property name="receives_default">False</property> | ||
1498 | 486 | <property name="margin_left">25</property> | ||
1499 | 487 | <property name="margin_bottom">15</property> | ||
1500 | 488 | <property name="xalign">0</property> | ||
1501 | 489 | <property name="active">True</property> | ||
1502 | 490 | <property name="draw_indicator">True</property> | ||
1503 | 491 | <property name="group">default-source-radio</property> | ||
1504 | 492 | </object> | ||
1505 | 493 | <packing> | ||
1506 | 494 | <property name="expand">False</property> | ||
1507 | 495 | <property name="fill">True</property> | ||
1508 | 496 | <property name="position">3</property> | ||
1509 | 497 | </packing> | ||
1510 | 498 | </child> | ||
1511 | 434 | </object> | 499 | </object> |
1512 | 435 | <packing> | 500 | <packing> |
1514 | 436 | <property name="expand">False</property> | 501 | <property name="expand">True</property> |
1515 | 437 | <property name="fill">True</property> | 502 | <property name="fill">True</property> |
1516 | 438 | <property name="position">4</property> | 503 | <property name="position">4</property> |
1517 | 439 | </packing> | 504 | </packing> |
1518 | 440 | </child> | 505 | </child> |
1519 | 441 | <child> | 506 | <child> |
1574 | 442 | <object class="GtkRadioButton" id="different-source-radio"> | 507 | <object class="GtkGrid" id="ibus-grid"> |
1521 | 443 | <property name="label" translatable="yes">Allow different sources for each window</property> | ||
1522 | 444 | <property name="visible">True</property> | ||
1523 | 445 | <property name="can_focus">False</property> | ||
1524 | 446 | <property name="receives_default">False</property> | ||
1525 | 447 | <property name="xalign">0</property> | ||
1526 | 448 | <property name="active">True</property> | ||
1527 | 449 | <property name="draw_indicator">True</property> | ||
1528 | 450 | <property name="group">same-source-radio</property> | ||
1529 | 451 | </object> | ||
1530 | 452 | <packing> | ||
1531 | 453 | <property name="expand">False</property> | ||
1532 | 454 | <property name="fill">True</property> | ||
1533 | 455 | <property name="position">5</property> | ||
1534 | 456 | </packing> | ||
1535 | 457 | </child> | ||
1536 | 458 | <child> | ||
1537 | 459 | <object class="GtkRadioButton" id="default-source-radio"> | ||
1538 | 460 | <property name="label" translatable="yes">New windows use the default source</property> | ||
1539 | 461 | <property name="visible">True</property> | ||
1540 | 462 | <property name="can_focus">False</property> | ||
1541 | 463 | <property name="receives_default">False</property> | ||
1542 | 464 | <property name="margin_left">25</property> | ||
1543 | 465 | <property name="xalign">0</property> | ||
1544 | 466 | <property name="active">True</property> | ||
1545 | 467 | <property name="draw_indicator">True</property> | ||
1546 | 468 | </object> | ||
1547 | 469 | <packing> | ||
1548 | 470 | <property name="expand">False</property> | ||
1549 | 471 | <property name="fill">True</property> | ||
1550 | 472 | <property name="position">6</property> | ||
1551 | 473 | </packing> | ||
1552 | 474 | </child> | ||
1553 | 475 | <child> | ||
1554 | 476 | <object class="GtkRadioButton" id="current-source-radio"> | ||
1555 | 477 | <property name="label" translatable="yes">New windows use the current source</property> | ||
1556 | 478 | <property name="visible">True</property> | ||
1557 | 479 | <property name="can_focus">False</property> | ||
1558 | 480 | <property name="receives_default">False</property> | ||
1559 | 481 | <property name="margin_left">25</property> | ||
1560 | 482 | <property name="margin_bottom">15</property> | ||
1561 | 483 | <property name="xalign">0</property> | ||
1562 | 484 | <property name="active">True</property> | ||
1563 | 485 | <property name="draw_indicator">True</property> | ||
1564 | 486 | <property name="group">default-source-radio</property> | ||
1565 | 487 | </object> | ||
1566 | 488 | <packing> | ||
1567 | 489 | <property name="expand">False</property> | ||
1568 | 490 | <property name="fill">True</property> | ||
1569 | 491 | <property name="position">7</property> | ||
1570 | 492 | </packing> | ||
1571 | 493 | </child> | ||
1572 | 494 | <child> | ||
1573 | 495 | <object class="GtkGrid" id="grid1"> | ||
1575 | 496 | <property name="visible">True</property> | 508 | <property name="visible">True</property> |
1576 | 497 | <property name="can_focus">False</property> | 509 | <property name="can_focus">False</property> |
1577 | 498 | <child> | 510 | <child> |
1578 | @@ -570,7 +582,7 @@ | |||
1579 | 570 | <packing> | 582 | <packing> |
1580 | 571 | <property name="expand">False</property> | 583 | <property name="expand">False</property> |
1581 | 572 | <property name="fill">True</property> | 584 | <property name="fill">True</property> |
1583 | 573 | <property name="position">8</property> | 585 | <property name="position">5</property> |
1584 | 574 | </packing> | 586 | </packing> |
1585 | 575 | </child> | 587 | </child> |
1586 | 576 | </object> | 588 | </object> |
1587 | @@ -626,7 +638,7 @@ | |||
1588 | 626 | </child> | 638 | </child> |
1589 | 627 | </object> | 639 | </object> |
1590 | 628 | <packing> | 640 | <packing> |
1592 | 629 | <property name="expand">True</property> | 641 | <property name="expand">False</property> |
1593 | 630 | <property name="fill">True</property> | 642 | <property name="fill">True</property> |
1594 | 631 | <property name="position">1</property> | 643 | <property name="position">1</property> |
1595 | 632 | </packing> | 644 | </packing> |
1596 | 633 | 645 | ||
1597 | === modified file 'po/POTFILES.in' | |||
1598 | --- po/POTFILES.in 2014-02-21 18:13:23 +0000 | |||
1599 | +++ po/POTFILES.in 2015-02-12 16:27:19 +0000 | |||
1600 | @@ -75,7 +75,8 @@ | |||
1601 | 75 | panels/printers/pp-ppd-selection-dialog.c | 75 | panels/printers/pp-ppd-selection-dialog.c |
1602 | 76 | [type: gettext/glade]panels/printers/printers.ui | 76 | [type: gettext/glade]panels/printers/printers.ui |
1603 | 77 | panels/region/unity-region-panel.desktop.in.in | 77 | panels/region/unity-region-panel.desktop.in.in |
1605 | 78 | [type: gettext/glade]panels/region/unity-region-panel.ui | 78 | [type: gettext/glade]panels/region/unity-region-panel-fcitx.ui |
1606 | 79 | [type: gettext/glade]panels/region/unity-region-panel-ibus.ui | ||
1607 | 79 | panels/region/gnome-region-panel-formats.c | 80 | panels/region/gnome-region-panel-formats.c |
1608 | 80 | [type: gettext/glade]panels/region/gnome-region-panel-input-chooser.ui | 81 | [type: gettext/glade]panels/region/gnome-region-panel-input-chooser.ui |
1609 | 81 | panels/region/gnome-region-panel-system.c | 82 | panels/region/gnome-region-panel-system.c |
Thanks, seems like we don't have anyone available to do a detailed review, so based on a read of the changes and testing in a ppa let's approve that, if there are issues we can sort them out with another landing