SF.net SVN: geany:[3712] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Fri Apr 17 15:30:01 UTC 2009
Revision: 3712
http://geany.svn.sourceforge.net/geany/?rev=3712&view=rev
Author: eht16
Date: 2009-04-17 15:30:01 +0000 (Fri, 17 Apr 2009)
Log Message:
-----------
Prevent double execution of radio menu item "activate" or "toggled" signal handlers.
Move 'Set Encoding' callback function into encodings.c.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/callbacks.c
trunk/src/callbacks.h
trunk/src/encodings.c
trunk/src/filetypes.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-04-16 17:57:29 UTC (rev 3711)
+++ trunk/ChangeLog 2009-04-17 15:30:01 UTC (rev 3712)
@@ -1,3 +1,11 @@
+2009-04-17 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/callbacks.c, src/callbacks.h, src/encodings.c, src/filetypes.c:
+ Prevent double execution of radio menu item "activate" or "toggled"
+ signal handlers.
+ Move 'Set Encoding' callback function into encodings.c.
+
+
2009-04-16 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/project.c:
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2009-04-16 17:57:29 UTC (rev 3711)
+++ trunk/src/callbacks.c 2009-04-17 15:30:01 UTC (rev 3712)
@@ -479,10 +479,11 @@
void
-on_images_and_text2_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_images_and_text2_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- if (ignore_toolbar_toggle) return;
+ if (ignore_toolbar_toggle || ! gtk_check_menu_item_get_active(menuitem))
+ return;
gtk_toolbar_set_style(GTK_TOOLBAR(main_widgets.toolbar), GTK_TOOLBAR_BOTH);
toolbar_prefs.icon_style = GTK_TOOLBAR_BOTH;
@@ -490,10 +491,11 @@
void
-on_images_only2_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_images_only2_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- if (ignore_toolbar_toggle) return;
+ if (ignore_toolbar_toggle || ! gtk_check_menu_item_get_active(menuitem))
+ return;
gtk_toolbar_set_style(GTK_TOOLBAR(main_widgets.toolbar), GTK_TOOLBAR_ICONS);
toolbar_prefs.icon_style = GTK_TOOLBAR_ICONS;
@@ -501,10 +503,11 @@
void
-on_text_only2_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_text_only2_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- if (ignore_toolbar_toggle) return;
+ if (ignore_toolbar_toggle || ! gtk_check_menu_item_get_active(menuitem))
+ return;
gtk_toolbar_set_style(GTK_TOOLBAR(main_widgets.toolbar), GTK_TOOLBAR_TEXT);
toolbar_prefs.icon_style = GTK_TOOLBAR_TEXT;
@@ -591,10 +594,11 @@
void
-on_toolbar_large_icons1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_toolbar_large_icons1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- if (ignore_toolbar_toggle) return;
+ if (ignore_toolbar_toggle || ! gtk_check_menu_item_get_active(menuitem))
+ return;
toolbar_prefs.icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), toolbar_prefs.icon_size);
@@ -602,10 +606,11 @@
void
-on_toolbar_small_icons1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_toolbar_small_icons1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- if (ignore_toolbar_toggle) return;
+ if (ignore_toolbar_toggle || ! gtk_check_menu_item_get_active(menuitem))
+ return;
toolbar_prefs.icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), toolbar_prefs.icon_size);
@@ -613,10 +618,11 @@
void
-on_very_small_icons1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_very_small_icons1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- if (ignore_toolbar_toggle) return;
+ if (ignore_toolbar_toggle || ! gtk_check_menu_item_get_active(menuitem))
+ return;
toolbar_prefs.icon_size = GTK_ICON_SIZE_MENU;
gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), toolbar_prefs.icon_size);
@@ -772,11 +778,11 @@
void
-on_crlf_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_crlf_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
GeanyDocument *doc;
- if (ignore_callback)
+ if (ignore_callback || ! gtk_check_menu_item_get_active(menuitem))
return;
doc = document_get_current();
g_return_if_fail(doc != NULL);
@@ -787,13 +793,13 @@
void
-on_lf_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_lf_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
GeanyDocument *doc;
- if (ignore_callback)
+ if (ignore_callback || ! gtk_check_menu_item_get_active(menuitem))
return;
- doc = document_get_current();
+ doc = document_get_current();
g_return_if_fail(doc != NULL);
sci_convert_eols(doc->editor->sci, SC_EOL_LF);
@@ -802,11 +808,11 @@
void
-on_cr_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_cr_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
GeanyDocument *doc;
- if (ignore_callback)
+ if (ignore_callback || ! gtk_check_menu_item_get_active(menuitem))
return;
doc = document_get_current();
g_return_if_fail(doc != NULL);
@@ -1592,28 +1598,6 @@
void
-on_encoding_change (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GeanyDocument *doc = document_get_current();
- guint i = GPOINTER_TO_INT(user_data);
-
- if (ignore_callback || doc == NULL || encodings[i].charset == NULL ||
- utils_str_equal(encodings[i].charset, doc->encoding))
- return;
-
- if (doc->readonly)
- {
- utils_beep();
- return;
- }
- document_undo_add(doc, UNDO_ENCODING, g_strdup(doc->encoding));
-
- document_set_encoding(doc, encodings[i].charset);
-}
-
-
-void
on_print1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
@@ -2085,11 +2069,11 @@
}
-static void set_indent_type(GeanyIndentType type)
+static void set_indent_type(GtkCheckMenuItem *menuitem, GeanyIndentType type)
{
GeanyDocument *doc;
- if (ignore_callback)
+ if (ignore_callback || ! gtk_check_menu_item_get_active(menuitem))
return;
doc = document_get_current();
@@ -2101,26 +2085,26 @@
void
-on_tabs1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_tabs1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- set_indent_type(GEANY_INDENT_TYPE_TABS);
+ set_indent_type(menuitem, GEANY_INDENT_TYPE_TABS);
}
void
-on_spaces1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_spaces1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- set_indent_type(GEANY_INDENT_TYPE_SPACES);
+ set_indent_type(menuitem, GEANY_INDENT_TYPE_SPACES);
}
void
-on_tabs_and_spaces1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
+on_tabs_and_spaces1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data)
{
- set_indent_type(GEANY_INDENT_TYPE_BOTH);
+ set_indent_type(menuitem, GEANY_INDENT_TYPE_BOTH);
}
Modified: trunk/src/callbacks.h
===================================================================
--- trunk/src/callbacks.h 2009-04-16 17:57:29 UTC (rev 3711)
+++ trunk/src/callbacks.h 2009-04-17 15:30:01 UTC (rev 3712)
@@ -74,19 +74,19 @@
void
on_close_all1_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+ gpointer user_data);
void
-on_crlf_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_crlf_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
-on_lf_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_lf_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
-on_cr_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_cr_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
on_replace_tabs_activate (GtkMenuItem *menuitem,
@@ -102,16 +102,16 @@
gpointer user_data);
void
-on_images_and_text2_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_images_and_text2_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
-on_images_only2_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_images_only2_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
-on_text_only2_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_text_only2_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
on_hide_toolbar1_activate (GtkMenuItem *menuitem,
@@ -322,12 +322,12 @@
gpointer user_data);
void
-on_toolbar_large_icons1_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_toolbar_large_icons1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
-on_toolbar_small_icons1_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_toolbar_small_icons1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
on_set_file_readonly1_toggled (GtkCheckMenuItem *checkmenuitem,
@@ -388,10 +388,6 @@
gpointer user_data);
void
-on_encoding_change (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
on_reload_as_activate (GtkMenuItem *menuitem,
gpointer user_data);
@@ -529,12 +525,12 @@
gpointer user_data);
void
-on_tabs1_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_tabs1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
-on_spaces1_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_spaces1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
@@ -580,8 +576,8 @@
gpointer user_data);
void
-on_tabs_and_spaces1_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_tabs_and_spaces1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
void
on_debug_messages1_activate (GtkMenuItem *menuitem,
gpointer user_data);
@@ -604,5 +600,5 @@
gpointer user_data);
void
-on_very_small_icons1_activate (GtkMenuItem *menuitem,
- gpointer user_data);
+on_very_small_icons1_activate (GtkCheckMenuItem *menuitem,
+ gpointer user_data);
Modified: trunk/src/encodings.c
===================================================================
--- trunk/src/encodings.c 2009-04-16 17:57:29 UTC (rev 3711)
+++ trunk/src/encodings.c 2009-04-17 15:30:01 UTC (rev 3712)
@@ -38,6 +38,7 @@
#include "utils.h"
#include "support.h"
#include "document.h"
+#include "documentprivate.h"
#include "msgwindow.h"
#include "encodings.h"
#include "callbacks.h"
@@ -301,6 +302,27 @@
#endif
+static void encodings_radio_item_change_cb(GtkCheckMenuItem *menuitem, gpointer user_data)
+{
+ GeanyDocument *doc = document_get_current();
+ guint i = GPOINTER_TO_INT(user_data);
+
+ if (ignore_callback || doc == NULL || encodings[i].charset == NULL ||
+ ! gtk_check_menu_item_get_active(menuitem) ||
+ utils_str_equal(encodings[i].charset, doc->encoding))
+ return;
+
+ if (doc->readonly)
+ {
+ utils_beep();
+ return;
+ }
+ document_undo_add(doc, UNDO_ENCODING, g_strdup(doc->encoding));
+
+ document_set_encoding(doc, encodings[i].charset);
+}
+
+
void encodings_finalize(void)
{
#ifdef HAVE_REGCOMP
@@ -342,7 +364,7 @@
/* create encodings submenu in document menu */
menu[0] = ui_lookup_widget(main_widgets.window, "set_encoding1_menu");
menu[1] = ui_lookup_widget(main_widgets.window, "menu_reload_as1_menu");
- cb_func[0] = G_CALLBACK(on_encoding_change);
+ cb_func[0] = G_CALLBACK(encodings_radio_item_change_cb);
cb_func[1] = G_CALLBACK(on_reload_as_activate);
for (k = 0; k < 2; k++)
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2009-04-16 17:57:29 UTC (rev 3711)
+++ trunk/src/filetypes.c 2009-04-17 15:30:01 UTC (rev 3712)
@@ -970,11 +970,11 @@
static void
-on_filetype_change (GtkMenuItem *menuitem,
+on_filetype_change (GtkCheckMenuItem *menuitem,
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (ignore_callback || doc == NULL)
+ if (ignore_callback || doc == NULL || ! gtk_check_menu_item_get_active(menuitem))
return;
document_set_filetype(doc, (GeanyFiletype*)user_data);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list