commit 5cc3897d4e8050f9a5919990cba504a1e4491e1b
Author: Erno Hopearuoho <[email protected]>
Date:   Wed Dec 23 21:23:46 2020 +0200

    [surf][patch][notifications] surf: add notification support for current git 
master
    Credited Abdel-Rahman Mohammed who contacted me with the changes he had 
made to support current master

diff --git a/surf.suckless.org/patches/notifications/index.md 
b/surf.suckless.org/patches/notifications/index.md
index b37a161f..21cad0c7 100644
--- a/surf.suckless.org/patches/notifications/index.md
+++ b/surf.suckless.org/patches/notifications/index.md
@@ -12,8 +12,10 @@ Download
 --------
 
 * [surf-2.0-notifications.diff](surf-2.0-notifications.diff) (3.0k) (20200604)
+* 
[surf-notifications-20201223-7dcce9e1.diff](surf-notifications-20201223-7dcce9e1.diff)
 (3.3k) (20201223)
 
 Author
 ------
 
 * Erno Hopearuoho - [email protected]
+* Abdel-Rahman Mohammed - [email protected]
diff --git 
a/surf.suckless.org/patches/notifications/surf-notifications-20201223-7dcce9e1.diff
 
b/surf.suckless.org/patches/notifications/surf-notifications-20201223-7dcce9e1.diff
new file mode 100644
index 00000000..c3782e39
--- /dev/null
+++ 
b/surf.suckless.org/patches/notifications/surf-notifications-20201223-7dcce9e1.diff
@@ -0,0 +1,84 @@
+diff --git a/config.def.h b/config.def.h
+index be168ab..3e9f40e 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -41,6 +41,7 @@ static Parameter defconfig[ParameterLast] = {
+       [KioskMode]           =       { { .i = 0 },     },
+       [LoadImages]          =       { { .i = 1 },     },
+       [MediaManualPlay]     =       { { .i = 1 },     },
++      [Notifications]       =       { { .i = 0 },     },
+       [Plugins]             =       { { .i = 1 },     },
+       [PreferredLanguages]  =       { { .v = (char *[]){ NULL } }, },
+       [RunInFullscreen]     =       { { .i = 0 },     },
+@@ -182,6 +183,7 @@ static Key keys[] = {
+       { MODKEY|GDK_SHIFT_MASK, GDK_KEY_g,      toggle,     { .i = Geolocation 
} },
+       { MODKEY|GDK_SHIFT_MASK, GDK_KEY_s,      toggle,     { .i = JavaScript 
} },
+       { MODKEY|GDK_SHIFT_MASK, GDK_KEY_i,      toggle,     { .i = LoadImages 
} },
++      { MODKEY|GDK_SHIFT_MASK, GDK_KEY_l,      toggle,     { .i = 
Notifications } },
+       { MODKEY|GDK_SHIFT_MASK, GDK_KEY_v,      toggle,     { .i = Plugins } },
+       { MODKEY|GDK_SHIFT_MASK, GDK_KEY_b,      toggle,     { .i = ScrollBars 
} },
+       { MODKEY|GDK_SHIFT_MASK, GDK_KEY_t,      toggle,     { .i = StrictTLS } 
},
+diff --git a/surf.c b/surf.c
+index ac832ff..2f2632b 100644
+--- a/surf.c
++++ b/surf.c
+@@ -72,6 +72,7 @@ typedef enum {
+       KioskMode,
+       LoadImages,
+       MediaManualPlay,
++      Notifications,
+       Plugins,
+       PreferredLanguages,
+       RunInFullscreen,
+@@ -677,7 +678,8 @@ gettogglestats(Client *c)
+       togglestats[8] = curconfig[FrameFlattening].val.i ? 'F' : 'f';
+       togglestats[9] = curconfig[Certificate].val.i ?     'X' : 'x';
+       togglestats[10] = curconfig[StrictTLS].val.i ?      'T' : 't';
+-      togglestats[11] = '++   togglestats[11] = 
curconfig[Notifications].val.i ?  'L' : 'l';
++      togglestats[12] = '+ }
+ 
+ void
+@@ -825,6 +827,9 @@ setparameter(Client *c, int refresh, ParamName p, const 
Arg *a)
+       case MediaManualPlay:
+               webkit_settings_set_media_playback_requires_user_gesture(s, 
a->i);
+               break;
++      case Notifications:
++              refresh = 0;
++              return;
+       case Plugins:
+               webkit_settings_set_enable_plugins(s, a->i);
+               break;
+@@ -1028,6 +1033,7 @@ newwindow(Client *c, const Arg *a, int noembed)
+       cmd[i++] = curconfig[Geolocation].val.i ?     "-G" : "-g" ;
+       cmd[i++] = curconfig[LoadImages].val.i ?      "-I" : "-i" ;
+       cmd[i++] = curconfig[KioskMode].val.i ?       "-K" : "-k" ;
++      cmd[i++] = curconfig[Notifications].val.i ?   "-L" : "-l" ;
+       cmd[i++] = curconfig[Style].val.i ?           "-M" : "-m" ;
+       cmd[i++] = curconfig[Inspector].val.i ?       "-N" : "-n" ;
+       cmd[i++] = curconfig[Plugins].val.i ?         "-P" : "-p" ;
+@@ -1610,6 +1616,8 @@ permissionrequested(WebKitWebView *v, 
WebKitPermissionRequest *r, Client *c)
+               else if (webkit_user_media_permission_is_for_video_device(
+                        WEBKIT_USER_MEDIA_PERMISSION_REQUEST(r)))
+                       param = AccessWebcam;
++      } else if (WEBKIT_IS_NOTIFICATION_PERMISSION_REQUEST(r)) {
++              param = Notifications;
+       } else {
+               return FALSE;
+       }
+@@ -2074,6 +2082,14 @@ main(int argc, char *argv[])
+               defconfig[KioskMode].val.i = 1;
+               defconfig[KioskMode].prio = 2;
+               break;
++      case 'l':
++              defconfig[Notifications].val.i = 0;
++              defconfig[Notifications].prio = 2;
++              break;
++      case 'L':
++              defconfig[Notifications].val.i = 1;
++              defconfig[Notifications].prio = 2;
++              break;
+       case 'm':
+               defconfig[Style].val.i = 0;
+               defconfig[Style].prio = 2;


Reply via email to