SF.net SVN: geany: [1876] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Wed Sep 12 16:01:23 UTC 2007


Revision: 1876
          http://geany.svn.sourceforge.net/geany/?rev=1876&view=rev
Author:   ntrel
Date:     2007-09-12 09:01:23 -0700 (Wed, 12 Sep 2007)

Log Message:
-----------
Make Toggle Case use the current word if there's no selection.
Make Toggle Case keep an existing selection.
Rename ui_widgets.popup_items to popup_copy_items.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/callbacks.c
    trunk/src/main.c
    trunk/src/ui_utils.c
    trunk/src/ui_utils.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-09-12 12:08:07 UTC (rev 1875)
+++ trunk/ChangeLog	2007-09-12 16:01:23 UTC (rev 1876)
@@ -11,6 +11,10 @@
    doc/geany.html:
    Allow autocompletion on a line with trailing whitespace.
    Add auto_complete_whilst_editing hidden preference.
+ * src/ui_utils.h, src/callbacks.c, src/main.c, src/ui_utils.c:
+   Make Toggle Case use the current word if there's no selection.
+   Make Toggle Case keep an existing selection.
+   Rename ui_widgets.popup_items to popup_copy_items.
 
 
 2007-09-11  Enrico Tröger  <enrico.troeger at uvena.de>

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2007-09-12 12:08:07 UTC (rev 1875)
+++ trunk/src/callbacks.c	2007-09-12 16:01:23 UTC (rev 1876)
@@ -888,32 +888,42 @@
 }
 
 
-void
-on_toggle_case1_activate             (GtkMenuItem     *menuitem,
-                                        gpointer         user_data)
+void on_toggle_case1_activate(GtkMenuItem *menuitem, gpointer user_data)
 {
 	gint idx = document_get_cur_idx();
+	ScintillaObject *sci = doc_list[idx].sci;
 	gchar *text;
+	gboolean keep_sel = TRUE;
 
 	if (! DOC_IDX_VALID(idx))
 		return;
 
-	if (sci_can_copy(doc_list[idx].sci))
+	if (! sci_can_copy(sci))
 	{
+		keybindings_cmd(GEANY_KEYS_EDIT_SELECTWORD);
+		keep_sel = FALSE;
+	}
+
+	if (sci_can_copy(sci))
+	{
 		gchar *result;
+		gint text_len = sci_get_selected_text_length(sci);
 
-		text = g_malloc(sci_get_selected_text_length(doc_list[idx].sci) + 1);
-		sci_get_selected_text(doc_list[idx].sci, text);
+		text = g_malloc(text_len + 1);
+		sci_get_selected_text(sci, text);
 
 		if (utils_str_has_upper(text))
 			result = g_utf8_strdown(text, -1);
 		else
 			result = g_utf8_strup(text, -1);
 
-		sci_replace_sel(doc_list[idx].sci, result);
+		sci_replace_sel(sci, result);
 
 		g_free(result);
 		g_free(text);
+
+		if (keep_sel)
+			sci_set_selection_start(sci, sci_get_current_position(sci) - text_len + 1);
 	}
 }
 

Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c	2007-09-12 12:08:07 UTC (rev 1875)
+++ trunk/src/main.c	2007-09-12 16:01:23 UTC (rev 1876)
@@ -297,14 +297,12 @@
 	ui_widgets.popup_goto_items[0] = lookup_widget(app->popup_menu, "goto_tag_definition1");
 	ui_widgets.popup_goto_items[1] = lookup_widget(app->popup_menu, "goto_tag_declaration1");
 	ui_widgets.popup_goto_items[2] = lookup_widget(app->popup_menu, "find_usage1");
-	ui_widgets.popup_items[0] = lookup_widget(app->popup_menu, "cut1");
-	ui_widgets.popup_items[1] = lookup_widget(app->popup_menu, "copy1");
-	ui_widgets.popup_items[2] = lookup_widget(app->popup_menu, "delete1");
-	ui_widgets.popup_items[3] = lookup_widget(app->popup_menu, "toggle_case1");
+	ui_widgets.popup_copy_items[0] = lookup_widget(app->popup_menu, "cut1");
+	ui_widgets.popup_copy_items[1] = lookup_widget(app->popup_menu, "copy1");
+	ui_widgets.popup_copy_items[2] = lookup_widget(app->popup_menu, "delete1");
 	ui_widgets.menu_copy_items[0] = lookup_widget(app->window, "menu_cut1");
 	ui_widgets.menu_copy_items[1] = lookup_widget(app->window, "menu_copy1");
 	ui_widgets.menu_copy_items[2] = lookup_widget(app->window, "menu_delete1");
-	ui_widgets.menu_copy_items[3] = lookup_widget(app->window, "menu_toggle_case2");
 	ui_widgets.menu_insert_include_items[0] = lookup_widget(app->popup_menu, "insert_include1");
 	ui_widgets.menu_insert_include_items[1] = lookup_widget(app->window, "insert_include2");
 	ui_widgets.save_buttons[0] = lookup_widget(app->window, "menu_save1");

Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c	2007-09-12 12:08:07 UTC (rev 1875)
+++ trunk/src/ui_utils.c	2007-09-12 16:01:23 UTC (rev 1876)
@@ -290,8 +290,8 @@
 	if (idx == -1) enable = FALSE;
 	else enable = sci_can_copy(doc_list[idx].sci);
 
-	for(i = 0; i < (sizeof(ui_widgets.popup_items)/sizeof(GtkWidget*)); i++)
-		gtk_widget_set_sensitive(ui_widgets.popup_items[i], enable);
+	for(i = 0; i < (sizeof(ui_widgets.popup_copy_items)/sizeof(GtkWidget*)); i++)
+		gtk_widget_set_sensitive(ui_widgets.popup_copy_items[i], enable);
 }
 
 

Modified: trunk/src/ui_utils.h
===================================================================
--- trunk/src/ui_utils.h	2007-09-12 12:08:07 UTC (rev 1875)
+++ trunk/src/ui_utils.h	2007-09-12 16:01:23 UTC (rev 1876)
@@ -54,8 +54,8 @@
 	GtkWidget	*recent_files_toolbar;
 	GtkWidget	*menu_insert_include_items[2];
 	GtkWidget	*popup_goto_items[3];
-	GtkWidget	*popup_items[4];
-	GtkWidget	*menu_copy_items[4];
+	GtkWidget	*popup_copy_items[3];
+	GtkWidget	*menu_copy_items[3];
 	GtkWidget	*redo_items[3];
 	GtkWidget	*undo_items[3];
 	GtkWidget	*save_buttons[4];


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