diff options
Diffstat (limited to 'timerapplet/src/timerapplet.c')
-rw-r--r-- | timerapplet/src/timerapplet.c | 51 |
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) |