File notification-daemon-clipping.patch of Package notification-daemon
Index: notification-daemon-0.3.7/src/themes/standard/theme.c
===================================================================
--- notification-daemon-0.3.7.orig/src/themes/standard/theme.c
+++ notification-daemon-0.3.7/src/themes/standard/theme.c
@@ -16,6 +16,7 @@ typedef struct
GtkWidget *icon;
GtkWidget *content_hbox;
GtkWidget *summary_label;
+ GtkWidget *close_button;
GtkWidget *body_label;
GtkWidget *actions_box;
GtkWidget *last_sep;
@@ -683,6 +684,7 @@ create_notification(UrlClickedCb url_cli
gtk_box_pack_start(GTK_BOX(hbox), alignment, FALSE, FALSE, 0);
close_button = gtk_button_new();
+ windata->close_button = close_button;
gtk_widget_show(close_button);
gtk_container_add(GTK_CONTAINER(alignment), close_button);
gtk_button_set_relief(GTK_BUTTON(close_button), GTK_RELIEF_NONE);
@@ -792,6 +794,7 @@ void
set_notification_text(GtkWindow *nw, const char *summary, const char *body)
{
char *str, *quoted;
+ GtkRequisition req;
WindowData *windata = g_object_get_data(G_OBJECT(nw), "windata");
g_assert(windata != NULL);
@@ -811,10 +814,24 @@ set_notification_text(GtkWindow *nw, con
update_content_hbox_visibility(windata);
+ if (body != NULL && *body != '\0')
+ {
+ gtk_widget_size_request (windata->iconbox, &req);
+ gtk_widget_set_size_request(
+ windata->body_label,
+ /* -1: border width for
+ -6: spacing for hbox */
+ WIDTH - (1*2) - (10*2) - req.width - 6,
+ -1);
+ }
+
+ gtk_widget_size_request (windata->close_button, &req);
gtk_widget_set_size_request(
- ((body != NULL && *body == '\0')
- ? windata->body_label : windata->summary_label),
- WIDTH - (IMAGE_SIZE + IMAGE_PADDING) - 10,
+ windata->summary_label,
+ /* -1: main_vbox border width
+ -10: vbox border width
+ -6: spacing for hbox */
+ WIDTH - (1*2) - (10*2) - SPACER_LEFT - req.width - (6*2),
-1);
}