133 Commits

Author SHA1 Message Date
Nikos Tsipinakis
0a3298dde4 Merge pull request #387 from bebehei/tests-for-string-append
Tests for string append
2017-10-06 18:17:50 +03:00
Benedikt Heine
6e654eb751 Improve usage of string_append 2017-10-06 13:13:47 +02:00
Benedikt Heine
a6301ff464 Do not concatenate empty strings with separator 2017-10-06 13:13:47 +02:00
Nikos Tsipinakis
82d544e95e Merge pull request #391 from bebehei/flickerless-replace
Replace notifications flickerless
2017-10-05 16:34:26 +03:00
Benedikt Heine
5680291c20 Fix small memory leak 2017-10-05 12:39:58 +02:00
Benedikt Heine
1533fcd782 Replace notifications flickerless
Previously, notifications had been replaced by removing the notification
out of the displayed/queue lists, redrawing the window and then adding
the new notification into the queue. This produced a flickering in
dunst.

By avoiding the overhead of closing and opening the window (simply
replacing the datapointer of the list), the flickering disappears.
2017-09-27 00:24:21 +02:00
Nikos Tsipinakis
a64cb82946 Merge pull request #388 from fhost/fhost/ellipsize
Use config.h for default ellipsize value
2017-09-26 09:32:11 +03:00
Benedikt Heine
a1781a451b Check for b value if null in string_append
This avoids "a", NULL, "sep" to come to "asep" instead of "a".
2017-09-25 03:55:19 +02:00
Benedikt Heine
41defb7c85 Break overlong argument lists 2017-09-25 02:26:11 +02:00
Benedikt Heine
554c873808 Mark constant strings as const
It's hard to trace back, which methods in option parser require freeing
the result and which prohibit it. Marking all non-freeable values as
const lets this problem solve the compiler.
2017-09-25 02:26:11 +02:00
fhost
f9f6830c71 Use config.h for default ellipsize value
Get the default value for ellipsize from config.h, instead of
setting it in two different places (in case it is not set, and in
case its value is invalid).
2017-09-24 16:53:58 +02:00
Nikos Tsipinakis
4316c85e18 Merge pull request #374 from fhost/fhost/ellipsize
Add option to control how to ellipsize truncated lines
2017-09-20 16:40:22 +03:00
Nikos Tsipinakis
ad31bb975c Merge pull request #381 from bebehei/typo-1
Rename double to int
2017-09-20 10:32:29 +03:00
fhost
f4b595240a Add option to control how to ellipsize truncated lines 2017-09-19 20:03:16 +02:00
Benedikt Heine
530eaaf5ed Rename double to int 2017-09-19 13:26:30 +02:00
Benedikt Heine
1c7f674ee0 Correct indentation 2017-09-19 00:10:36 +02:00
Benedikt Heine
e16117ca30 Use double pointers for haystack 2017-09-07 15:25:54 +02:00
Benedikt Heine
4b7f656f6e Interpret '%%' as literal '%' in format 2017-09-07 15:25:21 +02:00
Benedikt Heine
ab9bf55892 Prevent replacement of format strings in message
To replace all occuring format strings inside the msg, replace_all had
been used previously. This leads to buggy behavior, if a format string
occurs in the replaced text, as the format string will get replaced
again under certain conditions.

Introducing a pointer, which skips the already replaced parts, will
prevent doubly replacing format strings from content.

Fixes #322
2017-09-07 15:25:14 +02:00
Nikos Tsipinakis
16bbde5bf3 Merge pull request #343 from bebehei/transient-notifications
add support for transient hints
2017-09-07 14:01:19 +03:00
Benedikt Heine
759aa518d5 Refactor star scheme of pointers
To achieve a consistent scheme, all stars of the
pointers should be on the side of the variable and
not on the side of the type.

wrong: char* a
wrong: char * a
good:  char *a

This commit is generated by the following sed command
with manual fixes of all false positives.

find src \( -name '*.c' -or -name '*.h' \) -print0
| xargs -0 -n1 sed -i
's/\([a-zA-Z]\+[-_a-zA-Z0-9]*\)\s*\*\s\+
\([a-zA-Z]\+[-_a-zA-Z0-9]*\)/\1 *\2/g'
2017-09-06 23:14:25 +02:00
Benedikt Heine
a833b4a0f4 Fix memory leak in get_pixbuf_from_path
If the svg-file is not found, the string containing the svg ending is
never freed again.
2017-08-30 19:41:15 +02:00
Nikos Tsipinakis
eb0a0f8602 Fix infinite loop when checking timeouts
Move the iter pointer to the next item before doing any logic that might
result in exiting from the current iteration of the loop since it would
cause the same notification to be processed repeatedly resulting in an
infinite loop.

