--- notification-daemon-engine-nodoka-0.1.0/src/nodoka-theme.c 2008-04-20 11:50:24.000000000 +0200 +++ /tmp/nodoka/notification-daemon-engine-nodoka/src/nodoka-theme.c 2009-05-10 13:09:13.000000000 +0200 @@ -41,7 +41,6 @@ int offset; GdkPoint position; - } ArrowParameters; typedef struct @@ -73,6 +72,7 @@ UrlClickedCb url_clicked; + GtkTextDirection rtl; } WindowData; @@ -367,7 +367,9 @@ draw_stripe(GtkWidget *widget, WindowData *windata, cairo_t *cr) { cairo_save (cr); - cairo_rectangle (cr, 0, 0, STRIPE_WIDTH, windata->height); + cairo_rectangle (cr, (windata->rtl == GTK_TEXT_DIR_RTL) ? + windata->width-STRIPE_WIDTH : 0, 0, + STRIPE_WIDTH, windata->height); cairo_clip (cr); GdkColor top_color; @@ -614,8 +616,7 @@ unsigned int micro_ver) { return major_ver == 0 && - minor_ver == 3 && - micro_ver >= 2; + (minor_ver > 3 || (minor_ver == 3 && micro_ver >= 2)); } /* Sending theme info to the notification daemon */ @@ -658,6 +659,7 @@ win = gtk_window_new(GTK_WINDOW_POPUP); windata->win = win; + windata->rtl = gtk_widget_get_default_direction(); windata->enable_transparency = FALSE; screen = gtk_window_get_screen(GTK_WINDOW(win)); colormap = gdk_screen_get_rgba_colormap(screen); @@ -672,7 +674,7 @@ gtk_window_set_title(GTK_WINDOW(win), "Notification"); gtk_widget_add_events(win, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); gtk_widget_realize(win); - gtk_widget_set_size_request(win, WIDTH, -1); +// gtk_widget_set_size_request(win, WIDTH, -1); g_object_set_data_full(G_OBJECT(win), "windata", windata, (GDestroyNotify)destroy_windata); @@ -819,7 +821,7 @@ update_content_hbox_visibility(windata); gtk_widget_set_size_request( - ((body != NULL && *body == '\0') + ((body != NULL && *body != '\0') ? windata->body_label : windata->summary_label), WIDTH - (IMAGE_SIZE + IMAGE_PADDING) - 10, -1);