1294 Commits

Author SHA1 Message Date
Benedikt Heine
b4ce81b1c9 Move test coverage generation into Makefile
Add the necessary compiler flags to the Makefile to actually make
coverage reports available locally, too.

The coverage files have to get cleaned every time before the test gets
run. Otherwise, it would sum up the coverage over multiple test runs.
2018-11-15 15:17:16 +01:00
Benedikt Heine
eba6913faa Test version number in unittests
Enforces a version number as intended in the Makefile. This check is
necessary, as there is no ability to check via Macros for an empty
string.
2018-11-12 15:32:58 +01:00
Nikos Tsipinakis
27c6a1682d
Merge pull request #552 from Gravemind/x-canonical-private-synchronous
Implement x-canonical-private-synchronous hint
2018-11-11 19:55:05 +02:00
Nikos Tsipinakis
f0b047497e
Merge pull request #560 from bebehei/rework-utils
Add docstrings to the functions in markup and utils
2018-11-11 19:49:39 +02:00
Benedikt Heine
2d2a9c893c Add doxygen docs for markup and utils files 2018-11-11 17:27:11 +01:00
Benedikt Heine
413c0d68af Use assertions and NULL checks in markup and utils 2018-11-11 17:26:14 +01:00
Benedikt Heine
90b04a22dd Use g_malloc instead of malloc
g_malloc won't return NULL, but abort the program. As we don't check for
NULl, this is the better solution.
2018-11-11 15:18:56 +01:00
Benedikt Heine
ae1b20881e Use isspace to test for whitespace 2018-11-11 15:18:56 +01:00
Benedikt Heine
d8d457f500 Remove string_replace()
string_replace_at does almost the same and string_replace is only used
once, where additionally string_replace_at would be the better choice.
2018-11-11 15:18:56 +01:00
Jordan Galby
d879d70da0 Implement stack_tag, implementing x-canonical-private-synchronous
Implements "x-dunst-stack-tag", "x-canonical-private-synchronous",
"private-synchronous", and "synchronous" hints via the "stack_tag" feature.
2018-11-10 14:59:32 +01:00
Nikos Tsipinakis
b805273fb9
Merge pull request #558 from tsipinakis/feature/markup-escape
Implement smarter markup escaping
2018-11-06 21:04:35 +02:00
Nikos Tsipinakis
2c6cb8ebf3 Implement smarter markup escaping
Automatically detect and escape invalid and unsupported & entities.

Fixes #546
2018-11-06 20:49:47 +02:00
Nikos Tsipinakis
5eb34fae4e
Merge pull request #556 from bebehei/cleanup
Cleanup
2018-11-01 22:14:41 +02:00
Benedikt Heine
851f8a7339 Rename dbus methods consistently 2018-10-31 15:19:24 +01:00
Benedikt Heine
9cd600f0bf Remove unused function get_filename_ext
This function had been copied 100% out of the stackoverflow answer
https://stackoverflow.com/a/24976006
2018-10-31 15:19:24 +01:00
Benedikt Heine
a24a464fbc Remove superfluous pause_signal_handler func 2018-10-31 15:19:24 +01:00
Benedikt Heine
08019dc268 Move context_menu into right header 2018-10-31 15:19:24 +01:00
Benedikt Heine
63163fb498
Merge pull request #554 from anbenson/master
Add error message for failed regex initialization
2018-10-30 12:43:36 +01:00
Andrew Benson
f48a939dbf Add error message for failed regex initialization 2018-10-29 07:32:19 -07:00
Nikos Tsipinakis
f12f1094ed
Merge pull request #550 from bebehei/misc
Misc patches
2018-10-10 17:59:30 +03:00
Benedikt Heine
8ba4983ce0
Merge pull request #549 from bebehei/threaded-dmenu
Threaded dmenu

Create a refcounting mechanism for notifications and "lock" them while displayed in dmenu.

Fixes #456
2018-10-10 16:49:28 +02:00
Benedikt Heine
f0e4870d99 Reorder CC arguments similarily
Output first, then all required objects and then the FLAGS
2018-10-10 12:58:04 +02:00
Benedikt Heine
750e05f03b Remove trailing spaces 2018-10-10 11:53:03 +02:00
Benedikt Heine
c0e2a2a7e3 Move all strcmp operations to STR*EQ macros 2018-10-09 10:08:17 +02:00
Benedikt Heine
bb02897bc8 Introduce STR_EQ and STRN_EQ macros 2018-10-09 10:08:17 +02:00
Benedikt Heine
52c47524f2 Test notification referencing 2018-10-08 18:27:11 +02:00
Benedikt Heine
fe7d82380e Use GLib to spawn browser and dmenu 2018-10-08 18:27:11 +02:00
Benedikt Heine
778a6857d8 Move clean_value function to utils.c
This is a typical string manipulation function an has no necessity to
stay in option_parser.
2018-10-08 18:27:11 +02:00
Benedikt Heine
6cc7ca361a Allow half quoted values
Previously config lines like

