Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: src/main.c

Issue 2899003: Add signal handlers to ibus-chewing to listen for config changes. (Closed) Base URL: ssh://gitrw.chromium.org/ibus-chewing.git
Patch Set: Code Review fixes Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IBusChewingEngine-keys.c ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* vim:set et sts=4: */ 1 /* vim:set et sts=4: */
2 /* 2 /*
3 * Copyright © 2009 Red Hat, Inc. All rights reserved. 3 * Copyright © 2009 Red Hat, Inc. All rights reserved.
4 * Copyright © 2009 Ding-Yi Chen <dchen at redhat.com> 4 * Copyright © 2009 Ding-Yi Chen <dchen at redhat.com>
5 * 5 *
6 * This file is part of the ibus-chewing Project. 6 * This file is part of the ibus-chewing Project.
7 * 7 *
8 * This program is free software; you can redistribute it and/or 8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2 10 * as published by the Free Software Foundation; either version 2
(...skipping 17 matching lines...) Expand all
28 #include "ibus-chewing-engine.h" 28 #include "ibus-chewing-engine.h"
29 #include "maker-dialog.h" 29 #include "maker-dialog.h"
30 30
31 MakerDialog *makerDialog=NULL; 31 MakerDialog *makerDialog=NULL;
32 static IBusBus *bus = NULL; 32 static IBusBus *bus = NULL;
33 static IBusFactory *factory = NULL; 33 static IBusFactory *factory = NULL;
34 34
35 /* options */ 35 /* options */
36 static gboolean ibus = FALSE; 36 static gboolean ibus = FALSE;
37 int ibus_chewing_verbose= 0; 37 int ibus_chewing_verbose= 0;
38 IBusConfig *iConfig = NULL;
38 39
39 static const GOptionEntry entries[] = 40 static const GOptionEntry entries[] =
40 { 41 {
41 { "ibus", 'i', 0, G_OPTION_ARG_NONE, &ibus, "component is executed by ibus", NULL }, 42 { "ibus", 'i', 0, G_OPTION_ARG_NONE, &ibus, "component is executed by ibus", NULL },
42 { "verbose", 'v', 0, G_OPTION_ARG_INT, &ibus_chewing_verbose, 43 { "verbose", 'v', 0, G_OPTION_ARG_INT, &ibus_chewing_verbose,
43 "Verbose level. The higher the level, the more the debug messages.", 44 "Verbose level. The higher the level, the more the debug messages.",
44 "[integer]" }, 45 "[integer]" },
45 { NULL }, 46 { NULL },
46 }; 47 };
47 48
48 49
49 static void 50 static void
50 ibus_disconnected_cb (IBusBus *bus, 51 ibus_disconnected_cb (IBusBus *bus,
51 gpointer user_data) 52 gpointer user_data)
52 { 53 {
53 g_debug ("bus disconnected"); 54 g_debug ("bus disconnected");
54 ibus_quit (); 55 ibus_quit ();
55 } 56 }
56 57
57 58
58 static void 59 static void
59 start_component (void) 60 start_component (void)
60 { 61 {
61 bus = ibus_bus_new (); 62 bus = ibus_bus_new ();
62 g_signal_connect (bus, "disconnected", G_CALLBACK (ibus_disconnected_cb), NU LL); 63 g_signal_connect (bus, "disconnected", G_CALLBACK (ibus_disconnected_cb), NU LL);
64 iConfig = ibus_bus_get_config (bus);
65 if (iConfig)
66 g_object_ref_sink (iConfig);
63 67
64 IBusConnection *iConnection=ibus_bus_get_connection (bus); 68 IBusConnection *iConnection=ibus_bus_get_connection (bus);
65 factory = ibus_factory_new (iConnection); 69 factory = ibus_factory_new (iConnection);
66 ibus_factory_add_engine (factory, "chewing", IBUS_TYPE_CHEWING_ENGINE); 70 ibus_factory_add_engine (factory, "chewing", IBUS_TYPE_CHEWING_ENGINE);
67 71
68 if (ibus) { 72 if (ibus) {
69 ibus_bus_request_name (bus, "org.freedesktop.IBus.Chewing", 0); 73 ibus_bus_request_name (bus, "org.freedesktop.IBus.Chewing", 0);
70 }else { 74 }else {
71 IBusComponent *component; 75 IBusComponent *component;
72 // component = ibus_component_new_from_file ( DATADIR "/ibus/component/ch ewing.xml"); 76 // component = ibus_component_new_from_file ( DATADIR "/ibus/component/ch ewing.xml");
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 148
145 if (!g_option_context_parse (context, &argc, &argv, &error)) { 149 if (!g_option_context_parse (context, &argc, &argv, &error)) {
146 g_print ("Option parsing failed: %s\n", error->message); 150 g_print ("Option parsing failed: %s\n", error->message);
147 exit (-1); 151 exit (-1);
148 } 152 }
149 153
150 g_option_context_free (context); 154 g_option_context_free (context);
151 start_component (); 155 start_component ();
152 return 0; 156 return 0;
153 } 157 }
OLDNEW
« no previous file with comments | « src/IBusChewingEngine-keys.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698