Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GetPopupMenu override for wx.adv.TaskbarIcon not working #2067

Closed
Swatto86 opened this issue Jan 1, 2022 · 3 comments · Fixed by #2068
Closed

GetPopupMenu override for wx.adv.TaskbarIcon not working #2067

Swatto86 opened this issue Jan 1, 2022 · 3 comments · Fixed by #2068

Comments

@Swatto86
Copy link

Swatto86 commented Jan 1, 2022

Operating system: Windows 11
wxPython version & source: wxPython 4.1.1, pypip
Python version & source: Python 3.9, downloaded from website

Description of the problem: The documentation for wxWidgets states that if I override GetPopupMenu then the right-click menu on the system tray icon will not get re-created after each use, this does not seem to happen though, when I override GetPopupMenu I do not see a menu popup when right-clicking the system tray icon. The documentation states use GetPopupMenu if you do not want the menu to get recreated (it is called first) and then if that is not present it will try CreatePopupMenu. The CreatePopupMenu function does work however but the menu gets recreated each time I right-click the system tray icon.

Code Example (click to expand)
import wx
import wx.adv
from wx.core import OK, YES_NO

# base64 encoded image created with img2py
from wx.lib.embeddedimage import PyEmbeddedImage

TRAY_TOOLTIP = "ShutMeDown"
TRAY_ICON = PyEmbeddedImage(
    b"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAApbklEQVR42u2dB5QU1baG/44T"
    b"enJiAlzFAIJgAgETGFCCSFYBUUkiSRRMBAFBBCNBBQQFwQRIVoISryAqoAKKmJDM5By6Zzq+"
    b"OjWX+7wKClPV51R17W+tXoOzcNfZRddfJ+xgOoJLAiAIwpCYSAAIwriQABCEgSEBIAgDQwJA"
    b"EAaGBIAgDAwJAEEYGBIAgjAwJAAEYWBIAAjCwJAAEISBIQEgCANDAkAQBoYEgCAMDAkAQRgY"
    b"EgCCMDAkAARhYEgACMLAkAAQhIEhASAIA0MCQBAGhgSAIAwMCQBBGBgSAIIwMCQABGFgSAAI"
    b"wsCQAIQSJlP1x2KGKSwM5mgHzAmx1Z/4WJhsVpgdEQhI/+Im6aeJ/V2JgM+PgKuy+s/Sz0Bl"
    b"FfzFpfAXlVb/LKuQfwevD/L/HKCvTKhAAqBHzOwBt8OcGAdb/YtgrVsbtnoXwnphbVgvyIAl"
    b"oxYs0kNvCg+rFgQlSA97wO2Br6AYvlPZ8J7Igu9YJjyHjsH7+3G4Dx6Cv6AIgSoP4POJvjPE"
    b"eUICoHWkB9gUFQnrv9IR1vxK2K9sANtlF8kfS+1UmCQxEEnAH5CEIQeeX36H5+fDqPr2R7h3"
    b"75eFIlDupNmCxiEB0CDmuBj5AQ9r2Qzh110F29UNYZMEQPHbnBfSQ+89ngn3/p9RJYlB5bZd"
    b"8Px0SF5SENqCBEALSGtz+Q1/Y1NEtm8Fe4urqh/4EMLDBEESA9f67ajcsQfeY6ekX3pFD8vw"
    b"kACIwmKW1u0XIaLDLYjs3Br2qxrAHBkhelRc8Dsr4d53EK41W+Bct01aPhyu3mAkuEMCwBnr"
    b"hRmIuPMWOO69E/YmlxvmoT8b7NTBve8nVCz/FM7Vm+A9fEL0kAwFCQAH2I59WKtmiO5/NyJa"
    b"3yAfyxF/hR05urbtQvnbS+V9g9NHk0TwIAEIIpb0FDh6d0J0n26wXnohTFaL6CHpgoDPJ88E"
    b"yheuRPm7q+A7mS16SCELCUAQYDv40UN6w9GrAyyJ8aKHo2t8hcVwLtuA0lkfwPPDL6KHE3KQ"
    b"AKiIvUkjxD71kLyxZ/S1vdqwSETXZztQMvVNVO3aL3o4IQMJgArYGtdH3IRhiOx4G0w2m+jh"
    b"hDQBrw+uDZ+jeOLrcH93QPqF6BHpGxIABVjr1UXcM0PkHX2TnR58nrB9AueaLSiZ+BrcP/xK"
    b"EYc1hASgBpiTE+SpPlvnmyPDRQ/H0ASq3Ch7aylKpsyBLytP9HB0BwnAeWCKCIfjgS6IGz8M"
    b"1vQU0cMh/oAvrxAlL85D2dzF1TkIxDlBAnCOhN3YBAnTxiLs2saih0L8DVX7f0LRiCmo3Pa1"
    b"6KHoAhKAf8AcH4PYcUMRPfg+mFl6LaF5Am5pWfD2MhRPmAl/fpHo4WgaEoC/IaLtTUiY/ox8"
    b"rq8X/KyYR2GJnKPPpsX+wmLpISiGT3oQ/PnSf7Ppsc8nF/n4L4EATI5IeSOTfSy1kmBOiocl"
    b"JVEuJGKR/sz2PdjvzGF20S6eM57DJ1A0cgqcazaLHopmIQE4A6ZoB+InPSa99XvJYbxahFXx"
    b"8Z7IhO/oKXh+PSLn4bOUW19uAQKskk9JmbxBpgo2SRSkmZBJ+lhSk2GrVxf2axpWFyO5IAPW"
    b"OmlytSEtEvB4pdnARyge8wr8xWWih6M5SAD+BDvTT5o/RVrrXyF6KP8DC4Rxf/+znGNfueMb"
    b"uL89AF9WrvSgl0uvfb+YQZlNMMdEwSzNFOzXNELELc3lrEZ2D80R2jodYfctv/9o+b4R/w8J"
    b"wGlMJkQP7Y34ySNgjo0WPRoZVlWH5c67NlTn0Puz8uTyXFpGLlUmCUJ1bYOWCLuhKWx1a4se"
    b"loy/vEIOICqd9o440dQYJABgFXiikTh7IiJZQI/gElueY5lwrd2KimUb5LdVoMKp62g3trdg"
    b"a3SpHCwV2ak1bBfVETqegPTgO1d+hoKHx8l7JUbH8AJga3gJkpfMgF2atgohEICvuFT6Um6U"
    b"M9/cu7+vrsAbgrDZgV1aWkXd1xGR3dvCkhgnrMyZ++ffkd9zhFyLwMgYVwCk711k1zZIeut5"
    b"eaebN2xzitXLK1+wHBUrPkWAreUNhCk6Co5udyBqwL0Ia3aFkE1EtlFaMGwiKj5Yo+tZlhKM"
    b"KQBWC2KfHIC4ySO5T/n9Tpc0xd+GkmkL4KasNhl708aIGdlXTqYyS0sGngSkGVjxs6+hZMqb"
    b"gNd4NQoNJwCsVn78K6MQM7Q31+uyt035+2tQ9sZ7cvls4q+woinRg3oi6sEu3OsolM1fhsJH"
    b"JhmuCpGhBIDt7icufBGOzrdzu6b84H/wMUpfnU/17s4RS500xIzoi+g+Xbkuz1i9gbyeI+Av"
    b"Ms7moGEEwCy9UVJWz0H4jU24XM8vvUkqlqyTC1h4fzsq2n1dYr2ojpx1ycqq8VoaVO3+Hjl3"
    b"DYQ/t0C0+1wwhACw0NaUtfMQ1pRDIo+0pnRt+RLF42ag6ut9ol0PCezXXI7450cios1NXE4N"
    b"WMBVTvsBcsejUCfkBYD1yau17m3Yr7ws6NfyHD2F4jGvyrv60HjAju6wWhHZ5XbET3kctksu"
    b"CPrlWK+CnHb94T1yUrTnQSWkBYD1zqu1cSHsDS4O6nXYkR47zisaNx3+vELRboc0rKR63MRH"
    b"ET2wR9CrMHl+P4bs1n3gOxq6IhCyAmBJTap++IMc4MPeFAVDn0Xl1q+pLBUvpFVAeKvmSHh9"
    b"POyN6gX1UixgKOf2PiFbmjwkBYC1za61YUHQi3ewLLOip16kppeCYIlIcdKSgNVqMJmDtzfg"
    b"PvCrJAIPwpedL9pl1Qk5AWBHfWzDL/zGpkG7Bku5LRg6UY4pp6QSwZhMiOx4KxLmPAdrWnLQ"
    b"LlO196AsAv6CYtEeq0pICQAL8mFx/SzpJChIU/zKnd8iv/cT1d1tCc3AujAlLXoZEbddF7ST"
    b"AtemncjtPBgBp0u0u6oROgJgsSBhxljEDLs/KOYDXi/KZn+AolGvGC5aTC+wZKO450Yg5rE+"
    b"QcstKFuwHAWDxoVMa/OQEQAWMBL/4lNBsc3KZxUOmyhn6xHax9HrLiTOmSTvEQQDVlOA5Q+E"
    b"AiEhAJHd2iJ56QyYLOo33/Tl5CPv3kdR+flu0W4S5wHLMExeMQvW2qnqG5eWgnkPPImK99eI"
    b"dlMxuhcAls+f9sVSuXqv2rCknZxOg+D99YhoN4kaYK1bGymrZsN+ZQPVbftLy5Hdqpfu6wno"
    b"WgDYjn/qzqWwX36p6rar9nyP3I6D4MumbjN6hlUzTvnoNYTf3Fx1255Dx5DVoruuTwb0KwAm"
    b"E5LefwVRvTqqbrpy+x7kdhtKNeVDBHNcDJIXT0dE25aq23Z+slX+ruh1U1C3AhD9yP1InDlO"
    b"9SMf56fbkd9rBAX3hBimmCgkv/eKXHREbYrGvCpnfeoRXQoAS+xJ3b5Y9V1e18YdyL17OAKl"
    b"xirPZRRMUZFIeu9VODqrGyfir3DJQUJVX+0V7eL53xO9CQBT8tQt7yGsaSNV7bJd/twug+nN"
    b"H+Kwpi/Jy15HJEstVhH3wUPIvqmH7ioN604A4qeNQexjfVSd+ldKyp3b8WFa8xsEVmWInQ6E"
    b"t2qmqt2ytz5CwcCxot07L3QlABF33oyUlbNgsqvXrsvz0+/IvvV+2u03GOx0IPWzd2C/uqFq"
    b"NgNeH/J6PArnis9Eu3fO6EYAzAlxSPtqGWz1LlTNJnvos1r1gvfXo6LdIwRguSADaTsWy70N"
    b"1cJ79CQym3eDP1cfdSH0IQAmNvUfWz31VwkW3ptz50Oo2rFHtHeEQFhJ8tRNC+WjQrUom7sE"
    b"BYPH66I+hC4EIOz6a5C6eRFMKjWcDPh80lrtGbmKD0GwLkXJH0xTrcIQ69/ICotWbvxCtGv/"
    b"iOYFwBQZgdTtHyKsiXq7/qWvv4vC4c+Jdo3QEHHPj0TcmMGq2WNFRLKuuxuBcqdo1/4WzQtA"
    b"9KBeSJj9LEwq7fqzKL+ctn0RcIVm/z2ihkhv/1ofz62uPKwShY9PRem0BaI9+1s0LQCsln/6"
    b"92thTU9RxZ4vrxCZTTrBdyI067sRymDl49O+WaVaBqGvoBiZjdvDl6XdEyZNC0D8y08j9okB"
    b"6hgLBOQoPycr2U0QZyGi7U1IWfuWaqnlZXMXo2DQeNFunRXNCoC1Xl1k7PsEpogwVeyVzluC"
    b"QlbJRZPeEloiYfpYuaqQGrCS8VnXdoF7/8+i3TojmhUAlr3l6NFBFVssr19O2ywpE+0WoQNM"
    b"UQ6kfbFYtToCzlUbkdt1qGi3zuyrFgXA1qge0r9bo0pdNxadxTq8VG7eKdotPphMiBs/DCaV"
    b"e+l5fvwN5YtWivaOG/LR89b35DqDSmHHzlnX3wP37u9Fu/UXNCkAySvegKNrG1Vslc35EAVD"
    b"Jxhn6m82o07mTnlDS02cqzZV573rILhFLeJfHY3Ykf1UseXasB057fuLdukvaE4A7NdegbSd"
    b"S1V5+3sOn0BWs27wFxgoyYcJwKmdcmckNTGiALDowLSvl8NWv65iW2wWkH3bA6jSWG1JzQlA"
    b"ysrZchNIpQT8fuTfN1Ju0W0oSABUJeKuW5Gyag5MFrNiW84NnyO3vUqnWiqhKQGwXX4p0r9Z"
    b"JTf4UApr0c1aPBuuSy8JgLpYLHLqcKQkBEoJVLnl6ED33oOivfovmhKAhDcmIGZob8V2WOOO"
    b"7JvvQ5UGN12CDgmA6tiuqC8tSz+COUr5xqrcWKT/aNEu/RfNCABr7ZT+wzpYEuIU22JNOwse"
    b"0ldhBtUgAQgKCTPHIWb4A4rtsKPozKvugveoNlrLaUYAYscORvzkkYrtsBuc1awrPEbN8ScB"
    b"CAqWOmlI37sGlsR4xbaKn5uF4vEzRLskowkBYGetLObfVk/5bmvp6++hcPgk0S6JgwQgaMS/"
    b"PAqxTyg/yvMcPo7Mxnci4BTfY1ITAhDRrhVSPpmneKeVFWQ8dU0n+IzcuZcEIGjIy9T9a2FJ"
    b"UjYLYCdUed2Gwbl6k2iXtCEAycteg6N7O8V2Sma8g6IRU0S7IxYSgKCiVt0A5/rPkXun+CNB"
    b"4QLA+rexsF+lJZn8Thcyr+5EffxIAIKK9V/pSD+wHuZohyI7/vIKOUiNFaUViXABYFlXLPtK"
    b"KRVL1yGvx2MiXdEGJABBJ3H+VET3667YjhY6CokVAItFLvcVfv01isywlMvsm3qiatc+Ya5o"
    b"BhKAoGO/qiHSdi1XXEOQNaDNuqEH4BEXrCZUAOTIvz0rFRf7rPp6nxxhRYAEgBO1Ni1CROvr"
    b"FdmQIwNbdBfaYlyoAMQ+NRDxLz6p2E7+gDEon79MlBvaggSAC4572iN56UzFdoomzETJpDeE"
    b"+SFOAKzS9P9z5dN/X2EJTta9mRp6noYEgAts1lr7yDbFadfyMuDGHsJyVoQJgPXSC5Hx/VrF"
    b"iT9l85ag4OFxIlzQJiQA3FCjdBjrIZB5ZQe5apUIhAlAVN9uSFrwgmI7WS17omrHNyJc0CYk"
    b"ANxgfQXTv12tuFFtweAJKHvzQyE+CBMA1qLZ0b2tIhveIydxqkEbeTOF+A8kAPywWZGxfy1s"
    b"DS5WZMb58Rbkdh4s5N4KEQAW9CPX+1fYlLF0xjsoNHrk358hAeBK/ItPIfaphxTZYP0qTjVs"
    b"K6Q9vRABCLvuarnsl9KpE+vCqsVCi0IhAeCKvcnlSP9mtWI7rFxY5davuI9fiADEjh2C+Mkj"
    b"FNnwHDuFzMvbI1Ch7d5r3CEB4Ao7DUjf97HiTNbi5+eg+Jlp/MfPXQCkt75cYqlTa0Vmyt9f"
    b"g/z7n+A6dF1AAsCdxHmTEf3QvYpsuDbuQE67AYDfz3Xs3AXAFO1Axg/rYL0gQ5GdvF4jUbH4"
    b"E55D1wckANyJ7Hy7/FJTgrwPUP92+ItKuY6duwDYGl6CjAPrFa3/WWffk/VbU5PPM0ECwB1L"
    b"ajIyft0Ic3SUIjsi9rS4C0BUv7uRNF/Zzj2LnmLJP3T8dwZIAPjDkto2L0L4zc0VmWEnWuxk"
    b"iyfcBSBh1rOIGXKfIhtlby1FwcBneA5bP5AACCF++ljEKowKLHtnBQr6jeI6br4CICllrc8W"
    b"IOI2ZVlUeb1GSOv/tdyGrStIAIQQ2bm13EBECZVf7UV2y56A18dt3FwFgB2ZZPy2CdaM1Brb"
    b"CHi9ONWwHby/HeU1bH1BAiAEVtkq46fPFDUT9RUU4+SFrRAo53e0zVUAWDmljCPbYDLXvPin"
    b"5/fjyGrSmVp9nw0SACGYHBFI270S9oaXKLJz8rI74P2FX1k7rgIQ0a4laq2fr8iGa+tXyGn9"
    b"IH0RzwYJgDBS1r2FyPY3K7KRy6oFr/yM25i5CkD00N5IfGOCIhulsz9A4dBneQ1Zf5AACEON"
    b"vIDCx6eidNoCbmPmKgAJ08cg5rG+imzkPzQW5W9/xGvI+oMEQBiOHh2QvHi6IhssLZilB/OC"
    b"nwCYTEhe/jocXdsoMkP5//8ACYAwWGJQ2p5V0le95kFuzvX/Rm6HgdzuMz8BkL6YabtXIKxJ"
    b"oxqb8FdWydVTvEbt+3cukAAIg4W3p+//BObY6BrbcB/4VW4eCh+fnAB+AmC3oc6xz+WwyZri"
    b"PZmNzGs6wZ9XyGXIuoQEQBiszkXat6thu6hOjW3IR4G1b0RAetnxgJsAmCRV/Ffebphs1hrb"
    b"cO89KMdLw+PlcnN0CQmAOCzSLPfLZQhrdkWNTQR8PpxIaQF/YTGXIXMTANZeuc7x7YpsuDZ+"
    b"gZw2yjYRQx4SAKGkrJ2HyDtvUWTj5CW3wfv7cS7j5SYAtsb15SrASqD2X+cACYBQEhe8gOi+"
    b"3RTZyGzWFe49P3AZLzcBCLvpWqRtV1b5tPT1d1E4/DkuN0a3kAAIJf6VUYh9vL8iG9lt+qFy"
    b"4w4u4+UmAKwCUMpqZckSReNmoGTyLC43RreQAAgldtTDiJ+qrFJVXs/HULFkHZfxchMAR88O"
    b"SP5QWZBE/qDxKJ+7mMuN0S0kAEKJ6n83kt5WVu8iv8/TKF+0kst4+QnA/Z2R/O7Lym5MX+nG"
    b"LORzY3QLCYBQIu9ph5SlrymykT9wLMrf4hPtyk0Aovp1R9L8qYps8Jwa6RYSAKFEdGyNWmuU"
    b"LXULhj6LstkfcBkvPwF4uCeS3pykyEZulyFwrt7E5cboFhIAoUS0a4Va699WZKNg5BSUTedT"
    b"GoybAKiRCZjT4SG41v2bx3D1CwmAUMJb34DUTQsV2Sh6+mWUvDSPy3j5CcDwB5E4U1kdv5wO"
    b"AyUB2MblxugWEgChhN/SAqlb31Nko+jplyQBeIvLePktAQZJS4A5CpcA0hfQuXIjlxujW0gA"
    b"hBLR5ibU+lRZPn/BiOdRNmMhl/HqaxOQioH+MyQAQonocAtqfaJs+l4wbCLKZr3PZbz8jgEf"
    b"6ILkRS8pspH34FOoeHcVlxujW0gAhBLZtQ1SVryhyEb+oHEon7uEy3h1FQjE83hEt5AACMXR"
    b"uyOS33tVkY38/qNRvmA5l/HyCwXuJinjcmXKWDRhJkomKbMR8pAACCXm0QeRMEPZZndeT2mp"
    b"u4TPUpebAITf2gKpW5TtjlIy0DlAAiCUuOdHIm7MYEU2ctr3h2uDstT5c4VfOvCVlyFjn7Ju"
    b"vuUffoL8+0ZyuTG6hQRAKGq0Cs+87m64v97HZbzcBIA1Bal97HNFNlyf7UBO235cboxuIQEQ"
    b"SvKqOXB0bq3IxqmGbeH56Xcu4+VYEizqPyXBbDW2UfXdj8hq0Z1Kgv0dJADiMJmQ+sUShF9/"
    b"Tc1tSPf3RPr18GXn8xkyt6KgYXbUObYdllqJNTbhPZ5ZXRS0gE+9NF1CAiAMc0xUdVHQSy6o"
    b"sQ1/aTlOpF2HgLOSy5j5CYDFjPRvVsN+VYOa35wKV3VZcE710nQJCYAwrBekI33/WkVlwT0/"
    b"/45TjdqHYFlw1hhk1Ww4OtV8fRSQvnzZ19+DKk4bJLqEBEAY9iaNkLZnpaLGIK5NO5HTtq/0"
    b"tgu1xiBgrcHGIuaxPops5PcdhfKFK3gNWX+QAAgj8u52SPlIWTGQsgXLUdB/NLcx820OOuQ+"
    b"JM56VpGN0tfeReGjFAtwVkgAhKFGDEDRmFdRMvVNbmPm2x68fSvUWqesWII8RWrTR/oi8hq1"
    b"ziABEEbKx3MRedetimzk9ngMzqX8ql5xFQBr3drIOLQVJnPN10ie344is2kXBErLeQ1bX5AA"
    b"CMEUGY60XStgb1RPkZ1Tl7eD5+AhfuPmKQCmyAjU/n2Lov6AAY9XvkleSQiIM0ACIATW+Srj"
    b"4KcwR0XW2Ia/uBQn/tUSgbIKbuPmKgCwWFBr00JE3NJCkZnce4fD+dEGbsPWFSQAQlCjFmDV"
    b"7v3IurEH10A3vgIgkThnEqIH9VRko3TW+ygcNpHnsPUDCYAQ4l96GrFPDlBko/zd1ch/8Emu"
    b"4+YuANGDeyFxtrKHt/KLb5F9a28KCT4TJAD8YTPbje8g4tbrFJkpfHwqSqcpKyd2vnAXABYJ"
    b"mL73Y0U2/OVOnKp/B3yZOTyHrg9IALhjTk5Axs8bYUmIVWQns0V3uHft5zp27gLAwiTTD34K"
    b"a3qKIju59wyHcxntA/wFEgDuhLdtidQN8xXZ8BUU4VS9O+Av5Jvnwl0AYDZVn5cq7KFe/s4K"
    b"5PcbxXXouoAEgDsJr49HzLD7FdlwbfkKOW36Skrg4zp2/gIgETt+GOInPqrIhufQMTkxiFfW"
    b"lG4gAeCKKTxMjv9Xev5f8up8FD3xAv/xixCAsJbXIu3zDxXbyWzWFe49P/AevrYhAeCK7bKL"
    b"kP7jBpik+66E7Hb9UfkpnzJgf0SIAJgT45BxYIPiL6ko1dQ0JABcUWM26yssQWaDNvDlFnAf"
    b"vxABkFODV86Co/PtisywZQCLCoTbw90FzUICwA+rRZr+r0KYghoXDLnUXfv+3FKA/4gYAZCI"
    b"GtgDSXOVZ/VlNusmLQO+F+GCNiEB4IatcX2k7/tEUW4LQ8T5/2mECYC1fl1k7F8LU5hdkR0q"
    b"Ff4nSAC4ETf1ccSNGqTIRsDrQ1bTznDv/1mID8IEAHYb0nYuRVjTxorMsHXTybo302nAaUgA"
    b"uMBeXBmHtsBaO1WRHfe+n5B13d0IVFaJ8UOYAECdDRQGz04qmocEgAuRnVsjZdUcxXZY8Q9W"
    b"BEQUQgWANQtJ/3q5fJaqBNeWL5HT+kFRbmgLEgAupKx/G5HtWimywVLbs264V+gellABgM2K"
    b"tC+WIKzZlYrMBNweZDXvLk2nDgpzRTOQAAQd+eyfbf4p3L9y75em/y3ETf8ZYgVAIvaJAYh/"
    b"+WnFdsoXrkR+X+V2dA8JQNBJmDUBMUN6K7ZTPHkWisfNEOqLcAGw1a8rn6Waox2K7PjLK5B5"
    b"RQd4j5wU6Y54SACCiiU9pbryj4La/wy/0yW//T0//CLUH+ECwFCjmCKj5JW3UfTki6LdEQsJ"
    b"QFCJe/YRxE0YrtiOnPzT+gHR7mhDACI7tZYjA5XGU8shlVfdBd+JLNEuiYMEIGjIef8/rIOl"
    b"lrJ7yxrcsC7XFYvFn1xpQgBMEeFIl26s7eJ/KbZl+PwAEoCgETfxUcSNH6bYjvdUNk5d3h6B"
    b"kjLRLmlDABhxkx5D3Lihiu2wwgqsgajvuEFnASQAQYGt/dnOv0WaBSilZNoCFD0+VbRLMpoR"
    b"AOuFtaUb/LHizRVG6RvvofCRSaJdEgMJQFCIm/I44kYrC/tlsHJ2mU06w/vrEdEuyWhGABiJ"
    b"86ciul93xXbYTWYBFp7vxcRXC4UEQHXkk6qvl8McF6PYVrm07s/vNUK0S/9FUwJgv7oh0r5a"
    b"pjjAguH8ZCtyuw6RFlx8SywJhwRAXcwmJC+eAcc97RWbCng8yG7ZS1PdrTUlAAw1QiwZAZ8f"
    b"uV0GwyUJgaEgAVCV8DtulPtZmqwWxbZcW/9z9KehW6g5AQi7uTlSNy+CyaL8hnt+PoysFt3h"
    b"18BuKzdIAFTDFO1A6vbFigt+MAI+H3Ju74PKbV+Ldut/fdSaADBqrZ+PiHYtVbFluGNBJgCZ"
    b"OxWfVf8ZIwpA3OQRiBs7RBVb8tv/NvGBP39GkwIQ1uIqpH6xVJoFKAsMYrBEi+xbemtq3RVU"
    b"TCb5rNrkqHmTyjPh+fE3lC9aKdo7btibNELq5x/C7IhQbCvgD0jfwftQtX2PaLf+giYFgJGy"
    b"cjYiuyirGXga996DyGrZE4Fyp2i3CB3AAtNSt74nv4jUwLX5S2n6r810dc0KgP2qhkjbvQIm"
    b"m1UVeyXT30HRyCmi3SJ0gFpBaQxW8itbevlUfbVXtFtnRLMCwEh863lED7hHFVvsHyK340C4"
    b"NvCvvU7oB9azInXTQpjsyo+iGeUffIz83o+LduusaFoALGkpSD+wDpaEOFXseU9mI6tpF/hy"
    b"8kW7RmgQc3ys3OVHjZwUhr+0HJlXdYT3yAnRrp0VTQsAI+bx/kh4Rb0egK5PdyBHmglQa3Hi"
    b"fzCbkbx0Jhzd26pmsnjSGyieMFO0Z3+L5gXAFBWJtC+Xwd5YWe+1P1I8eTaKx00X7RqhIWJH"
    b"D0L8FPWm6qxpTda1XeEvLhXt2t+ieQFgRLS5CSmfzIXJZlPFHqshmHfvo3Cu3iTaNUIDRNx5"
    b"M1KWv6G4OO1pAn4/crsOhWvNZtGu/SO6EAB2tp345iRED+yhmkl/UQmyb3tAPiIkjAsr8Mmi"
    b"/dRI8z2NvPF3/xO6CJrShwBImFMSkL5rhZw2rBbe45lyfIDvWKZo9wgBsBz/1G3vw1avrmo2"
    b"vVm5yGrWDb6T2aLdOyd0IwCMyG5tkLxkpiqJGaep+u5H5LTpC39+kWj3CI6YYqNRa+08hN/Y"
    b"VDWbrNRXQd9RuoqY1JUAMNSMDTgNS9Bgazatb9gQ6mByRCD5/VcRqbA79Z8p//A/U38BXX5r"
    b"fC/0JgDmhFik7lgCe8NLVLXrXPdv5PV4lMKFQxwW5pv0zgtw3HunqnY9h09UZ57mFYp28fzu"
    b"h94EgBF23dWotWmRKokaf6Ri2Qbk93kaAadLtItEEGCFZtgMMur+zqraDVS5kdPxYVRu/EK0"
    b"i+d/T/QoAAy1z21PI4tAv1E0Ewgx2Js/cc4kRD3YRXXbJS/OQ9Gol0W7WCN0KwCsr6CcMdjh"
    b"FtVNOz/ejLzeTyBQViHaS0IFWDCZPO3v3k5126wxbW6HgUL7+ylBvwIgYU6Kl4s1qhW7/Udc"
    b"n25H3n0j4S8sEe0moQBWZTqJbfgF4UXhPZGFrObd4MvKE+1mjdG1ADDsTRvJZ7nmKGW9Bc9E"
    b"1a79yL17GHwn9HGmS/wvLJks+aOZqh71ncbvqpSPj6t2fCPaTUXoXgAYUX27I2lBcBotsN3d"
    b"vK5D4N5vwBLjOoZF+KWsngNb/YuCYr9g2ESUzXpftJuKCQkBYKHC8c+PlDcGgwELG87vN5py"
    b"B3RCeJubkPzeK6qG9/4RubPPky/o6rz/bISGADBsViS9PQVRD6i/y8sIuN0omTpX7uluuF4D"
    b"esFsRuxTDyFu/CMwRaiT2PNn5FOi+5+Qj/5CgdARAOaMIxIpH7+JiFuvC84FAgE4125Dfv/R"
    b"ugv4CHVYMY/EeZPlcHGTNCMMBpVf75PX/YHSctHuqkZICQDDnBiP1C3vwn7lZUG7hvdYJvIH"
    b"jEbllq90kfEV6oTd2ARJC16A7dILg3YN98FDyLntfviyQ6uaVMgJAIPt/tbavEj1cOE/EvB4"
    b"UTr9HRRPeh2BCoocFAEL7okd/bA07R+oSju5s+H59QiyWz8I34nQ6zgdkgLAsPwrXe4wFMy3"
    b"AoNlExYMmQD3rv2iXTYUrI9k4uyJqpXuPhveo6eQfUcfeH87KtrloBCyAsCwXnIBUjctgvXC"
    b"jKBeh50Jl732Loqfn03Rg0GGRfXFPPUQYkf0gzlK3eYnf8aXmYvstv3g+eEX0W4HjZAWAIa1"
    b"Xl3U2jAftovqBP1a7gO/ofDJF6qTQvx+0a6HHOG3XoeEaWOCur9zGlZBOqf9gJB++BkhLwAM"
    b"ywUZsgjYG1wc9GsFvF64Pt6KonHT4Tl4SLTrIQGr2BM3cTgiu7aBya5OXci/w3v0pPzm9/5y"
    b"RLTrQccQAsCQNwaZCHB4ezBYTfiyeUtQOmMhfKdyRLuvS1iH4+hHHkDMkPtgjovhck1WzTeH"
    b"rfmPnBTtPhcMIwAMljyUsux1hN/cnNs1fXmF1ULw2rvw5xaIvgW6wJycgOjBvRAjfSypydyu"
    b"yxrIsg7IbO1vFAwlALLDjggkzn0OUfd14npd1o2obO4SlL29lJKLzgJ72KMG3INo6Y1vTeP3"
    b"4DMqlm9Afv8xIRXkcy4YTgBkbDbEPTsccWOCkzvwd/hLylDx0XqUzlwkt9wmpH+OBhcjelhv"
    b"OHreBUt8LPfrs8axxaNfCZnw3vPBmAIge25CVP+7kTBjLMyO4B4nnQn2ZWPFSNnygLUrC7gq"
    b"Rd8RrrDAnfDbb0T0wHsQIf1UqynH+eCvcKHo6ZdQNudDw57aGFcA/kNY8yuR9OF0LseEZyQQ"
    b"gFdac1a8vwbli9fCc/C30O1baLXIO/oOafkV1bsjrHXSZCEWAesJkddrJKp2fiv6rgjF8ALA"
    b"MKckInnhi4ho21LYF/I07u9/hnPNZlQsXQ/v78d1W2rqNOzNbr24DiK7t0Nkx9vkCL5gJeuc"
    b"E5LgVm7bhbzej8OXZZzNvrNBAnAati8wdrCcTspizEUT8Afg+ekQKrfvgWvtVlR98wP8BSWA"
    b"T+OpyGYzzIlxsDdpJJfhCr+pKWyN6sEk/V40TEyr8zfe0L2wqgUJwJ8Ib9UMiXMnw1ZfvXZR"
    b"auArKoFn30+o2vMDKv+9C+4Dv8rdjETvHbC8e3NyIuyXX4ow6WEPu7ax9Ja/HBZJBLSE9/AJ"
    b"5D/8DCo3fyl6KJqCBOAMsHiBhFdGwdG7E0wW9dqQqYm/wiktEU7Ae+yktGz4BW5JHNiSwVdQ"
    b"BH9xGQJl5dIrT6WLSVN2U7RDLrDJ8u5ZEVb7NQ1ha1wftgtrw3rpBTBHqtujQS1Yp16ntJwq"
    b"eGwyxWGcARKAv8HR6y7Ev/gUrLVTRQ/lnGC96Vh7MzYz8Elfdvbx50g/8wvhYz9z8+VqRnL6"
    b"Mvu70jTYZLVW91q02+SdeZP0IFtSEuS6ChZJCFlZLXOtJPnPbGrPRECrovhn2OYqO94rf3+N"
    b"YXf5/wkSgH+AhaPGTXkCUfd3kh8WQvuwt37FknUoeupFCsP+B0gAzgVpCsxOCFgmGqs2S2gX"
    b"FsvPHnznmi301j8HSADOA3NMFKKHP4CYkf2ERKwRZ4clX5XMXIiy6e/AX0Rdns8VEoAaYKmT"
    b"hrjxwxDVpystCwTD9j2cS6Xp/thp8k4/cX6QANQUaVnAzrrjJj4qLQ9u0sQ5t5FgcRKVW79E"
    b"8bOvo+qrvTTdryEkAEoxAWEtrkbchEcQ3vp63eyQ6xW2wVe18zsUj5+Bys93U1VmhZAAqAgL"
    b"IoodO1j62ZxL5RojEfB4UPXlXpS8NA+u9Z+LHk7IQAIQBOzXXoGY4Q8gstNtMEdHiR6OrvGX"
    b"O+Fat00uqFL15XeihxNykAAEEVaVOPqhe+Ho2aE6mEhwopGeYK23Wd2Esrc+gveXw6KHE7KQ"
    b"AHDAFBMlxxFED7gHYddfA7NDm2GzomF5Daz9VvlbS+VpPiueQgQXEgDOsMw4x93tECEtD+wN"
    b"LjH8XkHA7YH7p0NwfbIVzhWfyTkNBD9IAARhCrdLYlAfkV3vkGcH9sb1DBNTwEqne348BOen"
    b"2+Fc/ik8B35BoNJ45bi0AAmABpCLZlx6ASJa34CI22+AvdkVsCTGix6WqrB0Zvfu7+H6bAdc"
    b"m3fC+9sxysnXACQAWsNsgjkpQa6cI4vBVQ1gv7KBnI2nJ+QHXprOu789ANfWr+HZe1DOTqSA"
    b"HW1BAqB1LBY5B4G1OAu/4RpZGGz1L4KN5eBzapbxT7DNOo/0Rvf8ehju/T/Lx3Wenw5Lvy+V"
    b"048J7UICoEdsVrlsGTtatDeuLy8fWJEOlqPAfmdJr1XdOFOlY0cWdsuanvqyc+XjOe/xLLlb"
    b"Lmuhxfoh+o5nyg1SQ7aYaQhDAhBKSMsHmMzyBqNcvUeaIZjjY6p/Sh9TdFS1JlitMP+p7qH8"
    b"AHu98mZcwO2Wqwr5C4vlzDpWZYgVEZHr5rMpPIXfhgwkAARhYEgACMLAkAAQhIEhASAIA0MC"
    b"QBAGhgSAIAwMCQBBGBgSAIIwMCQABGFgSAAIwsCQABCEgSEBIAgDQwJAEAaGBIAgDAwJAEEY"
    b"GBIAgjAwJAAEYWBIAAjCwJAAEISBIQEgCANDAkAQBoYEgCAMDAkAQRgYEgCCMDAkAARhYEgA"
    b"CMLA/B+R1aIPJ+78tQAAAABJRU5ErkJggg=="
)

