| surf-2.0-notifications.diff - sites - public wiki contents of suckless.org | |
| git clone git://git.suckless.org/sites | |
| Log | |
| Files | |
| Refs | |
| --- | |
| surf-2.0-notifications.diff (3032B) | |
| --- | |
| 1 diff --git a/config.def.h b/config.def.h | |
| 2 index 6d3135e..2b3a14f 100644 | |
| 3 --- a/config.def.h | |
| 4 +++ b/config.def.h | |
| 5 @@ -22,6 +22,7 @@ static Parameter defconfig[ParameterLast] = { | |
| 6 SETB(KioskMode, 0), | |
| 7 SETB(LoadImages, 1), | |
| 8 SETB(MediaManualPlay, 0), | |
| 9 + SETB(Notifications, 0), | |
| 10 SETB(Plugins, 1), | |
| 11 SETV(PreferredLanguages, ((char *[]){ NULL })), | |
| 12 SETB(RunInFullscreen, 0), | |
| 13 @@ -148,6 +149,7 @@ static Key keys[] = { | |
| 14 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_g, toggle, { .i = Geo… | |
| 15 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_s, toggle, { .i = Jav… | |
| 16 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_i, toggle, { .i = Loa… | |
| 17 + { MODKEY|GDK_SHIFT_MASK, GDK_KEY_l, toggle, { .i = Not… | |
| 18 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_v, toggle, { .i = Plu… | |
| 19 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = Scr… | |
| 20 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_m, toggle, { .i = Sty… | |
| 21 diff --git a/surf.c b/surf.c | |
| 22 index 93a1629..d47dc60 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 @@ -568,7 +569,8 @@ gettogglestats(Client *c) | |
| 34 togglestats[6] = curconfig[Plugins].val.b ? 'V' : 'v'; | |
| 35 togglestats[7] = curconfig[Style].val.b ? 'M' : 'm'; | |
| 36 togglestats[8] = curconfig[FrameFlattening].val.b ? 'F' : 'f'; | |
| 37 - togglestats[9] = '\0'; | |
| 38 + togglestats[9] = curconfig[Notifications].val.b ? 'L' : 'l'; | |
| 39 + togglestats[10] = '\0'; | |
| 40 } | |
| 41 | |
| 42 void | |
| 43 @@ -681,6 +683,9 @@ setparameter(Client *c, int refresh, ParamName p, co… | |
| 44 case MediaManualPlay: | |
| 45 webkit_settings_set_media_playback_requires_user_gestur… | |
| 46 break; | |
| 47 + case Notifications: | |
| 48 + refresh = 0; | |
| 49 + return; | |
| 50 case Plugins: | |
| 51 webkit_settings_set_enable_plugins(s, a->b); | |
| 52 break; | |
| 53 @@ -834,6 +839,7 @@ newwindow(Client *c, const Arg *a, int noembed) | |
| 54 cmd[i++] = curconfig[Geolocation].val.b ? "-G" : "-g" ; | |
| 55 cmd[i++] = curconfig[LoadImages].val.b ? "-I" : "-i" ; | |
| 56 cmd[i++] = curconfig[KioskMode].val.b ? "-K" : "-k" ; | |
| 57 + cmd[i++] = curconfig[Notifications].val.b ? "-L" : "-l" ; | |
| 58 cmd[i++] = curconfig[Style].val.b ? "-M" : "-m" ; | |
| 59 cmd[i++] = curconfig[Inspector].val.b ? "-N" : "-n" ; | |
| 60 cmd[i++] = curconfig[Plugins].val.b ? "-P" : "-p" ; | |
| 61 @@ -1301,6 +1307,14 @@ permissionrequested(WebKitWebView *v, WebKitPermi… | |
| 62 return TRUE; | |
| 63 } | |
| 64 | |
| 65 + if (WEBKIT_IS_NOTIFICATION_PERMISSION_REQUEST(r)) { | |
| 66 + if (curconfig[Notifications].val.b) | |
| 67 + webkit_permission_request_allow(r); | |
| 68 + else | |
| 69 + webkit_permission_request_deny(r); | |
| 70 + return TRUE; | |
| 71 + } | |
| 72 + | |
| 73 return FALSE; | |
| 74 } | |
| 75 | |
| 76 @@ -1703,6 +1717,12 @@ main(int argc, char *argv[]) | |
| 77 case 'K': | |
| 78 defconfig CSETB(KioskMode, 1); | |
| 79 break; | |
| 80 + case 'l': | |
| 81 + defconfig CSETB(Notifications, 0); | |
| 82 + break; | |
| 83 + case 'L': | |
| 84 + defconfig CSETB(Notifications, 1); | |
| 85 + break; | |
| 86 case 'm': | |
| 87 defconfig CSETB(Style, 0); | |
| 88 break; |