Bug#873857: 'Screenshot' option of Graphical installer not accessible through keyboard
Control: reassign -1 cdebconf
Control: tags -1 + patch
Holger Wansing <linux@wansing-online.de> wrote:
> Kaartic Sivaraam <kaarticsivaraam91196@gmail.com> wrote:
> >
> > I recently tried to install Debian 9 using the graphical installer. Due
> > to some unknown reason my mouse did not work in the graphical
> > installer. It wasn't a big deal as I could manage well just with my
> > keyboard BUT I was unable to capture a screen shot of an error as the
> > option for taking screen shot wasn't accessible through the keyboard
> > like the 'Continue' and 'Back' options. It would be nice to make it
> > accessible through the keyboard as it would be helpful in situations
> > like this.
>
> Thanks for your mail.
> This has already been reported in
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=873857
>
> And it turns out that this bug already exists from the very beginning in
> Debian 4.0, where the graphical installer was introduced ...
I have prepared a patch to fix this (attached) against cdebconf.
(I built a netboot gtk image with this patch, and confirmed it works.)
Thus, re-assigning to cdebconf and tagging as 'patch'.
Maybe we could have this included for Buster?
IMO it's unconventional behaviour to have a button which is skipped when
TAB-bing through the buttons. And it makes the screenshot button unavailable
when using the graphical installer without a mouse.
(Some touchpads don't work with d-i, and if you don't have an usb mouse
at hand, you may end up with using the g-i without mouse functionality).
Holger
--
Holger Wansing <hwansing@mailbox.org>
PGP-Finterprint: 496A C6E8 1442 4B34 8508 3529 59F1 87CA 156E B076
diff --git a/src/modules/frontend/gtk/screenshot.c b/src/modules/frontend/gtk/screenshot.c
index 24bc3dcc..1c854f76 100644
--- a/src/modules/frontend/gtk/screenshot.c
+++ b/src/modules/frontend/gtk/screenshot.c
@@ -183,6 +183,7 @@ GtkWidget * cdebconf_gtk_create_screenshot_button(struct frontend * fe)
{
struct frontend_data * fe_data = fe->data;
GtkWidget * action_box = fe_data->action_box;
+ GList * focus_chain;
GtkWidget * button;
char * label;
@@ -199,8 +200,10 @@ GtkWidget * cdebconf_gtk_create_screenshot_button(struct frontend * fe)
TRUE /* expand */, TRUE /* fill */, DEFAULT_PADDING);
gtk_button_box_set_child_secondary(GTK_BUTTON_BOX(action_box),
button, TRUE);
- /* Remove the screenshot button from the focus chain. */
- gtk_container_set_focus_chain(GTK_CONTAINER(action_box), NULL);
+ gtk_container_get_focus_chain(GTK_CONTAINER(action_box), &focus_chain);
+ focus_chain = g_list_prepend(focus_chain, button);
+ gtk_container_set_focus_chain(GTK_CONTAINER(action_box), focus_chain);
+ g_list_free(focus_chain);
return button;
}
Reply to: