From d8d481373ff47bc77432b2f8d8de91afd1bd02a0 Mon Sep 17 00:00:00 2001
From: Li Yuan
Date: Thu, 27 Jan 2005 05:16:19 +0000
Subject: add an a11y name for the popup list. make shortcut key ALT+Arrow
work.
2005-01-27 Li Yuan
* e-cell-combo.c: (e_cell_combo_init), (e_cell_combo_do_popup),
(e_cell_combo_list_button_press), (e_cell_combo_button_press),
(e_cell_combo_button_release), (e_cell_combo_key_press):
add an a11y name for the popup list.
make shortcut key ALT+Arrow work.
Fixes #70261
* e-cell-text.c: (e_cell_text_class_init), (_delete_selection),
(_insert):
add "text_inserted" and "text_deleted" signals to notify the
text has been changed.
(e_cell_text_get_text_by_view):
new helper function to get the text being editted.
* e-cell-text.h:
add signal declaration.
* e-cell-toggle.c: (etog_draw):
add range check for negative values.
* e-cell-vbox.c: (e_cell_vbox_class_init):
* e-cell-vbox.h:
make ECellVboxView public since it will be used in a11y part.
* e-table-click-to-add.c: (etcta_style_set),
(create_rect_and_text), (etcta_realize), (etcta_class_init),
(e_table_click_to_add_commit):
add "style_set" signal to click_to_add and implement
the style_set function.
(etcta_init):
add a11y name to click to add.
* e-table-click-to-add.h:
add "style_set" signal to click_to_add and implement
the style_set function.
* e-table-config.c: (config_button_up), (config_button_down):
check whether the columns are empty.
* e-table-group-container.c:
* e-table-group-container.h:
make ETableGroupContainerChildNode public since it
will be used in a11y part.
* e-table-item.c: (eti_init):
init eti->cols.
(eti_event):
at GDK_KEY_PRESS event and GDK_Down key pressed, we check
view_col value before we pass it to eti_e_cell_event.
(eti_class_init):
call the new initialize function
* e-table.c: (table_canvas_focus_event_cb):
if canvas has a focused item but the etable does not
have a cursor row, just focus the first item after check
whether the click_to_add should get the focus.
svn path=/trunk/; revision=28571
---
widgets/table/e-cell-combo.c | 10 ++++++++++
1 file changed, 10 insertions(+)
(limited to 'widgets/table/e-cell-combo.c')
diff --git a/widgets/table/e-cell-combo.c b/widgets/table/e-cell-combo.c
index 5b66fba28e..3ff3488ae5 100644
--- a/widgets/table/e-cell-combo.c
+++ b/widgets/table/e-cell-combo.c
@@ -56,6 +56,7 @@
#include /* strcmp() */
#include
#include
+#include
#include "gal/util/e-util.h"
#include "gal/widgets/e-unicode.h"
#include "e-table-item.h"
@@ -135,6 +136,7 @@ static void
e_cell_combo_init (ECellCombo *ecc)
{
GtkWidget *frame;
+ AtkObject *a11y;
/* We create one popup window for the ECell, since there will only
ever be one popup in use at a time. */
@@ -167,6 +169,9 @@ e_cell_combo_init (ECellCombo *ecc)
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window)));
gtk_widget_show (ecc->popup_list);
+ a11y = gtk_widget_get_accessible (ecc->popup_list);
+ atk_object_set_name (a11y, _("popup list"));
+
g_signal_connect (ecc->popup_list,
"selection_changed",
G_CALLBACK (e_cell_combo_selection_changed),
@@ -285,6 +290,7 @@ e_cell_combo_do_popup (ECellPopup *ecp,
if (error_code != 0)
g_warning ("Failed to get pointer grab (%i)", error_code);
gtk_grab_add (ecc->popup_window);
+ gdk_keyboard_grab (ecc->popup_list->window, TRUE, time);
return TRUE;
}
@@ -516,6 +522,7 @@ e_cell_combo_list_button_press(GtkWidget *popup_list, GdkEvent *event, ECellComb
e_cell_combo_update_cell (ecc);
gtk_grab_remove (ecc->popup_window);
gdk_pointer_ungrab (event->button.time);
+ gdk_keyboard_ungrab (event->button.time);
gtk_widget_hide (ecc->popup_window);
e_cell_popup_set_shown (E_CELL_POPUP (ecc), FALSE);
@@ -555,6 +562,7 @@ e_cell_combo_button_press (GtkWidget *popup_window,
gtk_grab_remove (ecc->popup_window);
gdk_pointer_ungrab (event->button.time);
+ gdk_keyboard_ungrab (event->button.time);
gtk_widget_hide (ecc->popup_window);
e_cell_popup_set_shown (E_CELL_POPUP (ecc), FALSE);
@@ -596,6 +604,7 @@ e_cell_combo_button_release (GtkWidget *popup_window,
update the cell to reflect the new selection. */
gtk_grab_remove (ecc->popup_window);
gdk_pointer_ungrab (event->time);
+ gdk_keyboard_ungrab (event->time);
gtk_widget_hide (ecc->popup_window);
e_cell_popup_set_shown (E_CELL_POPUP (ecc), FALSE);
@@ -625,6 +634,7 @@ e_cell_combo_key_press (GtkWidget *popup_window,
gtk_grab_remove (ecc->popup_window);
gdk_pointer_ungrab (event->time);
+ gdk_keyboard_ungrab (event->time);
gtk_widget_hide (ecc->popup_window);
e_cell_popup_set_shown (E_CELL_POPUP (ecc), FALSE);
--
cgit v1.2.3