Patch from Alejandro Piñeiro Iglesias <apinheiro@igalia.com>. Bug

2008-04-02  Li Yuan  <li.yuan@.sun.com>

        * gailbutton.c: (idle_do_action):
        Patch from Alejandro Piñeiro Iglesias <apinheiro@igalia.com>.
        Bug #496167. Synthesize press and release GdkEvent in button's click
        action.

svn path=/trunk/; revision=19958
This commit is contained in:
Li Yuan 2008-04-02 08:29:31 +00:00 committed by Li Yuan
parent 6716dc6f76
commit d33b599ac7
2 changed files with 29 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2008-04-02 Li Yuan <li.yuan@.sun.com>
* gailbutton.c: (idle_do_action):
Patch from Alejandro Piñeiro Iglesias <apinheiro@igalia.com>.
Bug #496167. Synthesize press and release GdkEvent in button's click
action.
2008-03-31 Li Yuan <li.yuan@sun.com>
* gailbutton.c: (gail_button_ref_state_set):

View File

@ -522,7 +522,28 @@ idle_do_action (gpointer data)
switch (action_number)
{
case 0:
gtk_widget_activate (widget);
/* first a press */
button->in_button = TRUE;
gtk_button_enter (button);
/*
* Simulate a button press event. calling gtk_button_pressed() does
* not get the job done for a GtkOptionMenu.
*/
tmp_event.button.type = GDK_BUTTON_PRESS;
tmp_event.button.window = widget->window;
tmp_event.button.button = 1;
tmp_event.button.send_event = TRUE;
tmp_event.button.time = GDK_CURRENT_TIME;
tmp_event.button.axes = NULL;
gtk_widget_event (widget, &tmp_event);
/* then a release */
tmp_event.button.type = GDK_BUTTON_RELEASE;
gtk_widget_event (widget, &tmp_event);
button->in_button = FALSE;
gtk_button_leave (button);
break;
case 1:
button->in_button = TRUE;