ocarina: Use g_signal_connect() for the window
I was using connect_after(), but somewhere along the line the space bar was getting lost. Instead, I only connect the number keys using g_signal_connect_after() so treeview shortcuts continue to work. Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
parent
14c35e5810
commit
b977832f3c
|
@ -78,7 +78,7 @@ static void window_state(GtkWidget *widget, GdkEvent *event, gpointer data)
|
|||
static gboolean key_pressed(GtkWidget *widget, GdkEvent *event, gpointer data)
|
||||
{
|
||||
string key = gdk_keyval_name(event->key.keyval);
|
||||
println("Window handling key press");
|
||||
println("Window handling key press (1)");
|
||||
|
||||
if (key == "l" || key == "L")
|
||||
ocarina::playlist::switch_to_library();
|
||||
|
@ -88,12 +88,7 @@ static gboolean key_pressed(GtkWidget *widget, GdkEvent *event, gpointer data)
|
|||
libsaria::stack::next();
|
||||
else if (key == "p" || key == "P")
|
||||
libsaria::stack::prev();
|
||||
else if (key >= "0" && key <= "9") {
|
||||
unsigned int k;
|
||||
stringstream s(key);
|
||||
s >> k;
|
||||
ocarina::playlist::switch_to_plist(k);
|
||||
} else if (key == "space")
|
||||
else if (key == "space")
|
||||
libsaria::audio::toggle_play();
|
||||
else if (key == "Escape")
|
||||
gtk_widget_grab_focus(win);
|
||||
|
@ -102,6 +97,22 @@ static gboolean key_pressed(GtkWidget *widget, GdkEvent *event, gpointer data)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static gboolean key_pressed_after(GtkWidget *widget, GdkEvent *event, gpointer data)
|
||||
{
|
||||
string key = gdk_keyval_name(event->key.keyval);
|
||||
println("Window handling key press (2)");
|
||||
|
||||
if (key >= "0" && key <= "9") {
|
||||
unsigned int k;
|
||||
stringstream s(key);
|
||||
s >> k;
|
||||
ocarina::playlist::switch_to_plist(k);
|
||||
} else
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
void window_resize(int w, int h)
|
||||
{
|
||||
|
@ -139,7 +150,8 @@ namespace ocarina
|
|||
g_signal_connect(win, "destroy", G_CALLBACK(destroy), NULL);
|
||||
g_signal_connect(win, "configure-event", G_CALLBACK(configure), NULL);
|
||||
g_signal_connect(win, "window-state-event", G_CALLBACK(window_state), NULL);
|
||||
g_signal_connect_after(win, "key-press-event", G_CALLBACK(key_pressed), NULL);
|
||||
g_signal_connect(win, "key-press-event", G_CALLBACK(key_pressed), NULL);
|
||||
g_signal_connect_after(win, "key-press-event", G_CALLBACK(key_pressed_after), NULL);
|
||||
|
||||
set_title("Ocarina " + vers_str());
|
||||
set_icon(full_path("images/ocarina.png"));
|
||||
|
|
Loading…
Reference in New Issue