agwells / pywo

Automatically exported from code.google.com/p/pywo
GNU General Public License v3.0
0 stars 0 forks source link

Window.geometry always x=0, y=0 in Openbox #7

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. run a Python shell in an Openbox desktop
2. move the terminal window to the center of the screen
3. >>> from pywo.core import WindowManager
4. >>> print WindowManager().active_window().geometry

What is the expected output? What do you see instead?
The x and y attributes of the Geometry object should reflect the position of 
the window on the screen. However, I always get
<Geometry x=0, y=0, ...>

What version of the product are you using? On what operating system?
Revision 176 on Ubuntu 10.10, lubuntu-desktop (Openbox)

Original issue reported on code.google.com by akaih...@gmail.com on 29 Apr 2011 at 5:17

GoogleCodeExporter commented 9 years ago
This seems to fix the issue:
https://github.com/akaihola/PyWO/commit/8e7f9fbd0db9cc4dab86fda8c4433f16c3e6895a

Original comment by akaih...@gmail.com on 29 Apr 2011 at 5:21

GoogleCodeExporter commented 9 years ago
Could you send me the output of 'pywo debug [name of terminal window]'?
As far as I remember Openbox returned correct geometries, the only problem was 
with borderless windows.

Original comment by kosci...@gmail.com on 29 Apr 2011 at 6:34

GoogleCodeExporter commented 9 years ago
I ran this with revision 176. When running the debug command, the terminal 
window jumped to the top left corner of the screen, with its top edge hidden 
under the panel. The same happened when debugging Emacs, Chromium and Xchat 
windows.

It seems that the theme I use (Ozone) defined <keepBorder>no</keepBorder> in 
its configuration. As soon as I changed that to <keepBorder>yes</keepBorder>, 
PyWO started to work as expected.

With <keepBorder>no</keepBorder>:

$ python pywo/main.py debug Terminator
Xlib.protocol.request.QueryExtension
<Action 'debug'>: win=<Window id=52428803>, kwargs={}
-= Window Manager =-
Name=Openbox
-= Desktops =-
Layout=None
Names=[u'Main', u'Aux', u'Status', u'Misc']
Total=4
Current=0
Size=<Size width=1200, height=1920>
-= Viewports =-
Layout=<Layout cols=1, rows=1, orientation=0, corner=0>
Position=<Position x=0, y=0>
-= Workarea =-
Geometry=<Geometry x=0, y=24, width=1200, height=1896, x2=1200, y2=1920>
-= Strut =-
[<Strut left=(0L, 0L, 0L), right=(0L, 0L, 0L), top=(24L, 0L, 800L), bottom=(0L, 
0L, 0L)>]
-= Screens =-
Total=1
Geometries=[<Geometry x=0, y=0, width=1200, height=1920, x2=1200, y2=1920>]
-= Current Window =-
ID=52428803
Client_machine="morris"
Name="/bin/bash"
Class="terminator.Terminator"
Type=['_NET_WM_WINDOW_TYPE_NORMAL']
State=['_OB_WM_STATE_UNDECORATED']
WM State={'state': 1, 'icon': 0}
Desktop=0
Extents=<Extents left=0, right=0, top=0, bottom=0>
Extents_raw=[]
Geometry=<Geometry x=0, y=0, width=1197, height=947, x2=1197, y2=947>
Geometry_raw={'height': 947, 'width': 1197, 'depth': 24, 'y': 0, 'x': 0, 
'border_width': 0, 'root': <Xlib.display.Window 0x000000b6>, 'sequence_number': 
162}
Geometry_translated={'y': -241, 'x': 0, 'sequence_number': 164, 'same_screen': 
1, 'child': 0}
Strut=None
Parent=None None
Normal_hints={'width_inc': 6, 'height_inc': 13, 'min_aspect': 
Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 'max_height': 0, 
'max_aspect': Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 
'min_height': 0, 'win_gravity': 1, 'flags': 832, 'max_width': 0, 'min_width': 
0, 'base_width': 3, 'base_height': 24}
Attributes={'do_not_propagate_mask': 8204, 'your_event_mask': 0, 
'override_redirect': 0, 'bit_gravity': 1, 'all_event_masks': 14909567, 
'save_under': 0, 'visual': 33, 'win_class': 1, 'backing_bit_planes': 
4294967295L, 'backing_store': 0, 'map_state': 2, 'win_gravity': 1, 
'map_is_installed': 1, 'backing_pixel': 0, 'sequence_number': 172, 'colormap': 
<Xlib.xobject.colormap.Colormap 0x00000020>}
Query_tree={'root': <Xlib.display.Window 0x000000b6>, 'parent': 
<Xlib.display.Window 0x00c00155>, 'sequence_number': 173, 'children': 
[<Xlib.display.Window 0x03200004>]}
-= Move using same geometry =-
Old geometry=<Geometry x=0, y=0, width=1197, height=947, x2=1197, y2=947>
New geometry=<Geometry x=0, y=0, width=1197, height=947, x2=1197, y2=947>
-= End of debug output =-

