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.c42
1 files changed, 25 insertions, 17 deletions
diff --git a/libmdock/mdock-item.c b/libmdock/mdock-item.c
index 1d899c0..67f581f 100644
--- a/libmdock/mdock-item.c
+++ b/libmdock/mdock-item.c
@@ -19,7 +19,6 @@
#include "mdock-enums.h"
#include "mdock-item.h"
-#include "thumbnailer.h"
#define MDOCK_ITEM_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), MDOCK_TYPE_ITEM, MDockItemPrivate))
@@ -42,6 +41,7 @@ enum {
PROP_DESKTOP_APP_INFO,
PROP_ICON_SIZE,
PROP_N_WINDOWS,
+ PROP_DISPLAY_NAME,
N_PROPERTIES
};
@@ -73,18 +73,6 @@ static GdkPixbuf *mdock_item_load_icon(MDockItem *self, guint icon_size)
return NULL;
}
-static const gchar *mdock_item_get_display_name(MDockItem *self)
-{
- if (self->priv->appinfo) {
- return g_app_info_get_display_name(G_APP_INFO(self->priv->appinfo));
- } else if (self->priv->windows) {
- WnckApplication *app = wnck_window_get_application(self->priv->windows->data);
- return wnck_application_get_name(app);
- } else {
- return NULL;
- }
-}
-
static void mdock_item_update_icon(MDockItem *self)
{
g_clear_object(&self->priv->icon);
@@ -189,6 +177,9 @@ static void mdock_item_get_property(GObject *object,
case PROP_N_WINDOWS:
g_value_set_uint(value, g_list_length(self->priv->windows));
break;
+ case PROP_DISPLAY_NAME:
+ g_value_set_string(value, mdock_item_get_display_name(self));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
break;
@@ -216,7 +207,8 @@ static void mdock_item_init(MDockItem *self)
self->priv->pinned = FALSE;
self->priv->icon_size = 48;
- gtk_widget_add_events(GTK_WIDGET(self), GDK_BUTTON_PRESS_MASK);
+ gtk_widget_add_events(GTK_WIDGET(self),
+ GDK_BUTTON_PRESS_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK);
}
static void
@@ -260,6 +252,12 @@ mdock_item_class_init(MDockItemClass *klass)
0,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_DISPLAY_NAME] = g_param_spec_string("display-name",
+ "Name of this item",
+ "Reads the current name of this item",
+ "",
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
g_object_class_install_properties(obj_class, N_PROPERTIES, obj_properties);
g_type_class_add_private (obj_class, sizeof (MDockItemPrivate));
@@ -287,7 +285,7 @@ void mdock_item_toggle_pinned(MDockItem *self)
GDesktopAppInfo *mdock_item_get_desktop_app_info(MDockItem *self)
{
- return g_object_ref(self->priv->appinfo);
+ return self->priv->appinfo;
}
void mdock_item_set_desktop_app_info(MDockItem *self, GDesktopAppInfo *app_info)
@@ -323,6 +321,18 @@ void mdock_item_launch(MDockItem *self)
}
}
+const gchar *mdock_item_get_display_name(MDockItem *self)
+{
+ if (self->priv->appinfo) {
+ return g_app_info_get_display_name(G_APP_INFO(self->priv->appinfo));
+ } else if (self->priv->windows) {
+ WnckApplication *app = wnck_window_get_application(self->priv->windows->data);
+ return wnck_application_get_name(app);
+ } else {
+ return NULL;
+ }
+}
+
GdkPixbuf *mdock_item_get_icon_pixbuf(MDockItem *self)
{
return self->priv->icon;
@@ -330,7 +340,6 @@ GdkPixbuf *mdock_item_get_icon_pixbuf(MDockItem *self)
void mdock_item_add_window(MDockItem *self, WnckWindow *window)
{
- thumbnailer_enable_for_window(window);
self->priv->windows = g_list_append(self->priv->windows, window);
if (!self->priv->icon) {
mdock_item_update_icon(self);
@@ -351,7 +360,6 @@ void mdock_item_set_last_active_window(MDockItem *self, WnckWindow *window)
{
g_return_if_fail(g_list_find(self->priv->windows, window));
self->priv->last_active = window;
- thumbnailer_update_thumbnail(window);
}
gint mdock_item_get_num_windows(MDockItem *self)