Fixes 362.
2017-08-19 20:37:54 +03:00
Benedikt Heine
d4f6726944 Add rule to ignore transient settings 2017-08-19 12:46:33 +02:00
Benedikt Heine
02ba060490 Refactor if chain to avoid nested statements 2017-08-19 12:46:00 +02:00
Benedikt Heine
585f0f85e0 Add support for transistent hints 2017-08-19 12:46:00 +02:00
Nikos Tsipinakis
3c257eaeb7 Merge pull request #351 from bebehei/wordexp
replace variables and ~ in script paths
2017-08-19 10:12:16 +03:00
Benedikt Heine
8e3a7586d1 replace ~/ in script paths 2017-08-15 23:35:02 +02:00
Dmitri Goutnik
bf98183098 Add libgen.h include and guard against basename(3) modifying its arg 2017-08-15 10:44:32 -05:00
Nikos Tsipinakis
99c74b8703 Merge pull request #352 from bebehei/nextiter
Optimize check_timeouts
2017-08-15 11:49:45 +03:00
Benedikt Heine
66fceb9661 handle removing of elements in GList correctly
When closing a notification in check_timeouts, iter will get removed
of the list and therefore iter->next is NULL at the end of the
loop. This requires calling check_timeouts again.

Shifting iter to iter->next before removing the notification, we can
avoid recalling check_timeouts and avoid processing the already
processed list again.
2017-08-14 11:00:33 +02:00
Steven Schäfer
d61a6183a5 parse raw icons from the (deprecated) image_data attribute 2017-08-06 22:11:10 +02:00
Benedikt Heine
b7ff4f9f1f print usage only on stdout 2017-08-04 09:55:59 +02:00
Nikos Tsipinakis
f14301292c Merge pull request #346 from bebehei/reorder-getopt
change order of option_get_* to be displayed during --help
2017-08-01 19:26:51 +03:00
George Angelopoulos
9acb9fd255 add backwards compatibility for icon_folders option
Existing configurations will continue to work but now print a warning.
New, icon_path option takes precedence if both options are used.
If icon_folders option is used, its usage string also appears in --help
output.
2017-08-01 12:51:00 +02:00
Benedikt Heine
677e1f14ca change order of option_get_* to be displayed during --help 2017-08-01 12:21:55 +02:00
George Angelopoulos
4d03acc454 replace 'folder' with 'path' in icon functionality
"folder" is more of a windows term. In unix we have paths and
directories.
2017-07-29 15:16:08 +02:00
Benedikt Heine
7443021897 fix typos and reformat print output 2017-07-24 22:31:06 +02:00
Benedikt Heine
c9980347cf improve readability in dbus.c 2017-07-23 02:12:10 +02:00
Nikos Tsipinakis
86cbc1d34b Make icon set via rules take priority over raw icons
When a notification contains both a raw icon and an icon path according
to the GNOME notification specification the raw icon should take
priority over anything else.

If, however, a user uses the new_icon rule to set a custom icon on a
notification, that rule overwrote the icon path and not the raw icon
and as a result the raw icon was displayed in place of the user
specified one.

As a simple fix, a new icon_overridden boolean was added to the
notification struct indicating if a custom icon has been set. If so, the
icon path should take priority over the raw icon.

Fixes #339
2017-07-19 09:13:19 +03:00
Nikos Tsipinakis
599db75401 Add deprecation warning for the frame section 2017-07-11 11:08:36 +03:00
Nikos Tsipinakis
842a35db06 Make per_monitor_dpi take precedence over Xft.dpi
If the per-monitor dpi feature has been enabled it shouldn't be overridden
just because an Xft.dpi value is set, it's possibly for other programs
that don't have such a feature.
2017-07-11 10:12:56 +03:00
Nikos Tsipinakis
c547f6eec9 Add force_xinerama option
Since after the release a lot of downstream users will not be building
from source, it makes a lot more sense to have an option to fall back to
the Xinerama extension for those that are still on systems that do not
support RandR.
2017-07-10 14:38:20 +03:00
Nikos Tsipinakis
44ac026d97 Add format string for raw progress value
While it's not the best solution, it should cover most use cases where a
custom format on the progress value is required. If any further
customization is needed, the only current alternative is to use rules
to override the format.

Closes #273
2017-07-09 20:20:49 +03:00
Benedikt Heine
717c747a8c truncate overlong messages (fixes #248)
Displaying too heavy notifications can DoS dunst. For example bad
programs, which pipe raw image data into the notification.
Limiting the maximum character length to 5000 circumvents this.

5000 should be ridiculously high to prevent DoS while still not
truncating all correct notifications.
2017-07-09 16:34:47 +02:00
Nikos Tsipinakis
a08fba49d0 Remove bounce setting
Bounce was functionally removed in
b2883b213342c912a76329bb8f6c179ea3451ae5 during the transition from Xft
to Cairo without any mention. There is no use to keeping it in the example dunstrc
and storing the value in the code,

This commit will probably be reversed if and when bounce is
re-implemented.
2017-07-03 15:36:08 +03:00
Nikos Tsipinakis
5e2c781cba Move frame settings to the global section
There is no reason for the frame settings to have their own section
since it's not an area that will be expanded upon. Move them to the
global section to be consistent.
2017-07-01 11:56:15 +03:00
Reto Schnyder
d9977cbb41 Handle clicks on release instead of press
This prevents the release event from going to the window behind if the
click closes the notification.
2017-06-29 20:04:14 +02:00
Reto Schnyder
c8e6f317ab Move url prefix removal to open_browser
This way, it also applies to middle clicks.
Incidentally, it seems this fixed a crash when opening <a href> urls.
2017-06-29 19:59:50 +02:00
Reto Schnyder
e04bfe0a58 Allow middle click on notification to invoke action
A middle click on an notification with a single or default action will
invoke it. If there are multiple actions and no default, the context
menu is opened. If there are no actions, proceed similarly with URLs.
2017-06-29 19:38:54 +02:00