class TaskBarIcon(wx.adv.TaskBarIcon):
    def __init__(self, frame):
        self.frame = frame
        super(TaskBarIcon, self).__init__()
        self.SetIcon(TRAY_ICON.GetIcon(), "ShutMeDown")
        self.Bind(wx.adv.EVT_TASKBAR_LEFT_DOWN, self.on_exit)

    def on_exit(self, event):
        self.frame.Close()
        self.Destroy()

    def allow_sleep(self, event):
        menu.Check(1, True)
        wx.MessageBox(
            "Windows will now be able to sleep",
            "Info",
            style=OK | wx.ICON_INFORMATION,
        )

    def deny_sleep(self, event):
            menu.Check(2, True)
            wx.MessageBox(
                "Windows will not be able to sleep",
                "Info",
                style=OK | wx.ICON_INFORMATION,
            )

    def GetPopupMenu(self):
        return menu

class App(wx.App):
    def OnInit(self):
        frame = wx.Frame(None)
        self.SetTopWindow(frame)
        Taskbar = TaskBarIcon(frame)
        global menu
        menu = wx.Menu()
        create_menu_item(menu, "Allow Sleep", Taskbar.allow_sleep, 1)
        create_menu_item(menu, "Deny Sleep", Taskbar.deny_sleep, 2)
        menu.AppendSeparator()
        create_menu_item(menu, "Exit", Taskbar.on_exit, 3)
        return True

