aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog52
-rw-r--r--debian/control3
-rw-r--r--libmessaging-menu/messaging-menu.c7
-rw-r--r--src/app-section.c27
-rw-r--r--src/ido-detail-label.c17
-rw-r--r--src/ido-menu-item.c16
-rw-r--r--src/im-app-menu-item.c5
-rw-r--r--src/messages-service.c2
8 files changed, 113 insertions, 16 deletions
diff --git a/debian/changelog b/debian/changelog
index aafa43a..82feeef 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,55 @@
+indicator-messages (12.10.6daily13.05.15-0ubuntu1) saucy; urgency=low
+
+ [ Lars Uebernickel ]
+ * libmessaging-menu: don't use detailed action names Detailed action
+ names are of the form action::target or action(target), so they
+ can't have colons or parens in them. This restriction does not apply
+ to messaging menu ids. (LP: #1180302)
+
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 344
+
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 15 May 2013 16:59:49 +0000
+
+indicator-messages (12.10.6daily13.05.02-0ubuntu1) saucy; urgency=low
+
+ [ Marco Trevisan (Treviño) ]
+ * Opening new-window from quicklist static action does not focus the
+ newly opened window (LP: #1164483)
+
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 342
+
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 02 May 2013 22:59:03 +0000
+
+indicator-messages (12.10.6daily13.04.09-0ubuntu1) raring; urgency=low
+
+ * Automatic snapshot from revision 340
+
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 09 Apr 2013 02:02:02 +0000
+
+indicator-messages (12.10.6daily13.04.08-0ubuntu1) raring; urgency=low
+
+ [ Marco Trevisan (Treviño) ]
+ * Window management - Apps raised from indicators sometimes dont have
+ the focus (LP: #627195)
+
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 339
+
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 08 Apr 2013 02:02:06 +0000
+
+indicator-messages (12.10.6daily13.02.13-0ubuntu1) raring; urgency=low
+
+ [ Jason Conti ]
+ * Stuck notifications (blue envolope remains after I've already read
+ msg) (LP: #1113721)
+
+ [ Automatic PS uploader ]
+ * Automatic snapshot from revision 337
+
+ -- Automatic PS uploader <ps-jenkins@lists.canonical.com> Wed, 13 Feb 2013 02:02:11 +0000
+
indicator-messages (12.10.6daily13.01.25-0ubuntu1) raring; urgency=low
[ Charles Kerr ]
diff --git a/debian/control b/debian/control
index efc21cd..7773476 100644
--- a/debian/control
+++ b/debian/control
@@ -69,6 +69,7 @@ Architecture: any
Section: libdevel
Depends: ${shlibs:Depends},
${misc:Depends},
+ gir1.2-messagingmenu-1.0 (=${binary:Version}),
libmessaging-menu0 (=${binary:Version}),
libglib2.0-dev,
Description: Messaging Menu - library development files
@@ -76,7 +77,7 @@ Description: Messaging Menu - library development files
the messaging menu.
Package: gir1.2-messagingmenu-1.0
-Section: libs
+Section: introspection
Architecture: any
Depends: ${misc:Depends},
${gir:Depends},
diff --git a/libmessaging-menu/messaging-menu.c b/libmessaging-menu/messaging-menu.c
index a51695a..467a67a 100644
--- a/libmessaging-menu/messaging-menu.c
+++ b/libmessaging-menu/messaging-menu.c
@@ -648,7 +648,8 @@ messaging_menu_app_insert_source_action (MessagingMenuApp *app,
g_simple_action_group_insert (app->source_actions, G_ACTION (action));
g_object_unref (action);
- menuitem = g_menu_item_new (label, id);
+ menuitem = g_menu_item_new (label, NULL);
+ g_menu_item_set_action_and_target_value (menuitem, id, NULL);
g_menu_item_set_attribute (menuitem, "x-canonical-type", "s", "ImSourceMenuItem");
if (icon)
{
@@ -721,7 +722,7 @@ messaging_menu_app_set_draws_attention (MessagingMenuApp *app,
state = g_action_get_state (G_ACTION (action));
g_variant_get (state, "(ux&sb)", &count, &time, &string, NULL);
- new_state = g_variant_new ("(uxsb)", count, time, string, TRUE);
+ new_state = g_variant_new ("(uxsb)", count, time, string, draws_attention);
g_simple_action_set_state (action, new_state);
g_variant_unref (state);
@@ -1195,5 +1196,5 @@ void
messaging_menu_app_remove_attention (MessagingMenuApp *app,
const gchar *source_id)
{
- messaging_menu_app_set_draws_attention (app, source_id, TRUE);
+ messaging_menu_app_set_draws_attention (app, source_id, FALSE);
}
diff --git a/src/app-section.c b/src/app-section.c
index 6aac52a..1106c62 100644
--- a/src/app-section.c
+++ b/src/app-section.c
@@ -25,6 +25,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config.h"
#endif
+#include <gdk/gdk.h>
#include <glib/gi18n.h>
#include <gio/gdesktopappinfo.h>
#include <gio/gio.h>
@@ -290,6 +291,17 @@ app_section_finalize (GObject *object)
G_OBJECT_CLASS (app_section_parent_class)->dispose (object);
}
+static GAppLaunchContext *
+get_launch_context (guint32 timestamp)
+{
+ GdkDisplay *display = gdk_display_get_default();
+ GdkAppLaunchContext *launch_context = gdk_display_get_app_launch_context (display);
+
+ gdk_app_launch_context_set_timestamp (launch_context, timestamp);
+
+ return G_APP_LAUNCH_CONTEXT (launch_context);
+}
+
/* Respond to one of the shortcuts getting clicked on. */
static void
nick_activate_cb (GSimpleAction *action,
@@ -302,10 +314,14 @@ nick_activate_cb (GSimpleAction *action,
g_return_if_fail(priv->ids != NULL);
- if (!indicator_desktop_shortcuts_nick_exec(priv->ids, nick)) {
+ GAppLaunchContext *context = get_launch_context (g_variant_get_uint32 (param));
+
+ if (!indicator_desktop_shortcuts_nick_exec_with_context(priv->ids, nick, context)) {
g_warning("Unable to execute nick '%s' for desktop file '%s'",
nick, g_desktop_app_info_get_filename (priv->appinfo));
}
+
+ g_object_unref (context);
}
static void
@@ -390,7 +406,7 @@ app_section_update_menu (AppSection *self)
g_simple_action_group_clear (priv->static_shortcuts);
is_running = priv->name_watch_id > 0;
- launch = g_simple_action_new_stateful ("launch", NULL, g_variant_new_boolean (is_running));
+ launch = g_simple_action_new_stateful ("launch", G_VARIANT_TYPE_UINT32, g_variant_new_boolean (is_running));
g_signal_connect (launch, "activate", G_CALLBACK (activate_cb), self);
g_signal_connect (launch, "change-state", G_CALLBACK (launch_action_change_state), self);
g_simple_action_group_insert (priv->static_shortcuts, G_ACTION (launch));
@@ -415,7 +431,7 @@ app_section_update_menu (AppSection *self)
name = indicator_desktop_shortcuts_nick_get_name(priv->ids, nicks[i]);
- action = g_simple_action_new (nicks[i], NULL);
+ action = g_simple_action_new (nicks[i], G_VARIANT_TYPE_UINT32);
g_signal_connect(action, "activate", G_CALLBACK (nick_activate_cb), self);
g_simple_action_group_insert (priv->static_shortcuts, G_ACTION (action));
g_object_unref (action);
@@ -506,13 +522,16 @@ activate_cb (GSimpleAction *action,
AppSection * mi = APP_SECTION (userdata);
AppSectionPrivate * priv = mi->priv;
GError *error = NULL;
+ GAppLaunchContext *launch_context = get_launch_context (g_variant_get_uint32 (param));
- if (!g_app_info_launch (G_APP_INFO (priv->appinfo), NULL, NULL, &error)) {
+ if (!g_app_info_launch (G_APP_INFO (priv->appinfo), NULL, launch_context, &error)) {
g_warning("Unable to execute application for desktop file '%s': %s",
g_desktop_app_info_get_filename (priv->appinfo),
error->message);
g_error_free (error);
}
+
+ g_object_unref (launch_context);
}
static void
diff --git a/src/ido-detail-label.c b/src/ido-detail-label.c
index 780a2dd..8b7ef90 100644
--- a/src/ido-detail-label.c
+++ b/src/ido-detail-label.c
@@ -138,14 +138,19 @@ static PangoFontMetrics *
gtk_widget_get_font_metrics (GtkWidget *widget,
PangoContext *context)
{
- const PangoFontDescription *font;
+ PangoFontDescription *font;
+ PangoFontMetrics *metrics;
+
+ gtk_style_context_get (gtk_widget_get_style_context (widget),
+ gtk_widget_get_state_flags (widget),
+ "font", &font, NULL);
- font = gtk_style_context_get_font (gtk_widget_get_style_context (widget),
- gtk_widget_get_state_flags (widget));
+ metrics = pango_context_get_metrics (context,
+ font,
+ pango_context_get_language (context));
- return pango_context_get_metrics (context,
- font,
- pango_context_get_language (context));
+ pango_font_description_free (font);
+ return metrics;
}
static gint
diff --git a/src/ido-menu-item.c b/src/ido-menu-item.c
index 32044ff..f702828 100644
--- a/src/ido-menu-item.c
+++ b/src/ido-menu-item.c
@@ -282,10 +282,24 @@ static void
ido_menu_item_activate (GtkMenuItem *item)
{
IdoMenuItemPrivate *priv = IDO_MENU_ITEM (item)->priv;
+ GVariant *parameter;
/* see ido_menu_item_set_active */
if (!priv->in_set_active && priv->action && priv->action_group)
- g_action_group_activate_action (priv->action_group, priv->action, priv->target);
+ {
+ guint32 event_time = gtk_get_current_event_time ();
+
+ if (priv->target)
+ {
+ parameter = priv->target;
+ }
+ else
+ {
+ parameter = g_variant_new_uint32 (event_time);
+ }
+
+ g_action_group_activate_action (priv->action_group, priv->action, parameter);
+ }
if (priv->in_set_active)
GTK_MENU_ITEM_CLASS (ido_menu_item_parent_class)->activate (item);
diff --git a/src/im-app-menu-item.c b/src/im-app-menu-item.c
index a204631..03b11c2 100644
--- a/src/im-app-menu-item.c
+++ b/src/im-app-menu-item.c
@@ -238,7 +238,10 @@ im_app_menu_item_activate (GtkMenuItem *item)
ImAppMenuItemPrivate *priv = IM_APP_MENU_ITEM (item)->priv;
if (priv->action && priv->action_group)
- g_action_group_activate_action (priv->action_group, priv->action, NULL);
+ {
+ guint32 event_time = gtk_get_current_event_time ();
+ g_action_group_activate_action (priv->action_group, priv->action, g_variant_new_uint32 (event_time));
+ }
}
static void
diff --git a/src/messages-service.c b/src/messages-service.c
index e48e3f8..25a19b9 100644
--- a/src/messages-service.c
+++ b/src/messages-service.c
@@ -24,6 +24,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include <config.h>
#include <locale.h>
#include <libindicator/indicator-service.h>
+#include <gdk/gdk.h>
#include <gio/gio.h>
#include <gio/gdesktopappinfo.h>
#include <glib/gi18n.h>
@@ -645,6 +646,7 @@ main (int argc, char ** argv)
GMainLoop * mainloop;
IndicatorService * service;
+ gdk_init(&argc, &argv);
mainloop = g_main_loop_new (NULL, FALSE);
/* Create the Indicator Service interface */