kmonsoor / pyglet

Automatically exported from code.google.com/p/pyglet
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

A window with style WINDOW_STYLE_BORDERLESS jumps around when doing set_location inside an event handler. #434

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run the attached code
2. Click a couple times on the window

Python
------------------------------------------------------------------------------
sys.version: 2.5.2 (r252:60911, Jul 31 2008, 17:28:52) 
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)]
sys.platform: linux2
os.getcwd(): /home/pyalot/development/pyglet/tools

pyglet
------------------------------------------------------------------------------
pyglet.version: 1.2dev
pyglet.__file__: /home/pyalot/development/pyglet/pyglet/__init__.pyc
pyglet.options['debug_trace_depth'] = 1
pyglet.options['xlib_fullscreen_override_redirect'] = False
pyglet.options['audio'] = ('directsound', 'pulse', 'openal', 'silent')
pyglet.options['xsync'] = True
pyglet.options['debug_trace_flush'] = True
pyglet.options['debug_win32'] = False
pyglet.options['debug_gl_trace'] = False
pyglet.options['debug_x11'] = False
pyglet.options['shadow_window'] = True
pyglet.options['debug_font'] = False
pyglet.options['debug_media'] = False
pyglet.options['debug_trace'] = False
pyglet.options['debug_lib'] = False
pyglet.options['graphics_vbo'] = True
pyglet.options['vsync'] = None
pyglet.options['debug_trace_args'] = False
pyglet.options['debug_gl'] = True
pyglet.options['debug_graphics_batch'] = False
pyglet.options['font'] = ('gdiplus', 'win32')
pyglet.options['debug_texture'] = False
pyglet.options['debug_gl_trace_args'] = False

pyglet.window
------------------------------------------------------------------------------
platform: <pyglet.window.Platform object at 0xb7d8d3cc>
display: <pyglet.canvas.xlib.XlibDisplay object at 0x84f66ac>
screens[0]: XlibScreen(display=<pyglet.canvas.xlib.XlibDisplay object at
0x84f66ac>, x=0, y=0, width=1600, height=1024, xinerama=1)
screens[1]: XlibScreen(display=<pyglet.canvas.xlib.XlibDisplay object at
0x84f66ac>, x=1600, y=0, width=1920, height=1200, xinerama=1)
config['double_buffer'] = 1
config['stereo'] = 0
config['buffer_size'] = 32
config['aux_buffers'] = 4
config['sample_buffers'] = 0
config['samples'] = 0
config['red_size'] = 8
config['green_size'] = 8
config['blue_size'] = 8
config['alpha_size'] = 0
config['depth_size'] = 24
config['stencil_size'] = 0
config['accum_red_size'] = 16
config['accum_green_size'] = 16
config['accum_blue_size'] = 16
config['accum_alpha_size'] = 16
config['major_version'] = None
config['minor_version'] = None
config['forward_compatible'] = None
config['debug'] = None
context: XlibContext13()

