[Xfce4-commits] <parole:master> Added some keys accelators+fix F11 key event in the previous commit

Ali Abdallah aliov at xfce.org
Sun Aug 16 15:32:01 CEST 2009


Updating branch refs/heads/master
         to 5879ae1d2b2030faa1012e64ce07dd009d67adac (commit)
       from 259ac8eabb874c54555c28cf2a90c68e8655797a (commit)

commit 5879ae1d2b2030faa1012e64ce07dd009d67adac
Author: Ali Abdallah <aliov at xfce.org>
Date:   Sun Aug 16 15:05:25 2009 +0200

    Added some keys accelators+fix F11 key event in the previous commit

 data/interfaces/parole.ui   |    2 +-
 data/interfaces/playlist.ui |    1 +
 parole/parole-medialist.c   |   15 +++++++++
 parole/parole-player.c      |   67 +++++++++++++++++++++++++++++-------------
 4 files changed, 63 insertions(+), 22 deletions(-)

diff --git a/data/interfaces/parole.ui b/data/interfaces/parole.ui
index 9ba385d..0e155f1 100644
--- a/data/interfaces/parole.ui
+++ b/data/interfaces/parole.ui
@@ -475,7 +475,7 @@
                                                     <property name="visible">True</property>
                                                     <property name="sensitive">False</property>
                                                     <property name="can_focus">True</property>
-                                                    <property name="receives_default">False</property>
+                                                    <property name="receives_default">True</property>
                                                     <property name="image">image7</property>
                                                     <property name="relief">none</property>
                                                     <property name="focus_on_click">False</property>
diff --git a/data/interfaces/playlist.ui b/data/interfaces/playlist.ui
index 9e963c7..07f49f6 100644
--- a/data/interfaces/playlist.ui
+++ b/data/interfaces/playlist.ui
@@ -17,6 +17,7 @@
             <property name="can_focus">True</property>
             <property name="headers_visible">False</property>
             <property name="show_expanders">False</property>
+            <signal name="key_press_event" handler="parole_media_list_key_press"/>
             <signal name="row_activated" handler="parole_media_list_row_activated_cb"/>
             <signal name="button_release_event" handler="parole_media_list_button_release_event"/>
             <signal name="drag_data_received" handler="parole_media_list_drag_data_received_cb"/>
diff --git a/parole/parole-medialist.c b/parole/parole-medialist.c
index 988706e..c21f7cf 100644
--- a/parole/parole-medialist.c
+++ b/parole/parole-medialist.c
@@ -27,6 +27,7 @@
 #include <string.h>
 
 #include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
 #include <glib.h>
 #include <glib/gstdio.h>
 #include <gio/gio.h>
@@ -118,6 +119,10 @@ void		parole_media_list_drag_data_received_cb (GtkWidget *widget,
 							 guint drag_time,
 							 ParoleMediaList *list);
 
+gboolean	parole_media_list_key_press		(GtkWidget *widget, 
+							 GdkEventKey *ev, 
+							 ParoleMediaList *list);
+
 void		parole_media_list_format_cursor_changed_cb (GtkTreeView *view,
 							    ParolePlaylistSave *data);
 							    
@@ -356,6 +361,16 @@ void	parole_media_list_drag_data_received_cb (GtkWidget *widget,
     gtk_drag_finish (drag_context, added == i ? TRUE : FALSE, FALSE, drag_time);
 }
 
+gboolean parole_media_list_key_press (GtkWidget *widget, GdkEventKey *ev, ParoleMediaList *list)
+{
+    if ( ev->keyval == GDK_Delete )
+    {
+	parole_media_list_remove_clicked_cb (NULL, list);
+	return TRUE;
+    }
+    return FALSE;
+}
+
 void
 parole_media_list_add_clicked_cb (GtkButton *button, ParoleMediaList *list)
 {
diff --git a/parole/parole-player.c b/parole/parole-player.c
index c2d816d..b829681 100644
--- a/parole/parole-player.c
+++ b/parole/parole-player.c
@@ -1042,15 +1042,22 @@ parole_player_show_menu (ParolePlayer *player, guint button, guint activate_time
 }
 
 static gboolean
-parole_player_gst_widget_button_press (GtkWidget *widget, GdkEventButton *ev, ParolePlayer *player)
+parole_player_gst_widget_button_release (GtkWidget *widget, GdkEventButton *ev, ParolePlayer *player)
 {
-    if ( ev->button  == 3)
+    gboolean ret_val = FALSE;
+    
+    if ( ev->button == 3 )
     {
 	parole_player_show_menu (player, ev->button, ev->time);
-	return TRUE;
+	ret_val = TRUE;
+    }
+    else if ( ev->button == 1 )
+    {
+	gtk_widget_grab_focus (widget);
+	ret_val = TRUE;
     }
     
-    return FALSE;
+    return ret_val;
 }
 
 static gboolean parole_player_hide_fs_window (gpointer data)
@@ -1245,17 +1252,13 @@ parole_player_class_init (ParolePlayerClass *klass)
     g_type_class_add_private (klass, sizeof (ParolePlayerPrivate));
 }
 
