Merge lp:~sachinr/xpad/xpad-tray-config into lp:xpad
- xpad-tray-config
- Merge into trunk
Proposed by
Sachin Raut
Status: | Merged |
---|---|
Merged at revision: | 660 |
Proposed branch: | lp:~sachinr/xpad/xpad-tray-config |
Merge into: | lp:xpad |
Diff against target: |
388 lines (+174/-16) (has conflicts) 3 files modified
src/xpad-preferences.c (+44/-2) src/xpad-settings.c (+34/-2) src/xpad-tray.c (+96/-12) Text conflict in src/xpad-tray.c |
To merge this branch: | bzr merge lp:~sachinr/xpad/xpad-tray-config |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Arthur Borsboom | Approve | ||
Review via email:
|
Commit message
Description of the change
fixed Bug #304331: controlling right/left click on tray icon.
fixed Bug #345278: toggle on left mouse click.
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Arthur Borsboom (arthurborsboom) wrote : | # |
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Arthur Borsboom (arthurborsboom) wrote : | # |
I have merged the changes in my development environment and fixed the conflicts.
Tested the four new options for the left-click behaviour and it seems to work nicely!
Good job.
I will merge this in the main branch.
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/xpad-preferences.c' |
2 | --- src/xpad-preferences.c 2008-09-21 00:03:40 +0000 |
3 | +++ src/xpad-preferences.c 2013-10-14 17:36:30 +0000 |
4 | @@ -39,6 +39,7 @@ |
5 | GtkWidget *editcheck; |
6 | GtkWidget *stickycheck; |
7 | GtkWidget *confirmcheck; |
8 | + GtkWidget *trayconfigbox; |
9 | |
10 | GtkWidget *textbutton; |
11 | GtkWidget *backbutton; |
12 | @@ -50,6 +51,7 @@ |
13 | guint notify_font_handler; |
14 | guint notify_back_handler; |
15 | guint notify_text_handler; |
16 | + guint notify_tray_handler; |
17 | guint font_handler; |
18 | guint back_handler; |
19 | guint text_handler; |
20 | @@ -58,6 +60,7 @@ |
21 | guint editcheck_handler; |
22 | guint stickycheck_handler; |
23 | guint confirmcheck_handler; |
24 | + guint trayclick_handler; |
25 | }; |
26 | |
27 | static void change_edit_check (GtkToggleButton *button, XpadPreferences *pref); |
28 | @@ -68,12 +71,14 @@ |
29 | static void change_text_color (GtkColorButton *button, XpadPreferences *pref); |
30 | static void change_back_color (GtkColorButton *button, XpadPreferences *pref); |
31 | static void change_font_face (GtkFontButton *button, XpadPreferences *pref); |
32 | +static void change_tray_click_configuration(GtkComboBox *box, XpadPreferences *pref); |
33 | static void notify_edit (XpadPreferences *pref); |
34 | static void notify_sticky (XpadPreferences *pref); |
35 | static void notify_confirm (XpadPreferences *pref); |
36 | static void notify_fontname (XpadPreferences *pref); |
37 | static void notify_text_color (XpadPreferences *pref); |
38 | static void notify_back_color (XpadPreferences *pref); |
39 | +static void notify_tray_click (XpadPreferences *pref); |
40 | static void xpad_preferences_finalize (GObject *object); |
41 | static void xpad_preferences_response (GtkDialog *dialog, gint response); |
42 | |
43 | @@ -112,7 +117,7 @@ |
44 | const gchar *fontname; |
45 | GtkStyle *style; |
46 | GtkWidget *label, *appearance_frame, *alignment, *appearance_vbox; |
47 | - GtkWidget *options_frame, *options_vbox, *global_vbox; |
48 | + GtkWidget *options_frame, *options_vbox, *global_vbox, *tray_config_vbox; |
49 | gchar *text; |
50 | GtkSizeGroup *size_group_labels = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); |
51 | GtkRequisition req; |
52 | @@ -272,10 +277,28 @@ |
53 | "child", alignment, |
54 | NULL)); |
55 | |
56 | - |
57 | + tray_config_vbox = GTK_WIDGET (g_object_new (GTK_TYPE_VBOX, |
58 | + "homogeneous", FALSE, |
59 | + "spacing", 6, |
60 | + NULL)); |
61 | + |
62 | + pref->priv->trayconfigbox = gtk_combo_box_new_text(); |
63 | + gtk_combo_box_append_text( GTK_COMBO_BOX( pref->priv->trayconfigbox ), "Do Nothing" ); |
64 | + gtk_combo_box_append_text( GTK_COMBO_BOX( pref->priv->trayconfigbox ), "Toggle Show All" ); |
65 | + gtk_combo_box_append_text( GTK_COMBO_BOX( pref->priv->trayconfigbox ), "List of Pads" ); |
66 | + gtk_combo_box_append_text( GTK_COMBO_BOX( pref->priv->trayconfigbox ), "New Pad" ); |
67 | + gtk_combo_box_set_active( GTK_COMBO_BOX( pref->priv->trayconfigbox ), xpad_settings_get_tray_click_handler(xpad_settings())); |
68 | + |
69 | + hbox = gtk_hbox_new(FALSE, 12); |
70 | + label = gtk_label_new_with_mnemonic(_("Tray click behaviour")); |
71 | + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
72 | + gtk_box_pack_start(GTK_BOX(hbox), pref->priv->trayconfigbox, TRUE, TRUE, 0); |
73 | + gtk_box_pack_start(GTK_BOX(tray_config_vbox), hbox, TRUE, TRUE, 0); |
74 | + |
75 | gtk_box_pack_start (GTK_BOX (options_vbox), pref->priv->editcheck, FALSE, FALSE, 0); |
76 | gtk_box_pack_start (GTK_BOX (options_vbox), pref->priv->stickycheck, FALSE, FALSE, 0); |
77 | gtk_box_pack_start (GTK_BOX (options_vbox), pref->priv->confirmcheck, FALSE, FALSE, 0); |
78 | + g_object_set (GTK_WIDGET(options_vbox), "child", tray_config_vbox, NULL); |
79 | |
80 | global_vbox = g_object_new (GTK_TYPE_VBOX, |
81 | "border-width", 6, |
82 | @@ -295,12 +318,14 @@ |
83 | pref->priv->text_handler = g_signal_connect (pref->priv->textbutton, "color-set", G_CALLBACK (change_text_color), pref); |
84 | pref->priv->back_handler = g_signal_connect (pref->priv->backbutton, "color-set", G_CALLBACK (change_back_color), pref); |
85 | pref->priv->font_handler = g_signal_connect (pref->priv->fontbutton, "font-set", G_CALLBACK (change_font_face), pref); |
86 | + pref->priv->trayclick_handler = g_signal_connect(pref->priv->trayconfigbox, "changed", G_CALLBACK(change_tray_click_configuration), pref); |
87 | pref->priv->notify_font_handler = g_signal_connect_swapped (xpad_settings (), "notify::fontname", G_CALLBACK (notify_fontname), pref); |
88 | pref->priv->notify_text_handler = g_signal_connect_swapped (xpad_settings (), "notify::text-color", G_CALLBACK (notify_text_color), pref); |
89 | pref->priv->notify_back_handler = g_signal_connect_swapped (xpad_settings (), "notify::back-color", G_CALLBACK (notify_back_color), pref); |
90 | pref->priv->notify_sticky_handler = g_signal_connect_swapped (xpad_settings (), "notify::sticky", G_CALLBACK (notify_sticky), pref); |
91 | pref->priv->notify_edit_handler = g_signal_connect_swapped (xpad_settings (), "notify::edit-lock", G_CALLBACK (notify_edit), pref); |
92 | pref->priv->notify_confirm_handler = g_signal_connect_swapped (xpad_settings (), "notify::confirm-destroy", G_CALLBACK (notify_confirm), pref); |
93 | + pref->priv->notify_tray_handler = g_signal_connect_swapped (xpad_settings (), "notify::tray_click_configuration", G_CALLBACK(notify_tray_click), pref); |
94 | |
95 | g_object_unref (size_group_labels); |
96 | |
97 | @@ -394,6 +419,14 @@ |
98 | } |
99 | |
100 | static void |
101 | +change_tray_click_configuration(GtkComboBox *box, XpadPreferences *pref) |
102 | +{ |
103 | + g_signal_handler_block(xpad_settings(), pref->priv->notify_tray_handler); |
104 | + xpad_settings_set_tray_click_handler(xpad_settings(), gtk_combo_box_get_active(box)); |
105 | + g_signal_handler_unblock(xpad_settings(), pref->priv->notify_tray_handler); |
106 | +} |
107 | + |
108 | +static void |
109 | change_text_color (GtkColorButton *button, XpadPreferences *pref) |
110 | { |
111 | GdkColor color; |
112 | @@ -516,3 +549,12 @@ |
113 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->confirmcheck), xpad_settings_get_confirm_destroy (xpad_settings ())); |
114 | g_signal_handler_unblock (pref->priv->confirmcheck, pref->priv->confirmcheck_handler); |
115 | } |
116 | + |
117 | +static void |
118 | +notify_tray_click(XpadPreferences *pref) |
119 | +{ |
120 | + g_signal_handler_block(pref->priv->trayconfigbox, pref->priv->trayclick_handler); |
121 | + gtk_combo_box_set_active(GTK_COMBO_BOX(pref->priv->trayconfigbox), xpad_settings_get_tray_click_handler(xpad_settings())); |
122 | + g_signal_handler_unblock(pref->priv->trayconfigbox, pref->priv->trayclick_handler); |
123 | +} |
124 | + |
125 | |
126 | === modified file 'src/xpad-settings.c' |
127 | --- src/xpad-settings.c 2013-10-07 20:07:46 +0000 |
128 | +++ src/xpad-settings.c 2013-10-14 17:36:30 +0000 |
129 | @@ -35,6 +35,7 @@ |
130 | gboolean confirm_destroy; |
131 | gboolean edit_lock; |
132 | gboolean sticky; |
133 | + guint tray_click_configuration; |
134 | gboolean has_toolbar; |
135 | gboolean autohide_toolbar; |
136 | gboolean has_scrollbar; |
137 | @@ -59,6 +60,7 @@ |
138 | PROP_CONFIRM_DESTROY, |
139 | PROP_STICKY, |
140 | PROP_EDIT_LOCK, |
141 | + PROP_TRAY_CLICK_CONFIGURATION, |
142 | PROP_HAS_TOOLBAR, |
143 | PROP_AUTOHIDE_TOOLBAR, |
144 | PROP_HAS_SCROLLBAR, |
145 | @@ -149,7 +151,15 @@ |
146 | "Whether edit lock mode is enabled", |
147 | FALSE, |
148 | G_PARAM_READWRITE)); |
149 | - |
150 | + g_object_class_install_property (gobject_class, |
151 | + PROP_TRAY_CLICK_CONFIGURATION, |
152 | + g_param_spec_uint ("tray_click_configuration", |
153 | + "Tray Click Configuration", |
154 | + "What configuration is selected on tray click", |
155 | + 0, |
156 | + G_MAXUINT, |
157 | + 2, |
158 | + G_PARAM_READWRITE)); |
159 | g_object_class_install_property (gobject_class, |
160 | PROP_HAS_TOOLBAR, |
161 | g_param_spec_boolean ("has_toolbar", |
162 | @@ -239,6 +249,7 @@ |
163 | settings->priv->confirm_destroy = TRUE; |
164 | settings->priv->sticky = FALSE; |
165 | settings->priv->edit_lock = FALSE; |
166 | + settings->priv->tray_click_configuration = 0; |
167 | settings->priv->fontname = NULL; |
168 | settings->priv->has_toolbar = TRUE; |
169 | settings->priv->autohide_toolbar = TRUE; |
170 | @@ -350,6 +361,21 @@ |
171 | return settings->priv->edit_lock; |
172 | } |
173 | |
174 | +void xpad_settings_set_tray_click_handler (XpadSettings *settings, guint conf) |
175 | +{ |
176 | + if (settings->priv->tray_click_configuration == conf) |
177 | + return; |
178 | + |
179 | + settings->priv->tray_click_configuration = conf; |
180 | + save_to_file(settings, DEFAULTS_FILENAME); |
181 | + g_object_notify (G_OBJECT (settings), "tray_click_configuration"); |
182 | +} |
183 | + |
184 | +guint xpad_settings_get_tray_click_handler(XpadSettings *settings) |
185 | +{ |
186 | + return settings->priv->tray_click_configuration; |
187 | +} |
188 | + |
189 | void xpad_settings_set_has_toolbar (XpadSettings *settings, gboolean toolbar) |
190 | { |
191 | if (settings->priv->has_toolbar == toolbar) |
192 | @@ -607,7 +633,11 @@ |
193 | case PROP_EDIT_LOCK: |
194 | xpad_settings_set_edit_lock (settings, g_value_get_boolean (value)); |
195 | break; |
196 | - |
197 | + |
198 | + case PROP_TRAY_CLICK_CONFIGURATION: |
199 | + xpad_settings_set_tray_click_handler(settings, g_value_get_uint(value)); |
200 | + break; |
201 | + |
202 | case PROP_HAS_TOOLBAR: |
203 | xpad_settings_set_has_toolbar (settings, g_value_get_boolean (value)); |
204 | break; |
205 | @@ -727,6 +757,7 @@ |
206 | "b|confirm_destroy", &settings->priv->confirm_destroy, |
207 | "b|edit_lock", &settings->priv->edit_lock, |
208 | "b|sticky_on_start", &settings->priv->sticky, |
209 | + "u|tray_click_configuration", &settings->priv->tray_click_configuration, |
210 | "h|back_red", &back.red, |
211 | "h|back_green", &back.green, |
212 | "h|back_blue", &back.blue, |
213 | @@ -818,6 +849,7 @@ |
214 | "b|confirm_destroy", settings->priv->confirm_destroy, |
215 | "b|edit_lock", settings->priv->edit_lock, |
216 | "b|sticky_on_start", settings->priv->sticky, |
217 | + "u|tray_click_configuration", settings->priv->tray_click_configuration, |
218 | "h|back_red", settings->priv->back ? settings->priv->back->red : 0, |
219 | "h|back_green", settings->priv->back ? settings->priv->back->green : 0, |
220 | "h|back_blue", settings->priv->back ? settings->priv->back->blue : 0, |
221 | |
222 | === modified file 'src/xpad-tray.c' |
223 | --- src/xpad-tray.c 2013-10-09 14:46:10 +0000 |
224 | +++ src/xpad-tray.c 2013-10-14 17:36:30 +0000 |
225 | @@ -29,8 +29,23 @@ |
226 | #include "xpad-preferences.h" |
227 | #include "xpad-tray.h" |
228 | |
229 | +enum |
230 | +{ |
231 | + DO_NOTHING, |
232 | + TOGGLE_SHOW_ALL, |
233 | + LIST_OF_PADS, |
234 | + NEW_PAD |
235 | +}; |
236 | +// tray icon left click handler |
237 | static void xpad_tray_activate_cb (GtkStatusIcon *icon); |
238 | +// tray icon right click handler |
239 | static void xpad_tray_popup_menu_cb (GtkStatusIcon *icon, guint button, guint time); |
240 | +// "toggle show all" menu item handler |
241 | +static void xpad_tray_show_hide_all (void); |
242 | +// "show pads" menu item handler |
243 | +static void xpad_tray_show_windows_list (GtkStatusIcon *icon); |
244 | +// helper function to append pad window title as item to menu |
245 | +static void xpad_tray_append_pad_window_titles_to_menu (GtkWidget *menu); |
246 | |
247 | static GtkStatusIcon *docklet = NULL; |
248 | |
249 | @@ -101,6 +116,25 @@ |
250 | g_slist_free (pads); |
251 | } |
252 | |
253 | +static void |
254 | +xpad_tray_show_hide_all (void) |
255 | +{ |
256 | + GSList *pads = xpad_pad_group_get_pads (xpad_app_get_pad_group ()); |
257 | + // find if any pad is visible |
258 | + gboolean open = FALSE; |
259 | + GSList *i; |
260 | + for(i = pads; i != NULL; i = i->next) |
261 | + { |
262 | + if (gtk_widget_get_visible(GTK_WIDGET(i->data))) |
263 | + { |
264 | + open = TRUE; |
265 | + break; |
266 | + } |
267 | + } |
268 | + g_slist_foreach(pads, (GFunc) (open ? gtk_widget_hide : gtk_widget_show), NULL); |
269 | + g_slist_free (pads); |
270 | +} |
271 | + |
272 | static void |
273 | menu_spawn (XpadPadGroup *group) |
274 | { |
275 | @@ -112,11 +146,13 @@ |
276 | xpad_tray_popup_menu_cb (GtkStatusIcon *icon, guint button, guint time) |
277 | { |
278 | GtkWidget *menu, *item; |
279 | - GSList *pads, *l; |
280 | - gint n; |
281 | - |
282 | + GSList *pads; |
283 | + gboolean no_any_pad = FALSE; |
284 | menu = gtk_menu_new (); |
285 | pads = xpad_pad_group_get_pads (xpad_app_get_pad_group ()); |
286 | + if (!pads) |
287 | + no_any_pad = TRUE; |
288 | + g_slist_free (pads); |
289 | |
290 | item = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, NULL); |
291 | g_signal_connect_swapped (item, "activate", G_CALLBACK (menu_spawn), xpad_app_get_pad_group ()); |
292 | @@ -131,28 +167,72 @@ |
293 | g_signal_connect_swapped (item, "activate", G_CALLBACK (menu_show_all), xpad_app_get_pad_group ()); |
294 | gtk_container_add (GTK_CONTAINER (menu), item); |
295 | gtk_widget_show (item); |
296 | - if (!pads) |
297 | + if (no_any_pad) |
298 | gtk_widget_set_sensitive (item, FALSE); |
299 | |
300 | item = gtk_image_menu_item_new_with_mnemonic (_("_Close All")); |
301 | g_signal_connect_swapped (item, "activate", G_CALLBACK (xpad_pad_group_close_all), xpad_app_get_pad_group ()); |
302 | gtk_container_add (GTK_CONTAINER (menu), item); |
303 | gtk_widget_show (item); |
304 | - if (!pads) |
305 | + if (no_any_pad) |
306 | gtk_widget_set_sensitive (item, FALSE); |
307 | |
308 | item = gtk_separator_menu_item_new (); |
309 | gtk_container_add (GTK_CONTAINER (menu), item); |
310 | gtk_widget_show (item); |
311 | |
312 | - /** |
313 | - * Order pads according to title. |
314 | - */ |
315 | + // append window titles |
316 | + xpad_tray_append_pad_window_titles_to_menu (menu); |
317 | + |
318 | + item = gtk_image_menu_item_new_from_stock (GTK_STOCK_PREFERENCES, NULL); |
319 | + g_signal_connect (item, "activate", G_CALLBACK (xpad_preferences_open), NULL); |
320 | + gtk_container_add (GTK_CONTAINER (menu), item); |
321 | + gtk_widget_show (item); |
322 | + |
323 | + item = gtk_image_menu_item_new_from_stock (GTK_STOCK_QUIT, NULL); |
324 | + g_signal_connect (item, "activate", G_CALLBACK (gtk_main_quit), NULL); |
325 | + gtk_container_add (GTK_CONTAINER (menu), item); |
326 | + gtk_widget_show (item); |
327 | + |
328 | + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, gtk_status_icon_position_menu, icon, button, time); |
329 | +} |
330 | + |
331 | +static void |
332 | +xpad_tray_activate_cb (GtkStatusIcon *icon) |
333 | +{ |
334 | + switch (xpad_settings_get_tray_click_handler(xpad_settings())) |
335 | + { |
336 | + case TOGGLE_SHOW_ALL: |
337 | + xpad_tray_show_hide_all(); |
338 | + break; |
339 | + case LIST_OF_PADS: |
340 | + xpad_tray_show_windows_list(icon); |
341 | + break; |
342 | + case NEW_PAD: |
343 | + menu_spawn(xpad_app_get_pad_group()); |
344 | + break; |
345 | + } |
346 | +} |
347 | + |
348 | +static void |
349 | +xpad_tray_show_windows_list (GtkStatusIcon *icon) |
350 | +{ |
351 | + GtkWidget* menu = gtk_menu_new (); |
352 | + xpad_tray_append_pad_window_titles_to_menu (menu); |
353 | + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, gtk_status_icon_position_menu, icon, 0, gtk_get_current_event_time()); |
354 | +} |
355 | + |
356 | +static void |
357 | +xpad_tray_append_pad_window_titles_to_menu (GtkWidget *menu) |
358 | +{ |
359 | + GSList *pads, *l; |
360 | + GtkWidget *item; |
361 | + gint n; |
362 | + |
363 | + pads = xpad_pad_group_get_pads (xpad_app_get_pad_group ()); |
364 | + // Order pads according to title. |
365 | pads = g_slist_sort (pads, (GCompareFunc) menu_title_compare); |
366 | - |
367 | - /** |
368 | - * Populate list of windows. |
369 | - */ |
370 | + // Populate list of windows. |
371 | for (l = pads, n = 1; l; l = l->next, n++) |
372 | { |
373 | gchar *title; |
374 | @@ -174,6 +254,7 @@ |
375 | g_free (title); |
376 | } |
377 | g_slist_free (pads); |
378 | +<<<<<<< TREE |
379 | |
380 | if (pads) |
381 | { |
382 | @@ -203,3 +284,6 @@ |
383 | g_slist_free (pads); |
384 | } |
385 | |
386 | +======= |
387 | +} |
388 | +>>>>>>> MERGE-SOURCE |
Hi Sachin,
Thanks for proposing your code for merging. I would like to finish my
current work first (garbage collection with the two bugs). Once the
"garbage counter" is at 0, and the application is still working, I will
upload my code and start merging yours in the main branch, ok?
Some introduction from my side:
I'm Dutch (= The Netherlands), 34 years old, male (duhh), and currently
travelling through South-America by bike. Well, travelling, I am staying in
a nice appartment in Lima, right now. :)
How's life coping for you? You are Indian, am I right?
On 14 October 2013 12:37, Sachin Raut <email address hidden> wrote:
> Sachin Raut has proposed merging lp:~sachinr/xpad/xpad-tray-config into /bugs.launchpad .net/xpad/ +bug/304331 /bugs.launchpad .net/xpad/ +bug/345278 /code.launchpad .net/~sachinr/ xpad/xpad- tray-config/ +merge/ 191013 /code.launchpad .net/~sachinr/ xpad/xpad- tray-config/ +merge/ 191013 preferences. c' preferences. c 2008-09-21 00:03:40 +0000 preferences. c 2013-10-14 17:36:30 +0000 font_handler; back_handler; text_handler; tray_handler; handler; handler; tray_click_ configuration( GtkComboBox *box, s_finalize (GObject *object); s_response (GtkDialog *dialog, gint response);
> lp:xpad.
>
> Requested reviews:
> Xpad Administrators (xpad-team)
> Related bugs:
> Bug #304331 in Xpad: "controlling right/left click on tray icon"
> https:/
> Bug #345278 in Xpad: "toggle on left mouse click"
> https:/
>
> For more details, see:
> https:/
>
> fixed Bug #304331: controlling right/left click on tray icon.
> fixed Bug #345278: toggle on left mouse click.
> --
> https:/
> You are subscribed to branch lp:xpad.
>
> === modified file 'src/xpad-
> --- src/xpad-
> +++ src/xpad-
> @@ -39,6 +39,7 @@
> GtkWidget *editcheck;
> GtkWidget *stickycheck;
> GtkWidget *confirmcheck;
> + GtkWidget *trayconfigbox;
>
> GtkWidget *textbutton;
> GtkWidget *backbutton;
> @@ -50,6 +51,7 @@
> guint notify_
> guint notify_
> guint notify_
> + guint notify_
> guint font_handler;
> guint back_handler;
> guint text_handler;
> @@ -58,6 +60,7 @@
> guint editcheck_handler;
> guint stickycheck_
> guint confirmcheck_
> + guint trayclick_handler;
> };
>
> static void change_edit_check (GtkToggleButton *button, XpadPreferences
> *pref);
> @@ -68,12 +71,14 @@
> static void change_text_color (GtkColorButton *button, XpadPreferences
> *pref);
> static void change_back_color (GtkColorButton *button, XpadPreferences
> *pref);
> static void change_font_face (GtkFontButton *button, XpadPreferences
> *pref);
> +static void change_
> XpadPreferences *pref);
> static void notify_edit (XpadPreferences *pref);
> static void notify_sticky (XpadPreferences *pref);
> static void notify_confirm (XpadPreferences *pref);
> static void notify_fontname (XpadPreferences *pref);
> static void notify_text_color (XpadPreferences *pref);
> static void notify_back_color (XpadPreferences *pref);
> +static void notify_tray_click (XpadPreferences *pref);
> static void xpad_preference
> static void xpad_preference
>
> @@ -112,7 +117,7 @@
> const gchar *fo...