[rule]
script = mail -s "New notif"

were only possible to get written with additional full quotes,
which makes no sense in command line expressions.
2018-10-08 18:27:11 +02:00
Benedikt Heine
357c4309e6 Pass URLs to browser as a single argument
Parsing the arguments with g_shell_parse_argv is more safe than just
splitting it by spaces. Also this allows to pass values with spaces to
the browser command.
2018-10-08 18:27:11 +02:00
Benedikt Heine
851953f5ef Start dmenu in a separate thread 2018-10-08 18:27:11 +02:00
Benedikt Heine
516161e765 Typo 2018-10-08 17:38:00 +02:00
Benedikt Heine
1f4cd4bd15 Use STR_(EMPTY|FULL) for string emptyness checks 2018-10-08 17:38:00 +02:00
Benedikt Heine
da846d8442 Do not count longer than necessary
And also use g_strndup. This makes allocation easier and also ensures a
null-byte at the end of the string.
2018-10-08 17:38:00 +02:00
Benedikt Heine
c80e3e9a42 Harness dispatch_menu_result against stupid input 2018-10-06 13:44:01 +02:00
Benedikt Heine
38c788c367 Split plain dmenu call into separate function 2018-10-06 13:44:01 +02:00
Benedikt Heine
958aa2bc96 Lock notifications while executing dmenu
When executing dmenu, the current notifications get "locked", by setting
their timeout temporarily to 0 and referencing them. So the notification
won't get closed (exept forcefully) and won't get freed while dmenu is
opened.

This is currently pointless, but as the dmenu call will become threaded,
it's necessary later.
2018-10-06 13:44:01 +02:00
Benedikt Heine
974bcb776e Remember if the notification is living on a valid connection
The notification spec says, that a notification gets invalidated when
closed. So the client won't listen anymore to ActionInvoked signals and
won't listen to NotificationClosed signals.

Remembering the actual status of the notification helps the standard and
makes the behavior clearer.
2018-10-06 13:44:01 +02:00
Benedikt Heine
837b4fe125 Implement refcounting for notifications 2018-10-06 13:43:49 +02:00
Benedikt Heine
2ef74c0d64 Respect follow mode from defaults struct 2018-10-05 02:10:41 +02:00
Benedikt Heine
403e4cc176 Remove libxdg-basedir dependency
GLib's g_get_user_config_dir function does exactly the same thing and
we don't need libxdg-basedir for something else.
2018-10-05 02:10:41 +02:00
Benedikt Heine
0306446efb Scale PixBuf easier 2018-10-05 02:10:41 +02:00
Benedikt Heine
3b3ed0328e Free layouts inline 2018-10-01 15:05:42 +02:00
Benedikt Heine
0231fabbd3 Make parse_follow_mode a real parser function 2018-10-01 14:58:36 +02:00
Benedikt Heine
4b5cc2c9bc Remove superfluous fflush call
The blame reveals commit 820cfe73, which introduced printing of
notifications similar to notification_print(). The fflush call is still
left over since porting the printfs into their dedicated method.

As notification_print() is called after this fflush() call, it's not
necessary anymore.
2018-10-01 14:58:36 +02:00
Benedikt Heine
c5c4b2cafb Use native notification functions in test
Since we'll allocate also some recursive elements with
notification_create, we have to free the notification properly.
2018-10-01 13:11:21 +02:00
Nikos Tsipinakis
740ebdd5a3
Merge pull request #545 from tsipinakis/bugfix/x11-opt
Draw event optimizations
2018-09-24 20:25:17 +03:00
Nikos Tsipinakis
09ef1b2b32
Merge pull request #531 from bebehei/typenames
Refactor typenames
2018-09-24 15:55:28 +03:00
Nikos Tsipinakis
7ac054b3cc Simplify window showing and hiding
As suggested by @bebehei make x_win_{show,hide} callable at any time and
avoid double checking the queue length.
2018-09-20 10:49:40 +03:00
Nikos Tsipinakis
69100790a1 Do not wake up on focus events
Focus events do not mark any change in state of the notifications so
calling wake_up as a response is a wake of CPU cycles. Instead treat
them like PropertyNotify and only redraw if we need to change monitors.
2018-09-20 10:40:05 +03:00