* Handle multiple notifications at the same time
-* Properly handle duration = 0
+* ~~Properly handle duration = 0~~
* Keyboard shortcut to dismiss and accept notifications (also mouse)
-* Properly print new lines
+* ~~Properly print new lines~~
+* Refactor code
\ No newline at end of file
int get_max_len(char *body, XftFont *font, int max_text_width)
{
- int body_len = strlen(body);
+ int eol = strlen(body);
XGlyphInfo info;
- XftTextExtentsUtf8(display, font, (FcChar8 *)body, body_len, &info);
+ XftTextExtentsUtf8(display, font, (FcChar8 *)body, eol, &info);
- if (info.width < max_text_width)
- return body_len;
+ if (info.width > max_text_width)
+ {
- int eol = max_text_width / font->max_advance_width;
- info.width = 0;
+ eol = max_text_width / font->max_advance_width;
+ info.width = 0;
- while (info.width < max_text_width)
- {
- eol++;
- XftTextExtentsUtf8(display, font, (FcChar8 *)body, eol, &info);
+ while (info.width < max_text_width)
+ {
+ eol++;
+ XftTextExtentsUtf8(display, font, (FcChar8 *)body, eol, &info);
+ }
+
+ eol--;
}
- eol--;
+ for (int i = 0; i < eol; i++)
+ if (body[i] == '\n')
+ return ++i;
+
+ if (info.width < max_text_width)
+ return eol;
int temp = eol;
XCloseDisplay(display);
exit(EXIT_SUCCESS);
-}
+}
\ No newline at end of file