Mercurial > pidgin.yaz
comparison pidgin/gtkimhtmltoolbar.c @ 21913:2a591a5b3322
Make some more event handlers return appropriate gboolean values. This turns
out to be a pretty important thing to do. Not returning FALSE from a delete_event
callback would, for example, only hide a widget, instead of destroying it, which
can cause leaks.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Fri, 21 Dec 2007 14:19:29 +0000 |
parents | 03c950701fac |
children | 07eb63fa0bdb |
comparison
equal
deleted
inserted
replaced
21912:6765b2b65d30 | 21913:2a591a5b3322 |
---|---|
97 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(large))) | 97 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(large))) |
98 gtk_imhtml_font_grow(GTK_IMHTML(toolbar->imhtml)); | 98 gtk_imhtml_font_grow(GTK_IMHTML(toolbar->imhtml)); |
99 gtk_widget_grab_focus(toolbar->imhtml); | 99 gtk_widget_grab_focus(toolbar->imhtml); |
100 } | 100 } |
101 | 101 |
102 static void | 102 static gboolean |
103 destroy_toolbar_font(GtkWidget *widget, GdkEvent *event, | 103 destroy_toolbar_font(GtkWidget *widget, GdkEvent *event, |
104 GtkIMHtmlToolbar *toolbar) | 104 GtkIMHtmlToolbar *toolbar) |
105 { | 105 { |
106 if (widget != NULL) | 106 if (widget != NULL) |
107 gtk_imhtml_toggle_fontface(GTK_IMHTML(toolbar->imhtml), ""); | 107 gtk_imhtml_toggle_fontface(GTK_IMHTML(toolbar->imhtml), ""); |
109 if (toolbar->font_dialog != NULL) | 109 if (toolbar->font_dialog != NULL) |
110 { | 110 { |
111 gtk_widget_destroy(toolbar->font_dialog); | 111 gtk_widget_destroy(toolbar->font_dialog); |
112 toolbar->font_dialog = NULL; | 112 toolbar->font_dialog = NULL; |
113 } | 113 } |
114 return FALSE; | |
114 } | 115 } |
115 | 116 |
116 static void | 117 static void |
117 realize_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) | 118 realize_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) |
118 { | 119 { |
189 cancel_toolbar_font(font, toolbar); | 190 cancel_toolbar_font(font, toolbar); |
190 } | 191 } |
191 gtk_widget_grab_focus(toolbar->imhtml); | 192 gtk_widget_grab_focus(toolbar->imhtml); |
192 } | 193 } |
193 | 194 |
194 static void | 195 static gboolean |
195 destroy_toolbar_fgcolor(GtkWidget *widget, GdkEvent *event, | 196 destroy_toolbar_fgcolor(GtkWidget *widget, GdkEvent *event, |
196 GtkIMHtmlToolbar *toolbar) | 197 GtkIMHtmlToolbar *toolbar) |
197 { | 198 { |
198 if (widget != NULL) | 199 if (widget != NULL) |
199 gtk_imhtml_toggle_forecolor(GTK_IMHTML(toolbar->imhtml), ""); | 200 gtk_imhtml_toggle_forecolor(GTK_IMHTML(toolbar->imhtml), ""); |
201 if (toolbar->fgcolor_dialog != NULL) | 202 if (toolbar->fgcolor_dialog != NULL) |
202 { | 203 { |
203 gtk_widget_destroy(toolbar->fgcolor_dialog); | 204 gtk_widget_destroy(toolbar->fgcolor_dialog); |
204 toolbar->fgcolor_dialog = NULL; | 205 toolbar->fgcolor_dialog = NULL; |
205 } | 206 } |
207 return FALSE; | |
206 } | 208 } |
207 | 209 |
208 static void cancel_toolbar_fgcolor(GtkWidget *widget, | 210 static void cancel_toolbar_fgcolor(GtkWidget *widget, |
209 GtkIMHtmlToolbar *toolbar) | 211 GtkIMHtmlToolbar *toolbar) |
210 { | 212 { |
261 cancel_toolbar_fgcolor(color, toolbar); | 263 cancel_toolbar_fgcolor(color, toolbar); |
262 } | 264 } |
263 gtk_widget_grab_focus(toolbar->imhtml); | 265 gtk_widget_grab_focus(toolbar->imhtml); |
264 } | 266 } |
265 | 267 |
266 static void | 268 static gboolean |
267 destroy_toolbar_bgcolor(GtkWidget *widget, GdkEvent *event, | 269 destroy_toolbar_bgcolor(GtkWidget *widget, GdkEvent *event, |
268 GtkIMHtmlToolbar *toolbar) | 270 GtkIMHtmlToolbar *toolbar) |
269 { | 271 { |
270 if (widget != NULL) { | 272 if (widget != NULL) { |
271 if (gtk_text_buffer_get_selection_bounds(GTK_IMHTML(toolbar->imhtml)->text_buffer, NULL, NULL)) | 273 if (gtk_text_buffer_get_selection_bounds(GTK_IMHTML(toolbar->imhtml)->text_buffer, NULL, NULL)) |
277 if (toolbar->bgcolor_dialog != NULL) | 279 if (toolbar->bgcolor_dialog != NULL) |
278 { | 280 { |
279 gtk_widget_destroy(toolbar->bgcolor_dialog); | 281 gtk_widget_destroy(toolbar->bgcolor_dialog); |
280 toolbar->bgcolor_dialog = NULL; | 282 toolbar->bgcolor_dialog = NULL; |
281 } | 283 } |
284 return FALSE; | |
282 } | 285 } |
283 | 286 |
284 static void | 287 static void |
285 cancel_toolbar_bgcolor(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) | 288 cancel_toolbar_bgcolor(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) |
286 { | 289 { |
573 gtk_widget_destroy(toolbar->smiley_dialog); | 576 gtk_widget_destroy(toolbar->smiley_dialog); |
574 toolbar->smiley_dialog = NULL; | 577 toolbar->smiley_dialog = NULL; |
575 } | 578 } |
576 } | 579 } |
577 | 580 |
578 static void | 581 static gboolean |
579 close_smiley_dialog(GtkWidget *widget, GdkEvent *event, | 582 close_smiley_dialog(GtkWidget *widget, GdkEvent *event, |
580 GtkIMHtmlToolbar *toolbar) | 583 GtkIMHtmlToolbar *toolbar) |
581 { | 584 { |
582 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->smiley), FALSE); | 585 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->smiley), FALSE); |
586 return FALSE; | |
583 } | 587 } |
584 | 588 |
585 | 589 |
586 static void | 590 static void |
587 insert_smiley_text(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) | 591 insert_smiley_text(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) |