surf-notifications-20201223-7dcce9e1.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
surf-notifications-20201223-7dcce9e1.diff (3324B)
---
1 diff --git a/config.def.h b/config.def.h
2 index be168ab..3e9f40e 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -41,6 +41,7 @@ static Parameter defconfig[ParameterLast] = {
6 [KioskMode] = { { .i = 0 }, },
7 [LoadImages] = { { .i = 1 }, },
8 [MediaManualPlay] = { { .i = 1 }, },
9 + [Notifications] = { { .i = 0 }, },
10 [Plugins] = { { .i = 1 }, },
11 [PreferredLanguages] = { { .v = (char *[]){ NULL } }, },
12 [RunInFullscreen] = { { .i = 0 }, },
13 @@ -182,6 +183,7 @@ static Key keys[] = {
14 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_g, toggle, { .i = Geolocation } },
15 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_s, toggle, { .i = JavaScript } },
16 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_i, toggle, { .i = LoadImages } },
17 + { MODKEY|GDK_SHIFT_MASK, GDK_KEY_l, toggle, { .i = Notifications } },
18 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_v, toggle, { .i = Plugins } },
19 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = ScrollBars } },
20 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_t, toggle, { .i = StrictTLS } },
21 diff --git a/surf.c b/surf.c
22 index ac832ff..2f2632b 100644
23 --- a/surf.c
24 +++ b/surf.c
25 @@ -72,6 +72,7 @@ typedef enum {
26 KioskMode,
27 LoadImages,
28 MediaManualPlay,
29 + Notifications,
30 Plugins,
31 PreferredLanguages,
32 RunInFullscreen,
33 @@ -677,7 +678,8 @@ gettogglestats(Client *c)
34 togglestats[8] = curconfig[FrameFlattening].val.i ? 'F' : 'f';
35 togglestats[9] = curconfig[Certificate].val.i ? 'X' : 'x';
36 togglestats[10] = curconfig[StrictTLS].val.i ? 'T' : 't';
37 - togglestats[11] = '\0';
38 + togglestats[11] = curconfig[Notifications].val.i ? 'L' : 'l';
39 + togglestats[12] = '\0';
40 }
41
42 void
43 @@ -825,6 +827,9 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a)
44 case MediaManualPlay:
45 webkit_settings_set_media_playback_requires_user_gesture(s, a->i);
46 break;
47 + case Notifications:
48 + refresh = 0;
49 + return;
50 case Plugins:
51 webkit_settings_set_enable_plugins(s, a->i);
52 break;
53 @@ -1028,6 +1033,7 @@ newwindow(Client *c, const Arg *a, int noembed)
54 cmd[i++] = curconfig[Geolocation].val.i ? "-G" : "-g" ;
55 cmd[i++] = curconfig[LoadImages].val.i ? "-I" : "-i" ;
56 cmd[i++] = curconfig[KioskMode].val.i ? "-K" : "-k" ;
57 + cmd[i++] = curconfig[Notifications].val.i ? "-L" : "-l" ;
58 cmd[i++] = curconfig[Style].val.i ? "-M" : "-m" ;
59 cmd[i++] = curconfig[Inspector].val.i ? "-N" : "-n" ;
60 cmd[i++] = curconfig[Plugins].val.i ? "-P" : "-p" ;
61 @@ -1610,6 +1616,8 @@ permissionrequested(WebKitWebView *v, WebKitPermissionRequest *r, Client *c)
62 else if (webkit_user_media_permission_is_for_video_device(
63 WEBKIT_USER_MEDIA_PERMISSION_REQUEST(r)))
64 param = AccessWebcam;
65 + } else if (WEBKIT_IS_NOTIFICATION_PERMISSION_REQUEST(r)) {
66 + param = Notifications;
67 } else {
68 return FALSE;
69 }
70 @@ -2074,6 +2082,14 @@ main(int argc, char *argv[])
71 defconfig[KioskMode].val.i = 1;
72 defconfig[KioskMode].prio = 2;
73 break;
74 + case 'l':
75 + defconfig[Notifications].val.i = 0;
76 + defconfig[Notifications].prio = 2;
77 + break;
78 + case 'L':
79 + defconfig[Notifications].val.i = 1;
80 + defconfig[Notifications].prio = 2;
81 + break;
82 case 'm':
83 defconfig[Style].val.i = 0;
84 defconfig[Style].prio = 2;