sdgui: make C-Page Up/Down wrap around
To mimic sdtui behaviour.
This commit is contained in:
parent
b77395b931
commit
5190601852
10
src/sdgui.c
10
src/sdgui.c
|
@ -192,15 +192,18 @@ on_key_press (G_GNUC_UNUSED GtkWidget *widget, GdkEvent *event,
|
||||||
if (accelerate_hamburger (event))
|
if (accelerate_hamburger (event))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
GtkNotebook *notebook = GTK_NOTEBOOK (g.notebook);
|
||||||
guint mods = event->key.state & gtk_accelerator_get_default_mod_mask ();
|
guint mods = event->key.state & gtk_accelerator_get_default_mod_mask ();
|
||||||
if (mods == GDK_CONTROL_MASK)
|
if (mods == GDK_CONTROL_MASK)
|
||||||
{
|
{
|
||||||
// Can't use gtk_widget_add_accelerator() to change-current-page(-1/+1)
|
// Can't use gtk_widget_add_accelerator() to change-current-page(-1/+1)
|
||||||
// because that signal has arguments, which cannot be passed.
|
// because that signal has arguments, which cannot be passed.
|
||||||
|
gint current = gtk_notebook_get_current_page (notebook);
|
||||||
if (event->key.keyval == GDK_KEY_Page_Up)
|
if (event->key.keyval == GDK_KEY_Page_Up)
|
||||||
return gtk_notebook_prev_page (GTK_NOTEBOOK (g.notebook)), TRUE;
|
return gtk_notebook_set_current_page (notebook, --current), TRUE;
|
||||||
if (event->key.keyval == GDK_KEY_Page_Down)
|
if (event->key.keyval == GDK_KEY_Page_Down)
|
||||||
return gtk_notebook_next_page (GTK_NOTEBOOK (g.notebook)), TRUE;
|
return gtk_notebook_set_current_page (notebook,
|
||||||
|
++current % gtk_notebook_get_n_pages (notebook)), TRUE;
|
||||||
}
|
}
|
||||||
if (mods == GDK_MOD1_MASK)
|
if (mods == GDK_MOD1_MASK)
|
||||||
{
|
{
|
||||||
|
@ -208,8 +211,7 @@ on_key_press (G_GNUC_UNUSED GtkWidget *widget, GdkEvent *event,
|
||||||
&& event->key.keyval <= GDK_KEY_9)
|
&& event->key.keyval <= GDK_KEY_9)
|
||||||
{
|
{
|
||||||
gint n = event->key.keyval - GDK_KEY_0;
|
gint n = event->key.keyval - GDK_KEY_0;
|
||||||
gtk_notebook_set_current_page
|
gtk_notebook_set_current_page (notebook, n ? (n - 1) : 10);
|
||||||
(GTK_NOTEBOOK (g.notebook), n ? (n - 1) : 10);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue