summaryrefslogtreecommitdiff
path: root/libmdock/mdock-item.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmdock/mdock-item.c')
-rw-r--r--libmdock/mdock-item.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/libmdock/mdock-item.c b/libmdock/mdock-item.c
index 2399e19..a9d9ad0 100644
--- a/libmdock/mdock-item.c
+++ b/libmdock/mdock-item.c
@@ -170,6 +170,24 @@ static gboolean mdock_item_button_press(GtkWidget *widget, GdkEventButton *event
MDockItem *self = MDOCK_ITEM(widget);
switch (event->button) {
case 1:
+ // Will activate item during release.
+ break;
+
+ case 3:
+ gtk_menu_popup(self->priv->right_menu,
+ NULL, NULL, NULL, NULL,
+ event->button, event->time);
+ break;
+ }
+
+ return TRUE;
+}
+
+static gboolean mdock_item_button_release(GtkWidget *widget, GdkEventButton *event)
+{
+ MDockItem *self = MDOCK_ITEM(widget);
+ switch (event->button) {
+ case 1:
if (self->priv->windows) {
// This item has one window at least
if (self->priv->windows->next) {
@@ -209,13 +227,10 @@ static gboolean mdock_item_button_press(GtkWidget *widget, GdkEventButton *event
} else {
g_warning("A MDockItem has no windows and no appinfo to launch");
}
-
break;
case 3:
- gtk_menu_popup(self->priv->right_menu,
- NULL, NULL, NULL, NULL,
- event->button, event->time);
+ // Popup menu shown during press
break;
}
@@ -353,6 +368,7 @@ mdock_item_class_init(MDockItemClass *klass)
widget_class->size_request = mdock_item_size_request;
widget_class->size_allocate = mdock_item_size_allocate;
widget_class->button_press_event = mdock_item_button_press;
+ widget_class->button_release_event = mdock_item_button_release;
widget_class->expose_event = mdock_item_expose;
obj_properties[PROP_PINNED] = g_param_spec_boolean("pinned",
@@ -437,6 +453,11 @@ void mdock_item_launch(MDockItem *self)
}
}
+GdkPixbuf *mdock_item_get_icon_pixbuf(MDockItem *self)
+{
+ return self->priv->icon;
+}
+
void mdock_item_add_window(MDockItem *self, WnckWindow *window)
{
thumbnailer_enable_for_window(window);