File 3291-Change-the-taskbar-api-to-be-forward-compat.patch of Package erlang

From 78c67c71f99fb4c5f47220f49cbe1f788eb176ee Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson <dgud@erlang.org>
Date: Mon, 7 Dec 2020 09:58:09 +0100
Subject: [PATCH] Change the taskbar api to be forward compat

The API will change to an option list in OTP-24,
so change the API now before it is used.
---
 lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl | 15 +++++++++------
 lib/wx/examples/simple/menu.erl           |  4 +---
 lib/wx/src/gen/wxTaskBarIcon.erl          | 15 +++++++++------
 3 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl b/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl
index 71e756157f..cde9c5ead6 100644
--- a/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl
+++ b/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl
@@ -31,12 +31,15 @@ new() ->
 %%   <pre>Callback() -> term()</pre>
 %%
 %% See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxtaskbaricon.html#wxtaskbariconwxtaskbaricon">external documentation</a>.
--spec new(function()) -> wxTaskBarIcon().
-new(F) when is_function(F)->
-  Fun = fun([_]) -> 
-    #wx_ref{type=wxMenu,ref=ThisRef} = F(),
-    <<ThisRef:32/?UI>>
-  end,
+-spec new([Option]) -> wxTaskBarIcon() when
+    Option :: {'createPopupMenu', fun(() -> wxMenu:wxMenu())}.
+new([]) ->
+    new();
+new([{createPopupMenu, F}]) when is_function(F) ->
+  Fun = fun([_]) ->
+                #wx_ref{type=wxMenu,ref=ThisRef} = F(),
+                <<ThisRef:32/?UI>>
+        end,
   BinFun = <<(wxe_util:get_cbId(Fun)):32/?UI, 0:32>>,
   wxe_util:construct(?wxTaskBarIcon_new, BinFun).
 wxTaskBarIcon_new>>
diff --git a/lib/wx/examples/simple/menu.erl b/lib/wx/examples/simple/menu.erl
index 6765af2cc3..a81a1a6efa 100644
--- a/lib/wx/examples/simple/menu.erl
+++ b/lib/wx/examples/simple/menu.erl
@@ -90,9 +90,7 @@
 start() ->
     Wx = wx:new(),
     Frame = wx:batch(fun() -> create_frame(Wx) end),
-    Taskbar = wxTaskBarIcon:new(fun() ->
-        create_dummy_menu()
-    end),
+    Taskbar = wxTaskBarIcon:new([{createPopupMenu, fun() -> create_dummy_menu() end}]),
     wxWindow:show(Frame),
     Path = filename:dirname(code:which(?MODULE)),
     wxTaskBarIcon:setIcon(Taskbar, wxIcon:new(filename:join(Path,"sample.xpm"), [{type, ?wxBITMAP_TYPE_XPM}])),
diff --git a/lib/wx/src/gen/wxTaskBarIcon.erl b/lib/wx/src/gen/wxTaskBarIcon.erl
index 66888abcd1..2f06d906ea 100644
--- a/lib/wx/src/gen/wxTaskBarIcon.erl
+++ b/lib/wx/src/gen/wxTaskBarIcon.erl
@@ -50,12 +50,15 @@ new() ->
 %%   <pre>Callback() -> term()</pre>
 %%
 %% See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxtaskbaricon.html#wxtaskbariconwxtaskbaricon">external documentation</a>.
--spec new(function()) -> wxTaskBarIcon().
-new(F) when is_function(F)->
-  Fun = fun([_]) -> 
-    #wx_ref{type=wxMenu,ref=ThisRef} = F(),
-    <<ThisRef:32/?UI>>
-  end,
+-spec new([Option]) -> wxTaskBarIcon() when
+    Option :: {'createPopupMenu', fun(() -> wxMenu:wxMenu())}.
+new([]) ->
+    new();
+new([{createPopupMenu, F}]) when is_function(F) ->
+  Fun = fun([_]) ->
+                #wx_ref{type=wxMenu,ref=ThisRef} = F(),
+                <<ThisRef:32/?UI>>
+        end,
   BinFun = <<(wxe_util:get_cbId(Fun)):32/?UI, 0:32>>,
   wxe_util:construct(?wxTaskBarIcon_new, BinFun).
 %% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxtaskbaricon.html#wxtaskbariconpopupmenu">external documentation</a>.
-- 
2.26.2

openSUSE Build Service is sponsored by