Revision: 789 http://svn.sourceforge.net/geany/?rev=789&view=rev Author: ntrel Date: 2006-09-04 08:57:46 -0700 (Mon, 04 Sep 2006)
Log Message: ----------- Move current_word and clickpos to editor_info struct in sci_cb.c. Move on_editor_button_press_event to sci_cb.c.
Modified Paths: -------------- trunk/ChangeLog trunk/src/callbacks.c trunk/src/callbacks.h trunk/src/document.c trunk/src/keybindings.c trunk/src/sci_cb.c trunk/src/sci_cb.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-09-04 13:44:15 UTC (rev 788) +++ trunk/ChangeLog 2006-09-04 15:57:46 UTC (rev 789) @@ -6,6 +6,10 @@ Only save session when session files were loaded at startup. * doc/geany.docbook: Update command-line options and running instance behaviour. + * src/callbacks.c, src/callbacks.h, src/sci_cb.c, src/sci_cb.h, + src/keybindings.c, src/document.c: + Move current_word and clickpos to editor_info struct in sci_cb.c. + Move on_editor_button_press_event to sci_cb.c.
2006-09-03 Nick Treleaven nick.treleaven@btinternet.com
Modified: trunk/src/callbacks.c =================================================================== --- trunk/src/callbacks.c 2006-09-04 13:44:15 UTC (rev 788) +++ trunk/src/callbacks.c 2006-09-04 15:57:46 UTC (rev 789) @@ -60,9 +60,6 @@ #endif
-// represents the word under the mouse pointer when right button(no. 3) is pressed -gchar current_word[GEANY_MAX_WORD_LENGTH]; - // represents the state while closing all tabs(used to prevent notebook switch page signals) static gboolean closing_all = FALSE;
@@ -74,11 +71,7 @@ // the selection-changed signal from tv.tree_openfiles //static gboolean switch_tv_notebook_page = FALSE;
-// holds the current position where the mouse pointer is when the popup menu for the scintilla -// scintilla widget is shown -static gint clickpos;
- // real exit function gint destroyapp(GtkWidget *widget, gpointer gdata) { @@ -1009,37 +1002,6 @@ }
-// calls the edit popup menu in the editor -gboolean -on_editor_button_press_event (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - gint idx = GPOINTER_TO_INT(user_data); - clickpos = sci_get_position_from_xy(doc_list[idx].sci, event->x, event->y, FALSE); - -#ifndef G_OS_WIN32 - if (event->button == 1) - { - return utils_check_disk_status(idx); - } -#endif - - if (event->button == 3) - { - sci_cb_find_current_word(doc_list[idx].sci, clickpos, current_word, sizeof current_word); - - utils_update_popup_goto_items((current_word[0] != '\0') ? TRUE : FALSE); - utils_update_popup_copy_items(idx); - utils_update_insert_include_item(idx, 0); - gtk_menu_popup(GTK_MENU(app->popup_menu), NULL, NULL, NULL, NULL, event->button, event->time); - - return TRUE; - } - return FALSE; -} - - void on_crlf_activate (GtkMenuItem *menuitem, gpointer user_data) @@ -1314,7 +1276,7 @@ } else { - search_text = g_strdup(current_word); + search_text = g_strdup(editor_info.current_word); flags = SCFIND_MATCHCASE | SCFIND_WHOLEWORD; }
@@ -1383,7 +1345,7 @@ type); if (tags == NULL) continue;
- tmtag = utils_find_tm_tag(tags, current_word); + tmtag = utils_find_tm_tag(tags, editor_info.current_word); if (tmtag != NULL) { if (! utils_goto_file_line( @@ -1396,9 +1358,9 @@ // if we are here, there was no match and we are beeping ;-) utils_beep(); if (type == tm_tag_prototype_t) - msgwin_status_add(_("Declaration of "%s()" not found"), current_word); + msgwin_status_add(_("Declaration of "%s()" not found"), editor_info.current_word); else - msgwin_status_add(_("Definition of "%s()" not found"), current_word); + msgwin_status_add(_("Definition of "%s()" not found"), editor_info.current_word); }
@@ -2074,7 +2036,7 @@ } }
- sci_insert_text(doc_list[idx].sci, clickpos, text); + sci_insert_text(doc_list[idx].sci, editor_info.click_pos, text); g_free(text); }
@@ -2114,7 +2076,7 @@ } }
- sci_insert_text(doc_list[idx].sci, clickpos, text); + sci_insert_text(doc_list[idx].sci, editor_info.click_pos, text); g_free(text); }
@@ -2249,7 +2211,7 @@ if (strftime(time_str, sizeof time_str, format, tm) != 0) { /// FIXME inserts at wrong position if not clicked and the cursor was moved by keyboard - sci_insert_text(doc_list[idx].sci, clickpos, time_str); + sci_insert_text(doc_list[idx].sci, editor_info.click_pos, time_str); } else { @@ -2270,7 +2232,7 @@ if (utils_strcmp(user_data, "blank")) { text = g_strdup("#include ""\n"); - pos = clickpos + 10; + pos = editor_info.click_pos + 10; } else { @@ -2278,7 +2240,7 @@ }
/// FIXME inserts at wrong position if not clicked and the cursor was moved by keyboard - sci_insert_text(doc_list[idx].sci, clickpos, text); + sci_insert_text(doc_list[idx].sci, editor_info.click_pos, text); g_free(text); if (pos > 0) sci_goto_pos(doc_list[idx].sci, pos, FALSE); }
Modified: trunk/src/callbacks.h =================================================================== --- trunk/src/callbacks.h 2006-09-04 13:44:15 UTC (rev 788) +++ trunk/src/callbacks.h 2006-09-04 15:57:46 UTC (rev 789) @@ -20,8 +20,6 @@ * $Id$ */
-extern gchar current_word[]; //needed for popup menu keybindings access - gint destroyapp (GtkWidget *widget, gpointer gdata);
@@ -133,11 +131,6 @@ gpointer user_data);
gboolean -on_editor_button_press_event (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data); - -gboolean on_tree_view_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data);
Modified: trunk/src/document.c =================================================================== --- trunk/src/document.c 2006-09-04 13:44:15 UTC (rev 788) +++ trunk/src/document.c 2006-09-04 15:57:46 UTC (rev 789) @@ -44,7 +44,6 @@ #include <stdlib.h>
#include "document.h" -#include "callbacks.h" #include "support.h" #include "sciwrappers.h" #include "sci_cb.h"
Modified: trunk/src/keybindings.c =================================================================== --- trunk/src/keybindings.c 2006-09-04 13:44:15 UTC (rev 788) +++ trunk/src/keybindings.c 2006-09-04 15:57:46 UTC (rev 789) @@ -633,9 +633,10 @@
pos = sci_get_current_position(doc_list[idx].sci);
- sci_cb_find_current_word(doc_list[idx].sci, pos, current_word, GEANY_MAX_WORD_LENGTH); + sci_cb_find_current_word(doc_list[idx].sci, pos, + editor_info.current_word, GEANY_MAX_WORD_LENGTH);
- if (*current_word == 0) + if (*editor_info.current_word == 0) utils_beep(); else switch (menuitemkey)
Modified: trunk/src/sci_cb.c =================================================================== --- trunk/src/sci_cb.c 2006-09-04 13:44:15 UTC (rev 788) +++ trunk/src/sci_cb.c 2006-09-04 15:57:46 UTC (rev 789) @@ -33,6 +33,10 @@ #include "utils.h" #include "main.h"
+static gchar current_word[GEANY_MAX_WORD_LENGTH]; // holds word under the mouse or keyboard cursor + +EditorInfo editor_info = {current_word, -1}; + static struct { gchar *text; @@ -45,6 +49,38 @@ static void on_new_line_added(ScintillaObject *sci, gint idx);
+// calls the edit popup menu in the editor +gboolean +on_editor_button_press_event (GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) +{ + gint idx = GPOINTER_TO_INT(user_data); + editor_info.click_pos = sci_get_position_from_xy(doc_list[idx].sci, event->x, event->y, FALSE); + +#ifndef G_OS_WIN32 + if (event->button == 1) + { + return utils_check_disk_status(idx); + } +#endif + + if (event->button == 3) + { + sci_cb_find_current_word(doc_list[idx].sci, editor_info.click_pos, + current_word, sizeof current_word); + + utils_update_popup_goto_items((current_word[0] != '\0') ? TRUE : FALSE); + utils_update_popup_copy_items(idx); + utils_update_insert_include_item(idx, 0); + gtk_menu_popup(GTK_MENU(app->popup_menu), NULL, NULL, NULL, NULL, event->button, event->time); + + return TRUE; + } + return FALSE; +} + + // callback func called by all editors when a signal arises void on_editor_notification(GtkWidget *editor, gint scn, gpointer lscn, gpointer user_data) {
Modified: trunk/src/sci_cb.h =================================================================== --- trunk/src/sci_cb.h 2006-09-04 13:44:15 UTC (rev 788) +++ trunk/src/sci_cb.h 2006-09-04 15:57:46 UTC (rev 789) @@ -32,9 +32,22 @@ #define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
+typedef struct +{ + gchar *current_word; // holds word under the mouse or keyboard cursor + gint click_pos; // text position where the mouse was clicked +} EditorInfo; + +extern EditorInfo editor_info; + gchar **html_entities;
+gboolean +on_editor_button_press_event (GtkWidget *widget, + GdkEventButton *event, + gpointer user_data); + // callback func called by all editors when a signal arises void on_editor_notification(GtkWidget* editor, gint scn, gpointer lscn, gpointer user_data);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.