[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: G-I - Test results for mini.iso based on 2.8.18 libs



Frans Pop wrote:
On Monday 03 July 2006 23:21, Attilio Fiandrotti wrote:

Nothing wrong, that's the correct behaviour of GTK+ applications : in
SVN rev 38009 i set reactivity to <ENTER> and <SPACEBAR> and double
clicks as pressure on "OK" button for the handler of SELECT questions
only, while MULTISELECT (and SELECT questions which are displayed like
trees) weren't affected : tomorrow i'll investigate about how to fix
this.


IMHO the "correct" GTK behavior is broken then...
I'd personally prefer to have the frontend behave like the newt frontend in this respect, but I guess that is something to discuss with the team.

I'd certainly appreciate it if you would not change such behavior without discussing it first on the list.

regarding single MULTISELECT questions, the simple (one line) attached patch makes the question handler behave like this

-If a checkbox inside a row has focus (small circle around it with many common GTK themes of GTK default theme) <ENTER> or <SPACE> key pressure toggles the check and, to go forward, the user has to TAB until the "OK" button receives the focus and then he can use <ENTER> or <SPACE> to activate it.

-If no checkbox has focus, then an <ENTER> or <SPACE> key pressure activates the "OK" buton while no check is toggled.

When a MULTISELECT question is first displayed, the iterator is placed at the first row and no check has focus, so that if the user presses <ENTER> or <SPACE> the "OK" button is activated.

When user presses <UP> or <DOWN>, the checkbox in the line over / below the currently active one gets focus.

In any case, a double click on a row (outside checkboxes) makes the "OK" button to be activated.

cheers

Attilio
Index: gtk.c
===================================================================
--- gtk.c       (revisione 38698)
+++ gtk.c       (copia locale)
@@ -751,6 +751,7 @@
     data->treemodel = model;
     g_signal_connect(G_OBJECT(renderer_check), "toggled", G_CALLBACK(multiselect_single_callback), data);
     g_signal_connect (G_OBJECT(view), "destroy", G_CALLBACK (free_treemodel_data), data);
+    g_signal_connect (G_OBJECT(view), "row-activated", G_CALLBACK (select_onRowActivated), (struct frontend_data *) obj->data);
     g_object_unref (model);

     for (i = 0; i < count; i++)

Reply to: