[Xfce4-commits] <xfce4-panel:andrzejr/clock> Adding a possibility to close the calendar popup with "Esc"

Andrzej noreply at xfce.org
Mon Jan 21 01:40:03 CET 2013


Updating branch refs/heads/andrzejr/clock
         to a672491a6d2d12264c7e2f823cdf271b7e3acf82 (commit)
       from eb7f419731ce953836def8d36650c967cc223298 (commit)

commit a672491a6d2d12264c7e2f823cdf271b7e3acf82
Author: Andrzej <ndrwrdck at gmail.com>
Date:   Mon Jan 21 00:12:07 2013 +0000

    Adding a possibility to close the calendar popup with "Esc"
    
    Calendar popup can be closed with an Escape key, provided it
    has a keyboard focus.

 plugins/clock/clock.c |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/plugins/clock/clock.c b/plugins/clock/clock.c
index aae6951..46169bf 100644
--- a/plugins/clock/clock.c
+++ b/plugins/clock/clock.c
@@ -28,6 +28,7 @@
 #include <math.h>
 #endif
 
+#include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
 #include <exo/exo.h>
 #include <libxfce4ui/libxfce4ui.h>
@@ -76,7 +77,10 @@ static void     clock_plugin_screen_position_changed   (XfcePanelPlugin       *p
                                                         XfceScreenPosition     position);
 static void     clock_plugin_configure_plugin          (XfcePanelPlugin       *panel_plugin);
 static void     clock_plugin_set_mode                  (ClockPlugin           *plugin);
-static void     clock_plugin_reposition_calendar       (ClockPlugin          *plugin);
+static void     clock_plugin_reposition_calendar       (ClockPlugin           *plugin);
+static gboolean clock_plugin_calendar_key_press_event  (GtkWidget             *calendar_window,
+                                                        GdkEventKey           *event,
+                                                        ClockPlugin           *plugin);
 static void     clock_plugin_popup_calendar            (ClockPlugin           *plugin);
 static void     clock_plugin_hide_calendar             (ClockPlugin           *plugin);
 static gboolean clock_plugin_tooltip                   (gpointer               user_data);
@@ -975,6 +979,22 @@ clock_plugin_calendar_show_event (GtkWidget   *calendar_window,
 
 
 
+static gboolean
+clock_plugin_calendar_key_press_event (GtkWidget      *calendar_window,
+                                       GdkEventKey    *event,
+                                       ClockPlugin    *plugin)
+{
+  if (event->type == GDK_KEY_PRESS && event->keyval == GDK_KEY_Escape)
+    {
+      clock_plugin_hide_calendar (plugin);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+
+
 static void
 clock_plugin_popup_calendar (ClockPlugin *plugin)
 {
@@ -1004,6 +1024,8 @@ clock_plugin_popup_calendar (ClockPlugin *plugin)
                                         | GTK_CALENDAR_SHOW_WEEK_NUMBERS);
       g_signal_connect (G_OBJECT (plugin->calendar_window), "show",
                         G_CALLBACK (clock_plugin_calendar_show_event), plugin);
+      g_signal_connect (G_OBJECT (plugin->calendar_window), "key-press-event",
+                        G_CALLBACK (clock_plugin_calendar_key_press_event), plugin);
       gtk_container_add (GTK_CONTAINER (calendar_frame), plugin->calendar);
       gtk_widget_show (plugin->calendar);
     }


More information about the Xfce4-commits mailing list