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

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

Open
GoogleCodeExporter opened this issue Apr 6, 2015 · 6 comments

Comments

@GoogleCodeExporter
Copy link

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
Copy link
Author

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
Copy link
Author

Fixed with: http://hg.codeflow.org/pyglet/rev/45c09074bc16

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

@GoogleCodeExporter
Copy link
Author

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

  • Added labels: Type-Patch

@GoogleCodeExporter
Copy link
Author

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

  • Added labels: OpSys-Linux

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

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

  • Changed state: New

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

No branches or pull requests

1 participant