aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/icons/Makefile.am2
-rw-r--r--data/icons/indicator-notification-close-deselect.svg79
-rw-r--r--data/icons/indicator-notification-close-select.svg61
-rw-r--r--src/notification-menuitem.c20
4 files changed, 160 insertions, 2 deletions
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
index 97f2535..2543305 100644
--- a/data/icons/Makefile.am
+++ b/data/icons/Makefile.am
@@ -1,6 +1,8 @@
iconsdir = $(INDICATORICONSDIR)
icons_DATA = \
+ indicator-notification-close-select.svg \
+ indicator-notification-close-deselect.svg \
indicator-notification-read.svg \
indicator-notification-unread.svg
diff --git a/data/icons/indicator-notification-close-deselect.svg b/data/icons/indicator-notification-close-deselect.svg
new file mode 100644
index 0000000..3e92220
--- /dev/null
+++ b/data/icons/indicator-notification-close-deselect.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="24"
+ id="svg3920"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="New document 5">
+ <defs
+ id="defs3922" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.2"
+ inkscape:cx="4.1773985"
+ inkscape:cy="15.060459"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="959"
+ inkscape:window-height="576"
+ inkscape:window-x="65"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata3925">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1028.3622)">
+ <path
+ style="fill:#e6ddd5;fill-opacity:1;stroke:#333333;stroke-width:1;stroke-opacity:1"
+ d="M 6.34375 2.84375 C 5.8871312 2.84375 5.4436349 3.0251151 5.09375 3.375 L 3.375 5.09375 C 2.6752302 5.7935198 2.6752302 6.8939802 3.375 7.59375 L 7.78125 12 L 3.375 16.40625 C 2.6752302 17.10602 2.6752302 18.20648 3.375 18.90625 L 5.09375 20.625 C 5.7935198 21.32477 6.8939802 21.32477 7.59375 20.625 L 12 16.21875 L 16.40625 20.625 C 17.10602 21.32477 18.20648 21.32477 18.90625 20.625 L 20.625 18.90625 C 21.32477 18.20648 21.32477 17.10602 20.625 16.40625 L 16.21875 12 L 20.625 7.59375 C 21.32477 6.8939802 21.32477 5.7935198 20.625 5.09375 L 18.90625 3.375 C 18.20648 2.6752302 17.10602 2.6752302 16.40625 3.375 L 12 7.78125 L 7.59375 3.375 C 7.2438651 3.0251151 6.8003688 2.84375 6.34375 2.84375 z "
+ transform="translate(0,1028.3622)"
+ id="rect3928" />
+ <rect
+ style="fill:#333333;fill-opacity:1;stroke:none"
+ id="rect4479"
+ width="3"
+ height="19"
+ x="-728.66187"
+ y="734.63245"
+ ry="0.91624337"
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)" />
+ <rect
+ ry="0.91624337"
+ y="717.66187"
+ x="742.63245"
+ height="19"
+ width="3"
+ id="rect4487"
+ style="fill:#333333;fill-opacity:1;stroke:none"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" />
+ </g>
+</svg>
diff --git a/data/icons/indicator-notification-close-select.svg b/data/icons/indicator-notification-close-select.svg
new file mode 100644
index 0000000..21f5026
--- /dev/null
+++ b/data/icons/indicator-notification-close-select.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="24"
+ id="svg3920"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="indicator-notification-close-deselect.svg">
+ <defs
+ id="defs3922" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.2"
+ inkscape:cx="4.1773985"
+ inkscape:cy="15.060459"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="959"
+ inkscape:window-height="576"
+ inkscape:window-x="65"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata3925">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1028.3622)">
+ <path
+ style="fill:#e6ddd5;fill-opacity:1;stroke:#333333;stroke-width:1;stroke-opacity:1"
+ d="M 6.34375 2.84375 C 5.8871312 2.84375 5.4436349 3.0251151 5.09375 3.375 L 3.375 5.09375 C 2.6752302 5.7935198 2.6752302 6.8939802 3.375 7.59375 L 7.78125 12 L 3.375 16.40625 C 2.6752302 17.10602 2.6752302 18.20648 3.375 18.90625 L 5.09375 20.625 C 5.7935198 21.32477 6.8939802 21.32477 7.59375 20.625 L 12 16.21875 L 16.40625 20.625 C 17.10602 21.32477 18.20648 21.32477 18.90625 20.625 L 20.625 18.90625 C 21.32477 18.20648 21.32477 17.10602 20.625 16.40625 L 16.21875 12 L 20.625 7.59375 C 21.32477 6.8939802 21.32477 5.7935198 20.625 5.09375 L 18.90625 3.375 C 18.20648 2.6752302 17.10602 2.6752302 16.40625 3.375 L 12 7.78125 L 7.59375 3.375 C 7.2438651 3.0251151 6.8003688 2.84375 6.34375 2.84375 z "
+ transform="translate(0,1028.3622)"
+ id="rect3928" />
+ </g>
+</svg>
diff --git a/src/notification-menuitem.c b/src/notification-menuitem.c
index 08274cf..3240de1 100644
--- a/src/notification-menuitem.c
+++ b/src/notification-menuitem.c
@@ -11,6 +11,8 @@
#include "urlregex.h"
#define NOTIFICATION_MENUITEM_MAX_CHARS 42
+#define NOTIFICATION_MENUITEM_CLOSE_SELECT "indicator-notification-close-select"
+#define NOTIFICATION_MENUITEM_CLOSE_DESELECT "indicator-notification-close-deselect"
enum {
CLICKED,
@@ -50,6 +52,7 @@ notification_menuitem_class_init(NotificationMenuItemClass *klass)
g_type_class_add_private(klass, sizeof(NotificationMenuItemPrivate));
+ menu_item_class->hide_on_activate = FALSE;
menu_item_class->activate = notification_menuitem_activate;
menu_item_class->select = notification_menuitem_select;
menu_item_class->deselect = notification_menuitem_deselect;
@@ -87,7 +90,7 @@ notification_menuitem_init(NotificationMenuItem *self)
gtk_box_pack_start(GTK_BOX(self->priv->hbox), self->priv->label, TRUE, TRUE, 0);
gtk_widget_show(self->priv->label);
- self->priv->close_image = gtk_image_new_from_icon_name("gtk-close", GTK_ICON_SIZE_MENU);
+ self->priv->close_image = gtk_image_new_from_icon_name(NOTIFICATION_MENUITEM_CLOSE_DESELECT, GTK_ICON_SIZE_MENU);
gtk_widget_show(self->priv->close_image);
gtk_box_pack_start(GTK_BOX(self->priv->hbox), self->priv->close_image, FALSE, FALSE, 0);
@@ -229,12 +232,25 @@ notification_menuitem_button_release(GtkWidget *widget, GdkEventButton *event)
static void
notification_menuitem_select(GtkMenuItem *menuitem)
{
- /* FIXME: breaks keyboard navigation */
+ g_return_if_fail(IS_NOTIFICATION_MENUITEM(menuitem));
+
+ NotificationMenuItem *self = NOTIFICATION_MENUITEM(menuitem);
+
+ gtk_image_set_from_icon_name(GTK_IMAGE(self->priv->close_image),
+ NOTIFICATION_MENUITEM_CLOSE_SELECT,
+ GTK_ICON_SIZE_MENU);
}
static void
notification_menuitem_deselect(GtkMenuItem *menuitem)
{
+ g_return_if_fail(IS_NOTIFICATION_MENUITEM(menuitem));
+
+ NotificationMenuItem *self = NOTIFICATION_MENUITEM(menuitem);
+
+ gtk_image_set_from_icon_name(GTK_IMAGE(self->priv->close_image),
+ NOTIFICATION_MENUITEM_CLOSE_DESELECT,
+ GTK_ICON_SIZE_MENU);
}
static gboolean