mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
Before emitting "text_caret_moved", change the cursor to the changed
2008-06-06 Li Yuan <li.yuan@sun.com> * gail/gaillabel.c: (gail_label_real_notify_gtk): Before emitting "text_caret_moved", change the cursor to the changed bound. Bug #536927. svn path=/trunk/; revision=20322
This commit is contained in:
parent
92c24e41b9
commit
277d1744f6
@ -1,3 +1,9 @@
|
||||
2008-06-06 Li Yuan <li.yuan@sun.com>
|
||||
|
||||
* gail/gaillabel.c: (gail_label_real_notify_gtk):
|
||||
Before emitting "text_caret_moved", change the cursor to the
|
||||
changed bound. Bug #536927.
|
||||
|
||||
2008-05-30 Michael Natterer <mitch@imendio.com>
|
||||
|
||||
* gailcellparent.h
|
||||
|
@ -325,23 +325,35 @@ gail_label_real_notify_gtk (GObject *obj,
|
||||
}
|
||||
else if (strcmp (pspec->name, "cursor-position") == 0)
|
||||
{
|
||||
gint start, end;
|
||||
gint start, end, tmp;
|
||||
gboolean text_caret_moved = FALSE;
|
||||
gboolean selection_changed = FALSE;
|
||||
gboolean is_start = TRUE;
|
||||
|
||||
gail_obj = G_OBJECT (atk_obj);
|
||||
label = GTK_LABEL (widget);
|
||||
|
||||
if (gail_label->selection_bound != -1 && gail_label->selection_bound < gail_label->cursor_position)
|
||||
{
|
||||
tmp = gail_label->selection_bound;
|
||||
gail_label->selection_bound = gail_label->cursor_position;
|
||||
gail_label->cursor_position = tmp;
|
||||
}
|
||||
|
||||
if (gtk_label_get_selection_bounds (label, &start, &end))
|
||||
{
|
||||
if (start != gail_label->cursor_position ||
|
||||
end != gail_label->selection_bound)
|
||||
{
|
||||
if (end != gail_label->selection_bound)
|
||||
is_start = FALSE;
|
||||
gail_label->selection_bound = end;
|
||||
gail_label->cursor_position = start;
|
||||
{
|
||||
gail_label->selection_bound = start;
|
||||
gail_label->cursor_position = end;
|
||||
}
|
||||
else
|
||||
{
|
||||
gail_label->selection_bound = end;
|
||||
gail_label->cursor_position = start;
|
||||
}
|
||||
text_caret_moved = TRUE;
|
||||
if (start != end)
|
||||
selection_changed = TRUE;
|
||||
@ -358,10 +370,14 @@ gail_label_real_notify_gtk (GObject *obj,
|
||||
if (gail_label->selection_bound != -1 && end != gail_label->selection_bound)
|
||||
{
|
||||
text_caret_moved = TRUE;
|
||||
is_start = FALSE;
|
||||
gail_label->cursor_position = end;
|
||||
gail_label->selection_bound = start;
|
||||
}
|
||||
else
|
||||
{
|
||||
gail_label->cursor_position = start;
|
||||
gail_label->selection_bound = end;
|
||||
}
|
||||
gail_label->cursor_position = start;
|
||||
gail_label->selection_bound = end;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -375,7 +391,7 @@ gail_label_real_notify_gtk (GObject *obj,
|
||||
}
|
||||
if (text_caret_moved)
|
||||
g_signal_emit_by_name (gail_obj, "text_caret_moved",
|
||||
is_start ? gail_label->cursor_position : gail_label->selection_bound);
|
||||
gail_label->cursor_position);
|
||||
if (selection_changed)
|
||||
g_signal_emit_by_name (gail_obj, "text_selection_changed");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user