window.context._info
------------------------------------------------------------------------------
gl_info.get_version(): 2.1.2 NVIDIA 169.12
gl_info.get_vendor(): NVIDIA Corporation
gl_info.get_renderer(): GeForce 8800 GTS 512/PCI/SSE2
gl_info.get_extensions():
   GL_ARB_color_buffer_float
   GL_ARB_depth_texture
   GL_ARB_draw_buffers
   GL_ARB_fragment_program
   GL_ARB_fragment_program_shadow
   GL_ARB_fragment_shader
   GL_ARB_half_float_pixel
   GL_ARB_imaging
   GL_ARB_multisample
   GL_ARB_multitexture
   GL_ARB_occlusion_query
   GL_ARB_pixel_buffer_object
   GL_ARB_point_parameters
   GL_ARB_point_sprite
   GL_ARB_shader_objects
   GL_ARB_shading_language_100
   GL_ARB_shadow
   GL_ARB_texture_border_clamp
   GL_ARB_texture_compression
   GL_ARB_texture_cube_map
   GL_ARB_texture_env_add
   GL_ARB_texture_env_combine
   GL_ARB_texture_env_dot3
   GL_ARB_texture_float
   GL_ARB_texture_mirrored_repeat
   GL_ARB_texture_non_power_of_two
   GL_ARB_texture_rectangle
   GL_ARB_transpose_matrix
   GL_ARB_vertex_buffer_object
   GL_ARB_vertex_program
   GL_ARB_vertex_shader
   GL_ARB_window_pos
   GL_ATI_draw_buffers
   GL_ATI_texture_float
   GL_ATI_texture_mirror_once
   GL_EXTX_framebuffer_mixed_formats
   GL_EXT_Cg_shader
   GL_EXT_abgr
   GL_EXT_bgra
   GL_EXT_bindable_uniform
   GL_EXT_blend_color
   GL_EXT_blend_equation_separate
   GL_EXT_blend_func_separate
   GL_EXT_blend_minmax
   GL_EXT_blend_subtract
   GL_EXT_compiled_vertex_array
   GL_EXT_depth_bounds_test
   GL_EXT_draw_buffers2
   GL_EXT_draw_instanced
   GL_EXT_draw_range_elements
   GL_EXT_fog_coord
   GL_EXT_framebuffer_blit
   GL_EXT_framebuffer_multisample
   GL_EXT_framebuffer_object
   GL_EXT_framebuffer_sRGB
   GL_EXT_geometry_shader4
   GL_EXT_gpu_program_parameters
   GL_EXT_gpu_shader4
   GL_EXT_multi_draw_arrays
   GL_EXT_packed_depth_stencil
   GL_EXT_packed_float
   GL_EXT_packed_pixels
   GL_EXT_pixel_buffer_object
   GL_EXT_point_parameters
   GL_EXT_rescale_normal
   GL_EXT_secondary_color
   GL_EXT_separate_specular_color
   GL_EXT_shadow_funcs
   GL_EXT_stencil_two_side
   GL_EXT_stencil_wrap
   GL_EXT_texture3D
   GL_EXT_texture_array
   GL_EXT_texture_buffer_object
   GL_EXT_texture_compression_latc
   GL_EXT_texture_compression_rgtc
   GL_EXT_texture_compression_s3tc
   GL_EXT_texture_cube_map
   GL_EXT_texture_edge_clamp
   GL_EXT_texture_env_add
   GL_EXT_texture_env_combine
   GL_EXT_texture_env_dot3
   GL_EXT_texture_filter_anisotropic
   GL_EXT_texture_integer
   GL_EXT_texture_lod
   GL_EXT_texture_lod_bias
   GL_EXT_texture_mirror_clamp
   GL_EXT_texture_object
   GL_EXT_texture_sRGB
   GL_EXT_texture_shared_exponent
   GL_EXT_timer_query
   GL_EXT_vertex_array
   GL_IBM_rasterpos_clip
   GL_IBM_texture_mirrored_repeat
   GL_KTX_buffer_region
   GL_NVX_conditional_render
   GL_NV_blend_square
   GL_NV_conditional_render
   GL_NV_copy_depth_to_color
   GL_NV_depth_buffer_float
   GL_NV_depth_clamp
   GL_NV_fence
   GL_NV_float_buffer
   GL_NV_fog_distance
   GL_NV_fragment_program
   GL_NV_fragment_program2
   GL_NV_fragment_program_option
   GL_NV_framebuffer_multisample_coverage
   GL_NV_geometry_shader4
   GL_NV_gpu_program4
   GL_NV_half_float
   GL_NV_light_max_exponent
   GL_NV_multisample_coverage
   GL_NV_multisample_filter_hint
   GL_NV_occlusion_query
   GL_NV_packed_depth_stencil
   GL_NV_parameter_buffer_object
   GL_NV_pixel_data_range
   GL_NV_point_sprite
   GL_NV_primitive_restart
   GL_NV_register_combiners
   GL_NV_register_combiners2
   GL_NV_texgen_reflection
   GL_NV_texture_compression_vtc
   GL_NV_texture_env_combine4
   GL_NV_texture_expand_normal
   GL_NV_texture_rectangle
   GL_NV_texture_shader
   GL_NV_texture_shader2
   GL_NV_texture_shader3
   GL_NV_transform_feedback
   GL_NV_vertex_array_range
   GL_NV_vertex_array_range2
   GL_NV_vertex_program
   GL_NV_vertex_program1_1
   GL_NV_vertex_program2
   GL_NV_vertex_program2_option
   GL_NV_vertex_program3
   GL_S3_s3tc
   GL_SGIS_generate_mipmap
   GL_SGIS_texture_lod
   GL_SGIX_depth_texture
   GL_SGIX_shadow
   GL_SUN_slice_accum

pyglet.gl.glu_info
------------------------------------------------------------------------------
glu_info.get_version(): 1.3
glu_info.get_extensions():
   GLU_EXT_nurbs_tessellator
   GLU_EXT_object_space_tess

pyglet.gl.glx_info
------------------------------------------------------------------------------
context.is_direct(): 1
glx_info.get_server_vendor(): NVIDIA Corporation
glx_info.get_server_version(): 1.3
glx_info.get_server_extensions():
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGI_video_sync
   GLX_SGI_swap_control
   GLX_EXT_texture_from_pixmap
   GLX_ARB_multisample
   GLX_NV_float_buffer
   GLX_ARB_fbconfig_float
   GLX_EXT_framebuffer_sRGB