-gboolean
-parole_player_key_press (GtkWidget *widget, GdkEventKey *ev, ParolePlayer *player)
+static gboolean
+parole_player_handle_key_press (GdkEventKey *ev, ParolePlayer *player)
 {
     GtkWidget *focused;
     
     gboolean ret_val = FALSE;
-/*
-    gchar *key;
-    key = gdk_keyval_name (ev->keyval);
-    g_print ("Key Press 0x%X:%s on widget=%s\n", ev->keyval, key, gtk_widget_get_name (widget));
-*/
+    
     focused = gtk_window_get_focus (GTK_WINDOW (player->priv->window));
     
     if ( focused )
@@ -1271,13 +1274,21 @@ parole_player_key_press (GtkWidget *widget, GdkEventKey *ev, ParolePlayer *playe
     switch (ev->keyval)
     {
 	case GDK_F11:
+	case GDK_f:
+	case GDK_F:
 	    parole_player_full_screen_menu_item_activate (player);
 	    ret_val = TRUE;
 	    break;
-	case GDK_plus :
+	case GDK_plus:
 	    parole_player_volume_up (NULL, player);
 	    ret_val = TRUE;
 	    break;
+	case GDK_space:
+	case GDK_p:
+	case GDK_P:
+	    parole_player_play_pause_clicked (NULL, player);
+	    ret_val = TRUE;
+	    break;
 	case GDK_minus:
 	    parole_player_volume_down (NULL, player);
 	    ret_val = TRUE;
@@ -1293,8 +1304,9 @@ parole_player_key_press (GtkWidget *widget, GdkEventKey *ev, ParolePlayer *playe
 		parole_player_seekb_cb (NULL, player);
 	    ret_val = TRUE;
 	    break;
-	case GDK_space:
-	    parole_player_play_pause_clicked (NULL, player);
+	case GDK_s:
+	case GDK_S:
+	    parole_player_stop_clicked (NULL, player);
 	    ret_val = TRUE;
 	    break;
 	default:
@@ -1304,6 +1316,24 @@ parole_player_key_press (GtkWidget *widget, GdkEventKey *ev, ParolePlayer *playe
     return ret_val;
 }
 
+gboolean
+parole_player_key_press (GtkWidget *widget, GdkEventKey *ev, ParolePlayer *player)
+{
+/*
+    gchar *key;
+    key = gdk_keyval_name (ev->keyval);
+    g_print ("Key Press 0x%X:%s on widget=%s\n", ev->keyval, key, gtk_widget_get_name (widget));
+*/
+    switch (ev->keyval)
+    {
+	case GDK_F11:
+	    parole_player_full_screen_menu_item_activate (player);
+	    return TRUE;
+    }
+    
+    return parole_player_handle_key_press (ev, player);
+}
+
 static void
 parole_player_session_die_cb (ParolePlayer *player)
 {
@@ -1442,17 +1472,12 @@ parole_player_init (ParolePlayer *player)
     g_signal_connect (G_OBJECT (player->priv->gst), "buffering",
 		      G_CALLBACK (parole_player_buffering_cb), player);
     
-    g_signal_connect (G_OBJECT (player->priv->gst), "button-release-event",
-		      G_CALLBACK (parole_player_gst_widget_button_press), player);
+    g_signal_connect_after (G_OBJECT (player->priv->gst), "button-release-event",
+			    G_CALLBACK (parole_player_gst_widget_button_release), player);
     
     g_signal_connect (G_OBJECT (player->priv->gst), "motion-notify-event",
 		      G_CALLBACK (parole_player_gst_widget_motion_notify_event), player);
     
-    /*
-    g_signal_connect (G_OBJECT (player->priv->gst), "key-press-event",
-		      G_CALLBACK (parole_player_key_press), player);
-    */
-    
     player->priv->window = GTK_WIDGET (gtk_builder_get_object (builder, "main-window"));
     player->priv->main_nt = GTK_WIDGET (gtk_builder_get_object (builder, "main-notebook"));
     



More information about the Xfce4-commits mailing list