summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-11-18 21:13:38 +0100
committerGravatar waker <wakeroid@gmail.com>2012-11-18 21:13:38 +0100
commit2a3845d0b8a9a8d0d08cc1c17699ee8cf7a702ee (patch)
tree15da6b335070dccb03f87a3d98d053f70c92e006
parentce61239ec9771efb95790bbbb349ecfdf21f1ac9 (diff)
gtkui: fixed play and pause hotkeys; removed button accelerators from toolbar
-rw-r--r--plugins/gtkui/deadbeef.glade9
-rw-r--r--plugins/gtkui/gtkui.c4
-rw-r--r--plugins/gtkui/interface.c30
-rw-r--r--plugins/hotkeys/hotkeys.c29
4 files changed, 32 insertions, 40 deletions
diff --git a/plugins/gtkui/deadbeef.glade b/plugins/gtkui/deadbeef.glade
index cc9747a7..1eb07f49 100644
--- a/plugins/gtkui/deadbeef.glade
+++ b/plugins/gtkui/deadbeef.glade
@@ -761,7 +761,6 @@
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_stopbtn_clicked" last_modification_time="Sun, 05 Jul 2009 10:48:41 GMT"/>
- <accelerator key="v" modifiers="0" signal="activate"/>
<child>
<widget class="GtkImage" id="image128">
@@ -788,9 +787,6 @@
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_playbtn_clicked" last_modification_time="Sun, 05 Jul 2009 10:48:53 GMT"/>
- <accelerator key="x" modifiers="0" signal="activate"/>
- <accelerator key="Return" modifiers="0" signal="activate"/>
- <accelerator key="KP_Enter" modifiers="0" signal="activate"/>
<child>
<widget class="GtkImage" id="image2">
@@ -817,8 +813,6 @@
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_pausebtn_clicked" last_modification_time="Sun, 05 Jul 2009 10:49:01 GMT"/>
- <accelerator key="c" modifiers="0" signal="activate"/>
- <accelerator key="p" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child>
<widget class="GtkImage" id="image3">
@@ -845,7 +839,6 @@
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_prevbtn_clicked" last_modification_time="Sun, 05 Jul 2009 10:49:08 GMT"/>
- <accelerator key="z" modifiers="0" signal="activate"/>
<child>
<widget class="GtkImage" id="image4">
@@ -872,7 +865,6 @@
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_nextbtn_clicked" last_modification_time="Sun, 05 Jul 2009 10:49:12 GMT"/>
- <accelerator key="b" modifiers="0" signal="activate"/>
<child>
<widget class="GtkImage" id="image5">
@@ -4988,7 +4980,6 @@ SOCKS5_HOSTNAME</property>
<widget class="GtkVPaned" id="vpaned1">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="position">0</property>
<child>
<widget class="GtkVBox" id="vbox36">
diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c
index 742cc1e5..fb8d7979 100644
--- a/plugins/gtkui/gtkui.c
+++ b/plugins/gtkui/gtkui.c
@@ -1077,6 +1077,10 @@ gtkui_thread (void *ctx) {
deadbeef->conf_set_str ("hotkey.key9", "\"F1\" 0 0 help");
deadbeef->conf_set_str ("hotkey.key10", "\"Delete\" 1 0 remove_from_playlist");
deadbeef->conf_set_str ("hotkey.key11", "\"Ctrl w\" 0 0 remove_current_playlist");
+ deadbeef->conf_set_str ("hotkey.key11", "\"Ctrl w\" 0 0 remove_current_playlist");
+ deadbeef->conf_set_str ("hotkey.key11", "\"Ctrl w\" 0 0 remove_current_playlist");
+ deadbeef->conf_set_str ("hotkey.key14", "\"Return\" 0 0 play");
+ deadbeef->conf_set_str ("hotkey.key15", "\"Ctrl p\" 0 0 toggle_pause");
}
// construct mainwindow widgets
diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c
index f144c704..95268ed4 100644
--- a/plugins/gtkui/interface.c
+++ b/plugins/gtkui/interface.c
@@ -129,9 +129,6 @@ create_mainwin (void)
GtkWidget *volumebar;
GtkWidget *plugins_bottom_vbox;
GtkWidget *statusbar;
- GtkAccelGroup *accel_group;
-
- accel_group = gtk_accel_group_new ();
mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_events (mainwin, GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK);
@@ -487,9 +484,6 @@ create_mainwin (void)
gtk_widget_show (stopbtn);
gtk_box_pack_start (GTK_BOX (hbox3), stopbtn, FALSE, FALSE, 0);
gtk_widget_set_can_focus(stopbtn, FALSE);
- gtk_widget_add_accelerator (stopbtn, "activate", accel_group,
- GDK_v, (GdkModifierType) 0,
- GTK_ACCEL_VISIBLE);
gtk_button_set_relief (GTK_BUTTON (stopbtn), GTK_RELIEF_NONE);
image128 = gtk_image_new_from_stock ("gtk-media-stop", GTK_ICON_SIZE_BUTTON);
@@ -500,15 +494,6 @@ create_mainwin (void)
gtk_widget_show (playbtn);
gtk_box_pack_start (GTK_BOX (hbox3), playbtn, FALSE, FALSE, 0);
gtk_widget_set_can_focus(playbtn, FALSE);
- gtk_widget_add_accelerator (playbtn, "activate", accel_group,
- GDK_x, (GdkModifierType) 0,
- GTK_ACCEL_VISIBLE);
- gtk_widget_add_accelerator (playbtn, "activate", accel_group,
- GDK_Return, (GdkModifierType) 0,
- GTK_ACCEL_VISIBLE);
- gtk_widget_add_accelerator (playbtn, "activate", accel_group,
- GDK_KP_Enter, (GdkModifierType) 0,
- GTK_ACCEL_VISIBLE);
gtk_button_set_relief (GTK_BUTTON (playbtn), GTK_RELIEF_NONE);
image2 = gtk_image_new_from_stock ("gtk-media-play", GTK_ICON_SIZE_BUTTON);
@@ -519,12 +504,6 @@ create_mainwin (void)
gtk_widget_show (pausebtn);
gtk_box_pack_start (GTK_BOX (hbox3), pausebtn, FALSE, FALSE, 0);
gtk_widget_set_can_focus(pausebtn, FALSE);
- gtk_widget_add_accelerator (pausebtn, "activate", accel_group,
- GDK_c, (GdkModifierType) 0,
- GTK_ACCEL_VISIBLE);
- gtk_widget_add_accelerator (pausebtn, "activate", accel_group,
- GDK_p, (GdkModifierType) GDK_CONTROL_MASK,
- GTK_ACCEL_VISIBLE);
gtk_button_set_relief (GTK_BUTTON (pausebtn), GTK_RELIEF_NONE);
image3 = gtk_image_new_from_stock ("gtk-media-pause", GTK_ICON_SIZE_BUTTON);
@@ -535,9 +514,6 @@ create_mainwin (void)
gtk_widget_show (prevbtn);
gtk_box_pack_start (GTK_BOX (hbox3), prevbtn, FALSE, FALSE, 0);
gtk_widget_set_can_focus(prevbtn, FALSE);
- gtk_widget_add_accelerator (prevbtn, "activate", accel_group,
- GDK_z, (GdkModifierType) 0,
- GTK_ACCEL_VISIBLE);
gtk_button_set_relief (GTK_BUTTON (prevbtn), GTK_RELIEF_NONE);
image4 = gtk_image_new_from_stock ("gtk-media-previous", GTK_ICON_SIZE_BUTTON);
@@ -548,9 +524,6 @@ create_mainwin (void)
gtk_widget_show (nextbtn);
gtk_box_pack_start (GTK_BOX (hbox3), nextbtn, FALSE, FALSE, 0);
gtk_widget_set_can_focus(nextbtn, FALSE);
- gtk_widget_add_accelerator (nextbtn, "activate", accel_group,
- GDK_b, (GdkModifierType) 0,
- GTK_ACCEL_VISIBLE);
gtk_button_set_relief (GTK_BUTTON (nextbtn), GTK_RELIEF_NONE);
image5 = gtk_image_new_from_stock ("gtk-media-next", GTK_ICON_SIZE_BUTTON);
@@ -857,8 +830,6 @@ create_mainwin (void)
GLADE_HOOKUP_OBJECT (mainwin, plugins_bottom_vbox, "plugins_bottom_vbox");
GLADE_HOOKUP_OBJECT (mainwin, statusbar, "statusbar");
- gtk_window_add_accel_group (GTK_WINDOW (mainwin), accel_group);
-
return mainwin;
}
@@ -2480,7 +2451,6 @@ create_prefwin (void)
vpaned1 = gtk_vpaned_new ();
gtk_widget_show (vpaned1);
gtk_container_add (GTK_CONTAINER (notebook), vpaned1);
- gtk_paned_set_position (GTK_PANED (vpaned1), 0);
vbox36 = gtk_vbox_new (FALSE, 8);
gtk_widget_show (vbox36);
diff --git a/plugins/hotkeys/hotkeys.c b/plugins/hotkeys/hotkeys.c
index aa8e0d42..c516385e 100644
--- a/plugins/hotkeys/hotkeys.c
+++ b/plugins/hotkeys/hotkeys.c
@@ -532,7 +532,34 @@ hotkeys_reset (void) {
int
action_play_cb (struct DB_plugin_action_s *action, int ctx) {
- deadbeef->sendmessage (DB_EV_PLAY_CURRENT, 0, 0, 0);
+ DB_output_t *output = deadbeef->get_output ();
+ if (output->state () == OUTPUT_STATE_PAUSED) {
+ ddb_playlist_t *plt = deadbeef->plt_get_curr ();
+ int cur = deadbeef->plt_get_cursor (plt, PL_MAIN);
+ if (cur != -1) {
+ ddb_playItem_t *it = deadbeef->plt_get_item_for_idx (plt, cur, PL_MAIN);
+ ddb_playItem_t *it_playing = deadbeef->streamer_get_playing_track ();
+ if (it) {
+ deadbeef->pl_item_unref (it);
+ }
+ if (it_playing) {
+ deadbeef->pl_item_unref (it_playing);
+ }
+ if (it != it_playing) {
+ deadbeef->sendmessage (DB_EV_PLAY_NUM, 0, cur, 0);
+ }
+ else {
+ deadbeef->sendmessage (DB_EV_PLAY_CURRENT, 0, 0, 0);
+ }
+ }
+ else {
+ deadbeef->sendmessage (DB_EV_PLAY_CURRENT, 0, 0, 0);
+ }
+ deadbeef->plt_unref (plt);
+ }
+ else {
+ deadbeef->sendmessage (DB_EV_PLAY_CURRENT, 0, 0, 0);
+ }
return 0;
}