glx_info.get_client_vendor(): NVIDIA Corporation
glx_info.get_client_version(): 1.4
glx_info.get_client_extensions():
   GLX_ARB_get_proc_address
   GLX_ARB_multisample
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_EXT_import_context
   GLX_SGI_video_sync
   GLX_NV_swap_group
   GLX_NV_video_out
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGI_swap_control
   GLX_NV_float_buffer
   GLX_ARB_fbconfig_float
   GLX_EXT_fbconfig_packed_float
   GLX_EXT_texture_from_pixmap
   GLX_EXT_framebuffer_sRGB
glx_info.get_extensions():
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGI_video_sync
   GLX_SGI_swap_control
   GLX_EXT_texture_from_pixmap
   GLX_ARB_multisample
   GLX_NV_float_buffer
   GLX_ARB_fbconfig_float
   GLX_EXT_framebuffer_sRGB
   GLX_ARB_get_proc_address

pyglet.media
------------------------------------------------------------------------------
audio driver: <pyglet.media.drivers.pulse.PulseAudioDriver object at 0x86987ec>

pyglet.media.avbin
------------------------------------------------------------------------------
AVbin not available.

pyglet.media.drivers.openal
------------------------------------------------------------------------------
Library: <CDLL 'libopenal.so.0', handle 8641f30 at 86d048c>
Version: (1, 0)
Extensions:

pyglet.input.wintab
------------------------------------------------------------------------------
WinTab not available.

Platform instance is <pyglet.window.Platform object at 0xb7cf5fac>
Display instance is <pyglet.canvas.xlib.XlibDisplay object at 0x84f7dec>
Screens:
  XlibScreen(display=<pyglet.canvas.xlib.XlibDisplay object at 0x84f7dec>,
x=0, y=0, width=1600, height=1024, xinerama=1)
  XlibScreen(display=<pyglet.canvas.xlib.XlibDisplay object at 0x84f7dec>,
x=1600, y=0, width=1920, height=1200, xinerama=1)
Creating default context...
GL attributes:
double_buffer=1 stereo=0 buffer_size=32 aux_buffers=4 sample_buffers=0
samples=0 red_size=8 green_size=8 blue_size=8 alpha_size=0
depth_size=24 stencil_size=0 accum_red_size=16 accum_green_size=16
accum_blue_size=16 accum_alpha_size=16 major_version=None
minor_version=None forward_compatible=None debug=None
GL version: 2.1.2 NVIDIA 169.12
GL vendor: NVIDIA Corporation
GL renderer: GeForce 8800 GTS 512/PCI/SSE2
GL extensions:
  GL_ARB_texture_compression GL_NV_point_sprite
  GL_NV_fragment_program_option GL_NV_vertex_array_range2
  GL_EXT_blend_color GL_EXT_blend_subtract GL_EXT_stencil_wrap
  GL_NV_fence GL_EXT_vertex_array GL_IBM_texture_mirrored_repeat
  GL_EXT_texture_compression_s3tc GL_NV_vertex_program2_option
  GL_EXT_texture_buffer_object GL_ARB_depth_texture
  GL_NV_packed_depth_stencil GL_EXTX_framebuffer_mixed_formats
  GL_EXT_Cg_shader GL_NV_primitive_restart GL_EXT_framebuffer_sRGB
  GL_EXT_texture_object GL_NVX_conditional_render
  GL_NV_texture_compression_vtc GL_NV_texture_shader3
  GL_NV_multisample_coverage GL_EXT_blend_func_separate
  GL_EXT_texture_cube_map GL_ARB_occlusion_query GL_ARB_transpose_matrix
  GL_EXT_gpu_shader4 GL_ARB_texture_border_clamp GL_EXT_fog_coord
  GL_NV_depth_clamp GL_ARB_texture_cube_map
  GL_EXT_blend_equation_separate GL_NV_framebuffer_multisample_coverage
  GL_ARB_point_parameters GL_EXT_texture_env_dot3
  GL_EXT_multi_draw_arrays GL_KTX_buffer_region
  GL_EXT_texture_env_combine GL_NV_fog_distance GL_ARB_vertex_program
  GL_ARB_texture_env_dot3 GL_NV_gpu_program4 GL_EXT_bgra
  GL_NV_float_buffer GL_NV_texture_env_combine4
  GL_ARB_texture_env_combine GL_ARB_vertex_buffer_object
  GL_EXT_shadow_funcs GL_NV_vertex_array_range
  GL_NV_texture_expand_normal GL_EXT_separate_specular_color
  GL_EXT_texture_env_add GL_EXT_packed_depth_stencil
  GL_EXT_texture_mirror_clamp GL_EXT_timer_query
  GL_NV_multisample_filter_hint GL_SUN_slice_accum
  GL_EXT_geometry_shader4 GL_EXT_texture_compression_latc
  GL_ARB_point_sprite GL_EXT_framebuffer_object GL_ARB_vertex_shader
  GL_ARB_half_float_pixel GL_EXT_bindable_uniform
  GL_NV_register_combiners GL_ARB_draw_buffers
  GL_ARB_fragment_program_shadow GL_NV_half_float GL_EXT_packed_float
  GL_ATI_texture_mirror_once GL_IBM_rasterpos_clip GL_EXT_texture_sRGB
  GL_EXT_stencil_two_side GL_SGIX_shadow GL_NV_texgen_reflection
  GL_EXT_texture_array GL_EXT_compiled_vertex_array
  GL_NV_fragment_program2 GL_NV_depth_buffer_float
  GL_EXT_point_parameters GL_ARB_texture_float GL_ARB_fragment_shader
  GL_ATI_texture_float GL_NV_texture_shader GL_NV_pixel_data_range
  GL_ARB_imaging GL_EXT_draw_buffers2 GL_ARB_fragment_program
  GL_ARB_shader_objects GL_ARB_shading_language_100 GL_NV_blend_square
  GL_EXT_secondary_color GL_ARB_texture_non_power_of_two
  GL_EXT_texture_lod_bias GL_NV_texture_rectangle
  GL_EXT_pixel_buffer_object GL_EXT_abgr GL_NV_vertex_program
  GL_ARB_texture_rectangle GL_ARB_multisample GL_SGIS_generate_mipmap
  GL_NV_conditional_render GL_EXT_texture_filter_anisotropic
  GL_NV_light_max_exponent GL_EXT_blend_minmax GL_EXT_framebuffer_blit
  GL_SGIS_texture_lod GL_NV_vertex_program3 GL_NV_vertex_program2
  GL_SGIX_depth_texture GL_ARB_color_buffer_float
  GL_EXT_texture_edge_clamp GL_EXT_texture_compression_rgtc
  GL_ARB_window_pos GL_ARB_shadow GL_ARB_texture_mirrored_repeat
  GL_EXT_texture_integer GL_EXT_gpu_program_parameters
  GL_EXT_texture_lod GL_NV_geometry_shader4 GL_S3_s3tc
  GL_NV_vertex_program1_1 GL_EXT_framebuffer_multisample
  GL_EXT_texture_shared_exponent GL_NV_texture_shader2 GL_EXT_texture3D
  GL_ARB_multitexture GL_EXT_draw_instanced GL_NV_copy_depth_to_color
  GL_ATI_draw_buffers GL_EXT_depth_bounds_test
  GL_EXT_draw_range_elements GL_NV_transform_feedback
  GL_NV_occlusion_query GL_ARB_texture_env_add GL_NV_fragment_program
  GL_NV_parameter_buffer_object GL_EXT_packed_pixels
  GL_EXT_rescale_normal GL_ARB_pixel_buffer_object
  GL_NV_register_combiners2
