anjuta r3684 - in trunk: . plugins/sourceview
- From: jhs svn gnome org
- To: svn-commits-list gnome org
- Subject: anjuta r3684 - in trunk: . plugins/sourceview
- Date: Sun, 17 Feb 2008 14:57:58 +0000 (GMT)
Author: jhs
Date: Sun Feb 17 14:57:58 2008
New Revision: 3684
URL: http://svn.gnome.org/viewvc/anjuta?rev=3684&view=rev
Log:
2008-02-17 Johannes Schmid <jhs gnome org>
* plugins/sourceview/anjuta-view.c: (anjuta_view_key_press_event):
* plugins/sourceview/sourceview-cell.c: (icell_get_character),
(icell_get_char):
* plugins/sourceview/sourceview.c: (on_insert_text):
Fix \"char-added\" signal to pass the correct iterator
Modified:
trunk/ChangeLog
trunk/plugins/sourceview/anjuta-view.c
trunk/plugins/sourceview/sourceview-cell.c
trunk/plugins/sourceview/sourceview.c
Modified: trunk/plugins/sourceview/anjuta-view.c
==============================================================================
--- trunk/plugins/sourceview/anjuta-view.c (original)
+++ trunk/plugins/sourceview/anjuta-view.c Sun Feb 17 14:57:58 2008
@@ -729,6 +729,7 @@
GtkTextBuffer *buffer;
AnjutaView* view = ANJUTA_VIEW(widget);
AssistWindow* assist_win;
+ AssistTip* assist_tip;
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
@@ -741,6 +742,15 @@
return TRUE;
}
}
+ assist_tip = view->priv->sv->priv->assist_tip;
+ if (assist_tip)
+ {
+ if (event->keyval == GDK_Escape)
+ {
+ gtk_widget_destroy (GTK_WIDGET(view->priv->sv->priv->assist_tip));
+ return TRUE;
+ }
+ }
return (* GTK_WIDGET_CLASS (anjuta_view_parent_class)->key_press_event)(widget, event);
}
Modified: trunk/plugins/sourceview/sourceview-cell.c
==============================================================================
--- trunk/plugins/sourceview/sourceview-cell.c (original)
+++ trunk/plugins/sourceview/sourceview-cell.c Sun Feb 17 14:57:58 2008
@@ -99,11 +99,10 @@
icell_get_character(IAnjutaEditorCell* icell, GError** e)
{
SourceviewCell* cell = SOURCEVIEW_CELL(icell);
- GtkTextIter* clone = gtk_text_iter_copy (cell->priv->iter);
- gchar* text = NULL;
- if (gtk_text_iter_forward_char (clone))
- text = gtk_text_iter_get_text (cell->priv->iter, clone);
- return text;
+ gunichar c = gtk_text_iter_get_char (cell->priv->iter);
+ gchar* outbuf = g_new0(gchar, 6);
+ g_unichar_to_utf8 (c, outbuf);
+ return outbuf;
}
static gint
@@ -120,12 +119,17 @@
static gchar
icell_get_char(IAnjutaEditorCell* icell, gint index, GError** e)
{
- gchar ch = '\0';
- gchar* utf8 = icell_get_character(icell, NULL);
- if (utf8 && (index == 0 || (strlen (utf8) > index)))
- ch = utf8[index];
- g_free(utf8);
- return ch;
+ SourceviewCell* cell = SOURCEVIEW_CELL(icell);
+ gunichar c = gtk_text_iter_get_char (cell->priv->iter);
+ gchar* outbuf = g_new0(gchar, 6);
+ gint len = g_unichar_to_utf8 (c, outbuf);
+ gchar retval;
+ if (index < len)
+ retval = outbuf[index];
+ else
+ retval = 0;
+ g_free (outbuf);
+ return retval;
}
static IAnjutaEditorAttribute
Modified: trunk/plugins/sourceview/sourceview.c
==============================================================================
--- trunk/plugins/sourceview/sourceview.c (original)
+++ trunk/plugins/sourceview/sourceview.c Sun Feb 17 14:57:58 2008
@@ -129,6 +129,7 @@
return;
else
{
+ gtk_text_iter_backward_char (location);
SourceviewCell* cell = sourceview_cell_new (location,
GTK_TEXT_VIEW(sv->priv->view));
g_signal_emit_by_name(G_OBJECT(sv), "char_added", cell, text[0]);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]