With <keepBorder>yes</keepBorder>:

$ bin/python pywo/main.py debug Terminator
Xlib.protocol.request.QueryExtension
<Action 'debug'>: win=<Window id=52428803>, kwargs={}
-= Window Manager =-
Name=Openbox
-= Desktops =-
Layout=None
Names=[u'Main', u'Aux', u'Status', u'Misc']
Total=4
Current=0
Size=<Size width=1200, height=1920>
-= Viewports =-
Layout=<Layout cols=1, rows=1, orientation=0, corner=0>
Position=<Position x=0, y=0>
-= Workarea =-
Geometry=<Geometry x=0, y=24, width=1200, height=1896, x2=1200, y2=1920>
-= Strut =-
[<Strut left=(0L, 0L, 0L), right=(0L, 0L, 0L), top=(24L, 0L, 800L), bottom=(0L, 
0L, 0L)>]
-= Screens =-
Total=1
Geometries=[<Geometry x=0, y=0, width=1200, height=1920, x2=1200, y2=1920>]
-= Current Window =-
ID=52428803
Client_machine="morris"
Name="/bin/bash"
Class="terminator.Terminator"
Type=['_NET_WM_WINDOW_TYPE_NORMAL']
State=['_OB_WM_STATE_UNDECORATED']
WM State={'state': 1, 'icon': 0}
Desktop=0
Extents=<Extents left=1, right=1, top=1, bottom=1>
Extents_raw=['1', '1', '1', '1']
Geometry=<Geometry x=48, y=97, width=1199, height=949, x2=1247, y2=1046>
Geometry_raw={'height': 947, 'width': 1197, 'depth': 24, 'y': 1, 'x': 1, 
'border_width': 0, 'root': <Xlib.display.Window 0x000000b6>, 'sequence_number': 
180}
Geometry_translated={'y': -97, 'x': -48, 'sequence_number': 182, 'same_screen': 
1, 'child': 0}
Strut=None
Parent=None None
Normal_hints={'width_inc': 6, 'height_inc': 13, 'min_aspect': 
Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 'max_height': 0, 
'max_aspect': Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 
'min_height': 0, 'win_gravity': 1, 'flags': 832, 'max_width': 0, 'min_width': 
0, 'base_width': 3, 'base_height': 24}
Attributes={'do_not_propagate_mask': 8204, 'your_event_mask': 0, 
'override_redirect': 0, 'bit_gravity': 1, 'all_event_masks': 14909567, 
'save_under': 0, 'visual': 33, 'win_class': 1, 'backing_bit_planes': 
4294967295L, 'backing_store': 0, 'map_state': 2, 'win_gravity': 1, 
'map_is_installed': 1, 'backing_pixel': 0, 'sequence_number': 190, 'colormap': 
<Xlib.xobject.colormap.Colormap 0x00000020>}
Query_tree={'root': <Xlib.display.Window 0x000000b6>, 'parent': 
<Xlib.display.Window 0x00c00155>, 'sequence_number': 191, 'children': 
[<Xlib.display.Window 0x03200004>]}
-= Move using same geometry =-
Old geometry=<Geometry x=48, y=97, width=1199, height=949, x2=1247, y2=1046>
New geometry=<Geometry x=48, y=97, width=1199, height=949, x2=1247, y2=1046>
-= End of debug output =-

Original comment by akaih...@gmail.com on 3 May 2011 at 9:33

GoogleCodeExporter commented 9 years ago
Thanks a lot!
Now I (most probably) know what is the cause of the problem. Seems that last 
fix for Metacity messed up geometry calculations in Openbox... I'll try to work 
on this today.

Original comment by kosci...@gmail.com on 3 May 2011 at 10:02

GoogleCodeExporter commented 9 years ago
I just verified that revision 185 works correctly, so this issue can probably 
be closed.

Original comment by akaih...@gmail.com on 14 May 2011 at 4:52

GoogleCodeExporter commented 9 years ago
Completely forgot to update the issue after providing the fix for the bug.
Thanks for the information that it works correctly now!

Original comment by kosci...@gmail.com on 14 May 2011 at 12:03