def create_menu_item(menu, label, func, itemid):
    item = wx.MenuItem(menu, itemid, label, kind=wx.ITEM_CHECK)
    menu.Bind(wx.EVT_MENU, func, id=item.GetId())
    menu.Append(item)
    return item


def main():
    app = App(False)
    app.MainLoop()


if __name__ == "__main__":
    main()
@RobinD42
Copy link
Member

RobinD42 commented Jan 1, 2022

This issue has been mentioned on Discuss wxPython. There might be relevant details there:

https://discuss.wxpython.org/t/wx-adv-taskbaricon-getpopupmenu-override-not-working/35742/3

@Swatto86
Copy link
Author

Swatto86 commented Jan 1, 2022 via email

swt2c added a commit to swt2c/Phoenix that referenced this issue Jan 1, 2022
@swt2c
Copy link
Collaborator

swt2c commented Jan 1, 2022

Hi Robin,

Thanks for the response – I have had no replies on there either. I am pretty sure it is an issue but I could be interpreting the code wrong.

That's not actually Robin, but Robin's bot that automatically posts here when someone mentions a GitHub issue on the Discuss site.

Anyway, I can confirm the problem and submitted a fix. Basically, CreatePopupMenu was recently added in wxWidgets and it needed to be unhidden in wxPython since it is protected (those methods are hidden by default it seems).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants