X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=cut-n-paste%2Frecent-files%2Fegg-recent-view-uimanager.c;h=ac0b85247de3b7622f82923fe77131148d52e3fe;hb=ae0d3afcc39b13f01e0fbac74cf583f67a229382;hp=1ae6f3e485ae9534f81e09d63f58f668bf2a2113;hpb=d93ec57b2282ee22ade99eba434e1b13de80bcf3;p=evince.git diff --git a/cut-n-paste/recent-files/egg-recent-view-uimanager.c b/cut-n-paste/recent-files/egg-recent-view-uimanager.c index 1ae6f3e4..ac0b8524 100644 --- a/cut-n-paste/recent-files/egg-recent-view-uimanager.c +++ b/cut-n-paste/recent-files/egg-recent-view-uimanager.c @@ -43,6 +43,8 @@ #define EGG_RECENT_ACTION "EggRecentFile" #define EGG_RECENT_SEPARATOR (NULL) +#define LABEL_WIDTH_CHARS 32 + struct _EggRecentViewUIManager { GObject parent_instance; @@ -114,6 +116,23 @@ egg_recent_view_uimanager_clear (EggRecentViewUIManager *view) gtk_ui_manager_ensure_update (view->uimanager); } +static void +connect_proxy_cb (GtkActionGroup *action_group, + GtkAction *action, + GtkWidget *proxy) +{ + if (GTK_IS_MENU_ITEM (proxy)) + { + GtkLabel *label; + + label = (GtkLabel *) ((GtkBin *) proxy)->child; + + gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END); + gtk_label_set_max_width_chars (label, LABEL_WIDTH_CHARS); + } +} + + static void egg_recent_view_uimanager_set_list (EggRecentViewUIManager *view, GList *list) { @@ -131,7 +150,9 @@ egg_recent_view_uimanager_set_list (EggRecentViewUIManager *view, GList *list) gchar *group = g_strdup_printf ("EggRecentActions%u", view->merge_id); view->action_group = gtk_action_group_new (group); - gtk_ui_manager_insert_action_group (view->uimanager, view->action_group, 0); + g_signal_connect (view->action_group, "connect-proxy", + G_CALLBACK (connect_proxy_cb), view); + gtk_ui_manager_insert_action_group (view->uimanager, view->action_group, -1); g_free (group); } @@ -155,7 +176,6 @@ egg_recent_view_uimanager_set_list (EggRecentViewUIManager *view, GList *list) gchar *uri; gchar *basename; gchar *escaped; - gchar *ellipsized; gchar *label; gchar *tooltip = NULL; @@ -174,26 +194,19 @@ egg_recent_view_uimanager_set_list (EggRecentViewUIManager *view, GList *list) escaped = egg_recent_util_escape_underlines (basename); g_free (basename); g_free (uri); - - if (strlen (escaped) > 40) { - ellipsized = g_strdup_printf ("%.40s...", escaped); - g_free (escaped); - } else { - ellipsized = escaped; - } if (view->show_numbers) { if (index >= 10) label = g_strdup_printf ("%d. %s", index, - ellipsized); + escaped); else label = g_strdup_printf ("_%d. %s", index, - ellipsized); - g_free (ellipsized); + escaped); + g_free (escaped); } else - label = ellipsized; + label = escaped; action = g_object_new (GTK_TYPE_ACTION, "name", name,