GLU version: 1.3
GLU extensions:
  GLU_EXT_nurbs_tessellator GLU_EXT_object_space_tess

Context is XlibContext13()

Original issue reported on code.google.com by pyalot@gmail.com on 7 Aug 2009 at 4:02

Attachments:

GoogleCodeExporter commented 9 years ago
This patch solves the issue for me:

Index: pyglet/window/xlib/__init__.py
===================================================================
--- pyglet/window/xlib/__init__.py  (revision 2449)
+++ pyglet/window/xlib/__init__.py  (working copy)
@@ -503,12 +503,6 @@
         # only once, in which case attributes.x/y give the offset from
         # the frame to the content window.  Better solution would be
         # to use _NET_FRAME_EXTENTS, where supported.
-        attributes = xlib.XWindowAttributes()
-        xlib.XGetWindowAttributes(self._x_display, self._window,
-                                  byref(attributes))
-        # XXX at least under KDE's WM these attrs are both 0
-        x -= attributes.x
-        y -= attributes.y
         xlib.XMoveWindow(self._x_display, self._window, x, y)

Original comment by pyalot@gmail.com on 12 Aug 2009 at 5:25

GoogleCodeExporter commented 9 years ago
Fixed with: http://hg.codeflow.org/pyglet/rev/45c09074bc16

Original comment by pyalot@gmail.com on 14 Aug 2009 at 12:53

GoogleCodeExporter commented 9 years ago

Original comment by Nicolas.Rougier@gmail.com on 16 Aug 2009 at 8:08

GoogleCodeExporter commented 9 years ago
Unable to reproduce on OS X, seems to be Linux-specific.

Original comment by m.e.w.ol...@gmail.com on 16 Aug 2009 at 3:55

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago

Original comment by Adam.JT...@gmail.com on 27 Apr 2012 at 10:01