Xpra: Ticket #2379: local tray menu not show

local tray menu not show when change system Scaling and Layout. but other application work good.

Display Settings -> Scaling and Layout -> Change the size of items such as text, application, etc.

100%
125%
150%
175%
  1. Xpra Client Information:
revision 22875
built on Win7Prox86VM by Win7Pro x86VM
2019-06-07 16:28
using Cython 0.29.10
gcc (Rev2, Built by MSYS2 project) 9.1.0
System: Xpra version, platform and host information
<function get_sys_info at 0x0e71c6f0>
Network: Compression, packet encoding and encryption
bencode                          : {'': True, 'version': ('Cython', 2, 5)}
compressors                      : ['zlib', 'lz4', 'lzo']
config                           : {'vsocket.timeout': 5, 'socket.timeout': 20}
digest                           : ['hmac', 'xor', 'hmac+whirlpool', 'hmac+sm3', 'hmac+shake256', 'hmac+shake128', 'hmac+sha512-256', 'hmac+sha512-224', 'hmac+sha512', 'hmac+sha384', 'hmac+sha3-512', 'hmac+sha3-384', 'hmac+sha3-256', 'hmac+sha3-224', 'hmac+sha256', 'hmac+sha224', 'hmac+sha1', 'hmac+ripemd160', 'hmac+mdc2', 'hmac+md5-sha1', 'hmac+md5', 'hmac+md4', 'hmac+blake2s256', 'hmac+blake2b512', 'des']
encoders                         : ['rencode', 'bencode']
gateways                         : {'INET': [(u'192.168.2.254', u'{FAB99F01-F778-455F-A706-1330F1057125}', True), (u'192.168.0.1', u'{7CDB2531-E7CE-44F0-8B63-4BE1A7472C02}', True)]}
interfaces                       : [u'{7CDB2531-E7CE-44F0-8B63-4BE1A7472C02}', u'{FAB99F01-F778-455F-A706-1330F1057125}', u'{8494AE73-48EE-4607-B7DE-C929F1FD44D3}', u'{B0D6741B-0427-407E-B850-21FDCF925FBD}', u'{B2FB1875-B432-438F-9667-10C88ABE6D94}', u'{6F2C8ED7-A855-4CB5-B4AB-28C17BEBEC15}', u'{B52FBB23-22C1-11E9-B8DB-806E6F6E6963}', u'{93123211-9629-4E04-82F0-EA2E4F221468}']
lz4                              : {'': True, 'version': u'2.1.6'}
lzo                              : {'': True, 'version': '2.10'}
mmap                             : True
paramiko                         : {'version': (2, 4, 2)}
python-lz4                       : {'': True, 'version': '2.1.6'}
python-lzo                       : {'': True, 'version': '1.12'}
rencode                          : {'': True, 'version': ('Cython', 1, 0, 6)}
salt-digest                      : ['hmac+whirlpool', 'hmac+sm3', 'hmac+shake256', 'hmac+shake128', 'hmac+sha512-256', 'hmac+sha512-224', 'hmac+sha512', 'hmac+sha384', 'hmac+sha3-512', 'hmac+sha3-384', 'hmac+sha3-256', 'hmac+sha3-224', 'hmac+sha256', 'hmac+sha224', 'hmac+sha1', 'hmac+ripemd160', 'hmac+mdc2', 'hmac+md5-sha1', 'hmac+md5', 'hmac+md4', 'hmac+blake2s256', 'hmac+blake2b512']
ssl                              : {'': True, 'npn': False, 'verify': {'VERIFY_X509_TRUSTED_FIRST': 32768, 'VERIFY_X509_STRICT': 32, 'VERIFY_CRL_CHECK_CHAIN': 12, 'VERIFY_CRL_CHECK_LEAF': 4, 'VERIFY_DEFAULT': 0}, 'ecdh': True, 'openssl': {'version-number': 269488191, 'version-info': '(1, 1, 1, 3, 15)', 'version': 'OpenSSL 1.1.1c  28 May 2019'}, 'sni': True, 'channel-binding-types': ['tls-unique'], 'alpn': True, 'options': {'OP_NO_SSLv3': 33554432, 'OP_NO_SSLv2': 0, 'OP_NO_TLSv1_1': 268435456, 'OP_NO_TLSv1_2': 134217728, 'OP_NO_TLSv1_3': 536870912, 'OP_ENABLE_MIDDLEBOX_COMPAT': 1048576, 'OP_NO_TLSv1': 67108864, 'OP_CIPHER_SERVER_PREFERENCE': 4194304, 'OP_SINGLE_DH_USE': 0, 'OP_SINGLE_ECDH_USE': 0, 'OP_NO_COMPRESSION': 131072, 'OP_ALL': -2147483564}, 'protocols': {'PROTOCOL_SSLv23': 2, 'PROTOCOL_TLSv1_2': 5, 'PROTOCOL_TLSv1_1': 4, 'PROTOCOL_TLS': 2, 'PROTOCOL_TLSv1': 3}}
yaml                             : {'': False}
zlib                             : {'': True, 'version': '1.0'}
Encodings: Picture encodings supported
avcodec2                         : (58, 35, 100)
ffmpeg                           : (58, 35, 100)
jpeg                             : 1
libyuv                           : 0
pillow                           : 6.0.0
swscale                          : (5, 3, 100)
vpx                              : v1.8.0
webp                             : (1, 0, 2)
x264                             : 157
OpenGL: OpenGL driver and features
GLU.extensions                   : GL_EXT_bgra
GLU.version                      : 1.2.2.0 Microsoft Corporation
accelerate                       : 3.1.1a1
accum-blue-size                  : 16
accum-green-size                 : 16
accum-red-size                   : 16
alpha-size                       : 8
aux-buffers                      : 4
blue-size                        : 8
depth                            : 24
depth-size                       : 24
display_mode                     : ['ALPHA', 'DOUBLE']
double-buffered                  : True
extensions                       : [u'GL_ARB_arrays_of_arrays', u'GL_ARB_base_instance', u'GL_ARB_blend_func_extended', u'GL_ARB_clear_buffer_object', u'GL_ARB_color_buffer_float', u'GL_ARB_compatibility', u'GL_ARB_compressed_texture_pixel_storage', u'GL_ARB_conservative_depth', u'GL_ARB_copy_buffer', u'GL_ARB_copy_image', u'GL_ARB_debug_output', u'GL_ARB_depth_buffer_float', u'GL_ARB_depth_clamp', u'GL_ARB_depth_texture', u'GL_ARB_draw_buffers', u'GL_ARB_draw_elements_base_vertex', u'GL_ARB_draw_instanced', u'GL_ARB_enhanced_layouts', u'GL_ARB_ES2_compatibility', u'GL_ARB_ES3_compatibility', u'GL_ARB_explicit_attrib_location', u'GL_ARB_explicit_uniform_location', u'GL_ARB_fragment_coord_conventions', u'GL_ARB_fragment_layer_viewport', u'GL_ARB_fragment_program', u'GL_ARB_fragment_program_shadow', u'GL_ARB_fragment_shader', u'GL_ARB_framebuffer_no_attachments', u'GL_ARB_framebuffer_object', u'GL_ARB_framebuffer_sRGB', u'GL_ARB_geometry_shader4', u'GL_ARB_get_program_binary', u'GL_ARB_half_float_pixel', u'GL_ARB_half_float_vertex', u'GL_ARB_imaging', u'GL_ARB_instanced_arrays', u'GL_ARB_internalformat_query', u'GL_ARB_internalformat_query2', u'GL_ARB_invalidate_subdata', u'GL_ARB_map_buffer_alignment', u'GL_ARB_map_buffer_range', u'GL_ARB_multi_bind', u'GL_ARB_multisample', u'GL_ARB_multitexture', u'GL_ARB_occlusion_query', u'GL_ARB_occlusion_query2', u'GL_ARB_pixel_buffer_object', u'GL_ARB_point_parameters', u'GL_ARB_point_sprite', u'GL_ARB_program_interface_query', u'GL_ARB_provoking_vertex', u'GL_ARB_robust_buffer_access_behavior', u'GL_ARB_robustness', u'GL_ARB_sampler_objects', u'GL_ARB_seamless_cube_map', u'GL_ARB_separate_shader_objects', u'GL_ARB_shader_bit_encoding', u'GL_ARB_shader_objects', u'GL_ARB_shader_texture_lod', u'GL_ARB_shading_language_100', u'GL_ARB_shading_language_420pack', u'GL_ARB_shading_language_include', u'GL_ARB_shading_language_packing', u'GL_ARB_shadow', u'GL_ARB_stencil_texturing', u'GL_ARB_sync', u'GL_ARB_texture_border_clamp', u'GL_ARB_texture_buffer_object', u'GL_ARB_texture_buffer_range', u'GL_ARB_texture_compression', u'GL_ARB_texture_compression_rgtc', u'GL_ARB_texture_cube_map', u'GL_ARB_texture_env_add', u'GL_ARB_texture_env_combine', u'GL_ARB_texture_env_crossbar', u'GL_ARB_texture_env_dot3', u'GL_ARB_texture_float', u'GL_ARB_texture_mirror_clamp_to_edge', u'GL_ARB_texture_mirrored_repeat', u'GL_ARB_texture_multisample', u'GL_ARB_texture_non_power_of_two', u'GL_ARB_texture_query_levels', u'GL_ARB_texture_rectangle', u'GL_ARB_texture_rg', u'GL_ARB_texture_rgb10_a2ui', u'GL_ARB_texture_stencil8', u'GL_ARB_texture_storage', u'GL_ARB_texture_storage_multisample', u'GL_ARB_texture_swizzle', u'GL_ARB_texture_view', u'GL_ARB_timer_query', u'GL_ARB_transpose_matrix', u'GL_ARB_uniform_buffer_object', u'GL_ARB_vertex_array_bgra', u'GL_ARB_vertex_array_object', u'GL_ARB_vertex_attrib_binding', u'GL_ARB_vertex_buffer_object', u'GL_ARB_vertex_program', u'GL_ARB_vertex_shader', u'GL_ARB_vertex_type_10f_11f_11f_rev', u'GL_ARB_vertex_type_2_10_10_10_rev', u'GL_ARB_viewport_array', u'GL_ARB_window_pos', u'GL_ATI_draw_buffers', u'GL_ATI_texture_float', u'GL_ATI_texture_mirror_once', u'GL_S3_s3tc', u'GL_EXT_texture_env_add', u'GL_EXT_abgr', u'GL_EXT_bgra', u'GL_EXT_bindable_uniform', u'GL_EXT_blend_color', u'GL_EXT_blend_equation_separate', u'GL_EXT_blend_func_separate', u'GL_EXT_blend_minmax', u'GL_EXT_blend_subtract', u'GL_EXT_compiled_vertex_array', u'GL_EXT_Cg_shader', u'GL_EXT_depth_bounds_test', u'GL_EXT_direct_state_access', u'GL_EXT_draw_buffers2', u'GL_EXT_draw_instanced', u'GL_EXT_draw_range_elements', u'GL_EXT_fog_coord', u'GL_EXT_framebuffer_blit', u'GL_EXT_framebuffer_multisample', u'GL_EXTX_framebuffer_mixed_formats', u'GL_EXT_framebuffer_multisample_blit_scaled', u'GL_EXT_framebuffer_object', u'GL_EXT_framebuffer_sRGB', u'GL_EXT_geometry_shader4', u'GL_EXT_gpu_program_parameters', u'GL_EXT_gpu_shader4', u'GL_EXT_multi_draw_arrays', u'GL_EXT_packed_depth_stencil', u'GL_EXT_packed_float', u'GL_EXT_packed_pixels', u'GL_EXT_pixel_buffer_object', u'GL_EXT_point_parameters', u'GL_EXT_provoking_vertex', u'GL_EXT_rescale_normal', u'GL_EXT_secondary_color', u'GL_EXT_separate_shader_objects', u'GL_EXT_separate_specular_color', u'GL_EXT_shader_integer_mix', u'GL_EXT_shadow_funcs', u'GL_EXT_stencil_two_side', u'GL_EXT_stencil_wrap', u'GL_EXT_texture3D', u'GL_EXT_texture_array', u'GL_EXT_texture_buffer_object', u'GL_EXT_texture_compression_dxt1', u'GL_EXT_texture_compression_latc', u'GL_EXT_texture_compression_rgtc', u'GL_EXT_texture_compression_s3tc', u'GL_EXT_texture_cube_map', u'GL_EXT_texture_edge_clamp', u'GL_EXT_texture_env_combine', u'GL_EXT_texture_env_dot3', u'GL_EXT_texture_filter_anisotropic', u'GL_EXT_texture_integer', u'GL_EXT_texture_lod', u'GL_EXT_texture_lod_bias', u'GL_EXT_texture_mirror_clamp', u'GL_EXT_texture_object', u'GL_EXT_texture_shared_exponent', u'GL_EXT_texture_sRGB', u'GL_EXT_texture_sRGB_decode', u'GL_EXT_texture_storage', u'GL_EXT_texture_swizzle', u'GL_EXT_timer_query', u'GL_EXT_vertex_array', u'GL_EXT_vertex_array_bgra', u'GL_EXT_import_sync_object', u'GL_IBM_rasterpos_clip', u'GL_IBM_texture_mirrored_repeat', u'GL_KHR_debug', u'GL_KTX_buffer_region', u'GL_NV_blend_square', u'GL_NV_conditional_render', u'GL_NV_copy_depth_to_color', u'GL_NV_copy_image', u'GL_NV_depth_buffer_float', u'GL_NV_depth_clamp', u'GL_NV_ES1_1_compatibility', u'GL_NV_explicit_multisample', u'GL_NV_fence', u'GL_NV_float_buffer', u'GL_NV_fog_distance', u'GL_NV_fragment_program', u'GL_NV_fragment_program_option', u'GL_NV_fragment_program2', u'GL_NV_framebuffer_multisample_coverage', u'GL_NV_geometry_shader4', u'GL_NV_gpu_program4', u'GL_NV_half_float', u'GL_NV_light_max_exponent', u'GL_NV_multisample_coverage', u'GL_NV_multisample_filter_hint', u'GL_NV_occlusion_query', u'GL_NV_packed_depth_stencil', u'GL_NV_parameter_buffer_object', u'GL_NV_parameter_buffer_object2', u'GL_NV_path_rendering', u'GL_NV_pixel_data_range', u'GL_NV_point_sprite', u'GL_NV_primitive_restart', u'GL_NV_register_combiners', u'GL_NV_register_combiners2', u'GL_NV_shader_buffer_load', u'GL_NV_texgen_reflection', u'GL_NV_texture_barrier', u'GL_NV_texture_compression_vtc', u'GL_NV_texture_env_combine4', u'GL_NV_texture_expand_normal', u'GL_NV_texture_multisample', u'GL_NV_texture_rectangle', u'GL_NV_texture_shader', u'GL_NV_texture_shader2', u'GL_NV_texture_shader3', u'GL_NV_transform_feedback', u'GL_NV_vertex_array_range', u'GL_NV_vertex_array_range2', u'GL_NV_vertex_buffer_unified_memory', u'GL_NV_vertex_program', u'GL_NV_vertex_program1_1', u'GL_NV_vertex_program2', u'GL_NV_vertex_program2_option', u'GL_NV_vertex_program3', u'GL_NVX_conditional_render', u'GL_NVX_gpu_memory_info', u'GL_SGIS_generate_mipmap', u'GL_SGIS_texture_lod', u'GL_SGIX_depth_texture', u'GL_SGIX_shadow', u'GL_SUN_slice_accum', u'GL_WIN_swap_hint', u'WGL_EXT_swap_control', u'']
gdkgl                            : {'version': (6, 2)}
gdkglext                         : {'version': (1, 2, 0)}
green-size                       : 8
gtkglext                         : {'version': (1, 2, 0)}
has-depth-buffer                 : True
has-stencil-buffer               : False
has_alpha                        : True
max-viewport-dims                : (8192, 8192)
opengl                           : (3, 3)
pygdkglext                       : {'version': (1, 0, 0)}
pyopengl                         : 3.1.1a1
red-size                         : 8
renderer                         : GeForce 9600 GSO 512/PCIe/SSE2
rgba                             : True
safe                             : True
sample-buffers                   : 242408592
samples                          : 248314384
shading-language-version         : 3.30 NVIDIA via Cg compiler
stencil-size                     : 0
stereo                           : False
texture-size-limit               : 8192
transparency                     : False
vendor                           : NVIDIA Corporation
zerocopy                         : True
Sound: Sound codecs and GStreamer version information
bundle-metadata                  : ['True']
decoders                         : ['opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'wavpack', 'speex+ogg', 'vorbis', 'opus+mka', 'flac']
demuxers                         : ['ogg', 'mka', 'mpeg4']
encoders                         : ['opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'wavpack', 'speex+ogg', 'vorbis', 'opus+mka', 'flac', 'mp3+mpeg4']
gst.version                      : ['1', '16', '0', '0']
muxers                           : ['ogg', 'mka', 'mpeg4']
plugins                          : ['3gppmux', 'aacparse', 'ac3parse', 'amrparse', 'appsink', 'appsrc', 'audioconvert', 'audiorate', 'audioresample', 'audiotestsrc', 'autoaudiosink', 'autoaudiosrc', 'autovideosink', 'autovideosrc', 'bin', 'capsfilter', 'concat', 'cutter', 'dataurisrc', 'dcaparse', 'directsoundsink', 'directsoundsrc', 'downloadbuffer', 'faac', 'faad', 'fakesink', 'fakesrc', 'filesink', 'filesrc', 'flacdec', 'flacenc', 'flacparse', 'flactag', 'funnel', 'gdpdepay', 'gdppay', 'identity', 'input-selector', 'ismlmux', 'lamemp3enc', 'matroskademux', 'matroskamux', 'matroskaparse', 'mj2mux', 'mp4mux', 'mpegaudioparse', 'mpg123audiodec', 'multiqueue', 'oggaviparse', 'oggdemux', 'oggmux', 'oggparse', 'ogmaudioparse', 'ogmtextparse', 'ogmvideoparse', 'opusdec', 'opusenc', 'opusparse', 'output-selector', 'pipeline', 'qtdemux', 'qtmoovrecover', 'qtmux', 'queue', 'queue2', 'rtpxqtdepay', 'sbcparse', 'speexdec', 'speexenc', 'streamiddemux', 'tee', 'typefind', 'valve', 'volume', 'vorbisdec', 'vorbisenc', 'vorbisparse', 'vorbistag', 'wasapisink', 'wasapisrc', 'wavenc', 'wavpackdec', 'wavpackenc', 'wavpackparse', 'wavparse', 'webmmux']
pygst.version                    : ['3', '32', '1']
python.bits                      : 32
python.version                   : ['2', '7', '16']
sink.default                     : ['directsoundsink']
sinks                            : ['directsoundsink', 'wasapisink', 'autoaudiosink']
source.default                   : ['directsoundsrc']
sources                          : ['directsoundsrc', 'wasapisrc', 'autoaudiosrc', 'audiotestsrc']
  1. Screen Shot

https://raw.githubusercontent.com/892768447/static/master/xpra_tray.gif



Tue, 06 Aug 2019 09:24:41 GMT - Antoine Martin: status changed


Tue, 06 Aug 2019 13:58:51 GMT - totaamwin32: status changed; resolution set

Thanks for reporting this bug!

It only happens with windows 10, not with windows 7 (not tested: 8, 8.1).

Normally, hovering over the tray icon triggers this:

2019-08-06 14:15:01,919 NotifyIconWndProc(394478, 294, 0, 512) instance=win32NotifyIcon(0x0), message(294)=<unbound method win32NotifyIcon.OnTaskbarNotify>
2019-08-06 14:15:01,919 OnTaskbarNotify(394478L, 294L, 0L, 512L) button(s) lookup: [(394478L, 294, 0, 512)], callback=<bound method Win32Tray.move_cb of Tray(0:tcp://192.168.1.11:10000/)>
2019-08-06 14:15:01,919 move_cb(394478L, 294, 0, 512) x=1179, y=1012, size=16, 16
2019-08-06 14:15:01,919 recalculate_geometry(1179, 1012, 16, 16) guess=(1173, 1012, 16, 16), tray event locations: 60
2019-08-06 14:15:01,919 recalculate_geometry() geometry guess=(1173, 1011, 16, 16) (old guess=(1173, 1012, 16, 16))
2019-08-06 14:15:01,929 xpra_tray_geometry() geometry=(1173, 1011, 16, 16)
2019-08-06 14:15:01,929 xpra_tray_mouseover(1179, 1012)

But after the DPI change, we only get is this:

2019-08-06 14:17:10,499 NotifyIconWndProc(1770062, 294, 0, 512) instance=None, message(294)=<unbound method win32NotifyIcon.OnTaskbarNotify>

Which means that we don't find the win32NotifyIcon instance for hwnd=1770062.

We do re-create the tray when the settings change:

2019-08-06 14:15:25,763 WM_WININICHANGE: 47, 0
2019-08-06 14:15:25,770 DefWindowProc(853540L, 26L, 47L, 0L)=0
2019-08-06 14:15:25,800 NotifyIconWndProc(394478, 49251, 0, 0) instance=win32NotifyIcon(0x0), message(49251)=<unbound method win32NotifyIcon.OnTrayRestart>
2019-08-06 14:15:25,800 make_nid(..)=<xpra.platform.win32.win32_NotifyIcon.NOTIFYICONDATA object at 0x0000000004d9e320> tooltip='xterm\ntcp://192.168.1.11:10000/', app_id=0, actual flags=GUID
2019-08-06 14:15:25,800 delete_tray_window(..) calling Shell_NotifyIconW(NIM_DELETE, <xpra.platform.win32.win32_NotifyIcon.NOTIFYICONDATA object at 0x0000000004d9e320>)
2019-08-06 14:15:25,870 create_tray_window()
2019-08-06 14:15:25,870 NotifyIconWndProc(1770062, 36, 0, 6409168) instance=None, message(36)=None
2019-08-06 14:15:25,871 NotifyIconWndProc(1770062, 129, 0, 6409120) instance=None, message(129)=None
2019-08-06 14:15:25,871 NotifyIconWndProc(1770062, 131, 0, 6409200) instance=None, message(131)=None
2019-08-06 14:15:25,881 NotifyIconWndProc(1770062, 1, 0, 6409104) instance=None, message(1)=None
2019-08-06 14:15:25,885 create_window() hwnd=0x1b024e
2019-08-06 14:15:25,889 make_nid(..)=<xpra.platform.win32.win32_NotifyIcon.NOTIFYICONDATA object at 0x0000000004d9e320> tooltip='xterm\ntcp://192.168.1.11:10000/', app_id=0, actual flags=MESSAGE, ICON, TIP, GUID
2019-08-06 14:15:25,960 Shell_NotifyIconW ADD=1
2019-08-06 14:15:25,962 OnTrayRestart(394478L, 49251L, 0L, 0L) reset function: (<bound method win32NotifyIcon.set_icon of win32NotifyIcon(0x0)>, u'E:/Xpra/trunk/src/dist/icons/xpra.ico')
2019-08-06 14:15:25,967 set_icon(E:/Xpra/trunk/src/dist/icons/xpra.ico)
2019-08-06 14:15:25,968 do_set_icon(0x6c0515)
2019-08-06 14:15:25,969 make_nid(..)=<xpra.platform.win32.win32_NotifyIcon.NOTIFYICONDATA object at 0x0000000004d9e320> tooltip='xterm\ntcp://192.168.1.11:10000/', app_id=0, actual flags=ICON, GUID
2019-08-06 14:15:25,977 make_nid(..)=<xpra.platform.win32.win32_NotifyIcon.NOTIFYICONDATA object at 0x0000000004d9e320> tooltip='xterm\ntcp://192.168.1.11:10000/', app_id=0, actual flags=ICON, GUID
2019-08-06 14:15:25,983 callbacks for event 0xc063L: None

The problem is that we weren't registering the new window handle to get the events.

r23455 fixes that. This will be included in the next update.


Sat, 23 Jan 2021 05:49:42 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2379