summaryrefslogtreecommitdiff
path: root/timerapplet/src/timerapplet.c
diff options
context:
space:
mode:
Diffstat (limited to 'timerapplet/src/timerapplet.c')
-rw-r--r--timerapplet/src/timerapplet.c51
1 files changed, 37 insertions, 14 deletions
diff --git a/timerapplet/src/timerapplet.c b/timerapplet/src/timerapplet.c
index e72d8e21..c5cb2107 100644
--- a/timerapplet/src/timerapplet.c
+++ b/timerapplet/src/timerapplet.c
@@ -27,6 +27,7 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gio/gio.h>
+#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <libnotify/notify.h>
@@ -115,6 +116,7 @@ timer_applet_destroy (MatePanelApplet *applet_widget, TimerApplet *applet)
static gboolean
timer_callback (TimerApplet *applet)
{
+ AtkObject *atk_obj;
gboolean retval = TRUE;
gchar *label;
gchar *name;
@@ -124,7 +126,11 @@ timer_callback (TimerApplet *applet)
label = NULL;
tooltip = NULL;
+ if (!GTK_IS_WIDGET (applet->label))
+ return FALSE;
+
name = g_settings_get_string (applet->settings, NAME_KEY);
+ atk_obj = gtk_widget_get_accessible (GTK_WIDGET (applet->applet));
if (!applet->active)
{
@@ -134,6 +140,7 @@ timer_callback (TimerApplet *applet)
gtk_label_set_text (applet->label, name);
gtk_widget_set_tooltip_text (GTK_WIDGET (applet->label), "");
gtk_widget_hide (GTK_WIDGET (applet->pause_image));
+ atk_object_set_name (atk_obj, name);
}
else
{
@@ -154,6 +161,8 @@ timer_callback (TimerApplet *applet)
gtk_label_set_text (applet->label, label);
gtk_widget_set_tooltip_text (GTK_WIDGET (applet->label), name);
gtk_widget_hide (GTK_WIDGET (applet->pause_image));
+ atk_object_set_name (atk_obj, label);
+ atk_object_set_description (atk_obj, "");
if (g_settings_get_boolean (applet->settings, SHOW_NOTIFICATION_KEY))
{
@@ -201,6 +210,7 @@ timer_callback (TimerApplet *applet)
gtk_label_set_text (applet->label, label);
gtk_widget_set_tooltip_text (GTK_WIDGET (applet->label), tooltip);
gtk_widget_set_visible (GTK_WIDGET (applet->pause_image), applet->pause);
+ atk_object_set_name (atk_obj, label);
}
g_free (label);
@@ -344,15 +354,20 @@ timer_preferences_callback (GtkAction *action, TimerApplet *applet)
}
static gboolean
-timer_applet_click (TimerApplet *applet)
+timer_applet_click (TimerApplet *applet, GdkEventButton *event)
{
- if (!applet->active && !applet->pause && applet->elapsed)
- timer_reset_callback (NULL, applet);
- else if (applet->active && !applet->pause)
- timer_pause_callback (NULL, applet);
- else if (!applet->active || applet->pause)
- timer_start_callback (NULL, applet);
- return FALSE;
+ if ( event->button == 1)
+ {
+ if (!applet->active && !applet->pause && applet->elapsed)
+ timer_reset_callback (NULL, applet);
+ else if (applet->active && !applet->pause)
+ timer_pause_callback (NULL, applet);
+ else if (!applet->active || applet->pause)
+ timer_start_callback (NULL, applet);
+ return TRUE;
+ }
+ else
+ return FALSE;
}
static void
@@ -365,8 +380,11 @@ static gboolean
timer_applet_fill (MatePanelApplet* applet_widget)
{
TimerApplet *applet;
+ AtkObject *atk_obj;
+#ifndef ENABLE_IN_PROCESS
g_set_application_name (_("Timer Applet"));
+#endif
gtk_window_set_default_icon_name (APPLET_ICON);
if (!notify_is_initted ())
@@ -386,6 +404,11 @@ timer_applet_fill (MatePanelApplet* applet_widget)
applet->pause_image = GTK_IMAGE (gtk_image_new_from_icon_name ("media-playback-pause", GTK_ICON_SIZE_BUTTON));
applet->label = GTK_LABEL (gtk_label_new (""));
+ atk_obj = gtk_widget_get_accessible (GTK_WIDGET (applet->applet));
+ if (GTK_IS_ACCESSIBLE (atk_obj)) {
+ atk_object_set_name (atk_obj, _("Timer Applet"));
+ atk_object_set_description (atk_obj, _("Start a timer and receive a notification when it is finished"));
+ }
/* we add the Gtk label into the applet */
gtk_box_pack_start (applet->box,
GTK_WIDGET (applet->image),
@@ -407,7 +430,7 @@ timer_applet_fill (MatePanelApplet* applet_widget)
G_CALLBACK (timer_applet_destroy),
applet);
- g_signal_connect_swapped (applet->applet, "button-release-event",
+ g_signal_connect_swapped (applet->applet, "button-press-event",
G_CALLBACK (timer_applet_click),
applet);
@@ -442,8 +465,8 @@ timer_factory (MatePanelApplet* applet, const char* iid, gpointer data)
}
/* needed by mate-panel applet library */
-MATE_PANEL_APPLET_OUT_PROCESS_FACTORY("TimerAppletFactory",
- PANEL_TYPE_APPLET,
- "Timer applet",
- timer_factory,
- NULL)
+PANEL_APPLET_FACTORY ("TimerAppletFactory",
+ PANEL_TYPE_APPLET,
+ "Timer applet",
+ timer_factory,
+ NULL)