ratpoison-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

_NET_WM_PID strangenesses (was Re: [RP] patch to improve manpages' descr


From: Bernhard R. Link
Subject: _NET_WM_PID strangenesses (was Re: [RP] patch to improve manpages' description of redisplay)
Date: Fri, 13 Jan 2006 12:15:53 +0100
User-agent: Mutt/1.5.9i

* Shawn Betts <address@hidden> [060103 22:32]:
> This sounds like a bug. You're saying a netwm compliant program opens
> and any transient it creates is put in the startup frame? 

That is what is happening.

> That doesn't
> seem right. The intended behavior is only the first window gets put in
> that frame. All subsequent ones appear in the current frame. Can you
> give me steps to reproduce?

It happens with both qt application I am using.
The problem seems to be that those are not setting the _NET_WM_PID
property on their first and main window until after creating, but 
on the transient windows opened later.

Having two frames I select one of them, start the program with
the exec comand there. The main window opens up in that frame.
I select the other frame and let the program start a transient window
clicking there with the rat. Then it opens a window, but that window
shows up in the frame the original window was and not in the one
currently selected.

Some snippets from the .xsession-errors of ratpoison compiled with
DEBUG=1 (and a bit extended DEBUG_PRINT):

ratpoison:main.c:629: debug: _NET_WM_PID = 236
ratpoison:main.c:631: debug: _NET_SUPPORTED = 237
ratpoison:number.c:76: debug: ns=0x806b6b0 add_num 0
ratpoison:number.c:99: debug: ns=0x806b6b0 request got 0
ratpoison:screen.c:215: debug: 1 screens.
ratpoison:screen.c:291: debug: DISPLAY=:2.0
ratpoison:number.c:76: debug: ns=0x806b810 add_num 0
ratpoison:number.c:99: debug: ns=0x806b810 request got 0
ratpoison:input.c:115: debug: Found Alt on 8
ratpoison:input.c:135: debug: Found NumLock on 16
ratpoison:input.c:108: debug: Found Meta on 64
ratpoison:input.c:108: debug: Found Meta on 64
ratpoison:actions.c:514: debug: realloc()ed key_table 2
ratpoison:actions.c:514: debug: realloc()ed key_table 4
ratpoison:actions.c:514: debug: realloc()ed key_table 8
ratpoison:actions.c:514: debug: realloc()ed key_table 16
ratpoison:actions.c:514: debug: realloc()ed key_table 32
ratpoison:actions.c:514: debug: realloc()ed key_table 64
ratpoison:actions.c:514: debug: realloc()ed key_table 128
ratpoison:manage.c:455: debug: windows: 5
ratpoison:main.c:405: debug: ratpoison: could not open /home/brl/.ratpoisonrc
ratpoison:main.c:410: debug: ratpoison: could not open /etc/ratpoisonrc
ratpoison:bar.c:506: debug: msg = Welcome to ratpoison! Hit `C-t ?' for help.
ratpoison:bar.c:507: debug: mark_start = 0, mark_end = 0
ratpoison:globals.c:249: debug: Giving focus to 4194310
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 237
ratpoison:window.c:261: debug: Window not found.
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:events.c:868: debug: Alarm received.
ratpoison:events.c:816: debug: --- Handling UnmapNotify ---
ratpoison:events.c:811: debug: --- Handling KeyPress ---
ratpoison:events.c:393: debug: handling key...
ratpoison:events.c:406: debug: handle_key
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:events.c:427: error: Impossible: No matching key
ratpoison:events.c:811: debug: --- Handling KeyPress ---
ratpoison:events.c:393: debug: handling key...
ratpoison:events.c:406: debug: handle_key
ratpoison:input.c:40: debug: x11 mask = 4
ratpoison:input.c:49: debug: rp mask = 4
ratpoison:events.c:414: debug: readkey root
ratpoison:actions.c:2326: debug: cmd==readkey rest==root
ratpoison:actions.c:2088: debug: list len: 1
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:actions.c:2326: debug: cmd==hsplit rest==(null)
ratpoison:actions.c:2088: debug: list len: 0
ratpoison:number.c:76: debug: ns=0x806b810 add_num 0
ratpoison:number.c:76: debug: ns=0x806b810 add_num 1
ratpoison:number.c:99: debug: ns=0x806b810 request got 1
ratpoison:split.c:352: debug: No window fits the frame.
ratpoison:events.c:811: debug: --- Handling KeyPress ---
ratpoison:events.c:393: debug: handling key...
ratpoison:events.c:406: debug: handle_key
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:events.c:427: error: Impossible: No matching key
ratpoison:events.c:816: debug: --- Handling UnmapNotify ---
ratpoison:events.c:811: debug: --- Handling KeyPress ---
ratpoison:events.c:393: debug: handling key...
ratpoison:events.c:406: debug: handle_key
ratpoison:input.c:40: debug: x11 mask = 4
ratpoison:input.c:49: debug: rp mask = 4
ratpoison:events.c:414: debug: readkey root
ratpoison:actions.c:2326: debug: cmd==readkey rest==root
ratpoison:actions.c:2088: debug: list len: 1
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:actions.c:2326: debug: cmd==exec rest==(null)
ratpoison:actions.c:2088: debug: list len: 0
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:input.c:453: debug: ch = 99, modifier = 0, keysym_buf = c, 
keysym_bufsize = 513
ratpoison:editor.c:448: debug: keysym_buf: 'c'
ratpoison:editor.c:465: debug: line->buffer: 'c'
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:input.c:453: debug: ch = 117, modifier = 0, keysym_buf = u, 
keysym_bufsize = 513
ratpoison:editor.c:448: debug: keysym_buf: 'u'
ratpoison:editor.c:465: debug: line->buffer: 'cu'
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:input.c:453: debug: ch = 121, modifier = 0, keysym_buf = y, 
keysym_bufsize = 513
ratpoison:editor.c:448: debug: keysym_buf: 'y'
ratpoison:editor.c:465: debug: line->buffer: 'cuy'
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:input.c:453: debug: ch = 111, modifier = 0, keysym_buf = o, 
keysym_bufsize = 513
ratpoison:editor.c:448: debug: keysym_buf: 'o'
ratpoison:editor.c:465: debug: line->buffer: 'cuyo'
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:input.c:453: debug: ch = 65293, modifier = 0, keysym_buf = 
, keysym_bufsize = 513
ratpoison:editor.c:482: debug: History Expansion - result: 0
ratpoison:editor.c:483: debug: History Expansion - expansion: 'cuyo'
ratpoison:history.c:92: debug: Adding item: cuyo
ratpoison:actions.c:2487: debug: spawned cuyo
ratpoison:events.c:816: debug: --- Handling UnmapNotify ---
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:window.c:190: debug: transient 0
ratpoison:window.c:124: debug: get_child_info: w=6291457 _net_wm_pid=236
ratpoison:window.c:131: debug: Couldn't get _NET_WM_PID Property

        qt does not set the _NET_WM_PID here already

ratpoison:window.c:225: debug: frame_num: -1
ratpoison:manage.c:235: debug: XGetWindowProperty: 0 0 0 0 0 '(null)'
ratpoison:manage.c:239: debug: I can't get the WMName.
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:window.c:190: debug: transient 0
ratpoison:window.c:124: debug: get_child_info: w=6291458 _net_wm_pid=236
ratpoison:window.c:131: debug: Couldn't get _NET_WM_PID Property
ratpoison:window.c:225: debug: frame_num: -1
ratpoison:manage.c:235: debug: XGetWindowProperty: 0 0 0 0 0 '(null)'
ratpoison:manage.c:239: debug: I can't get the WMName.
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 226
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 226
ratpoison:events.c:776: debug: --- Handling ConfigureRequest ---
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:280: debug: 'Unnamed' window size: 320 307 640 409 0
ratpoison:events.c:294: debug: request CWWidth 640
ratpoison:events.c:301: debug: request CWHeight 409
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 39
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:603: debug: updating window name
ratpoison:manage.c:235: debug: XGetWindowProperty: 0 31 8 4 0 'cuyo'
ratpoison:manage.c:250: debug: WM_NAME: 'cuyo'
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 228
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 228
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 272
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 272
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 236
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 236

        that's _NET_WM_PID, I guess that needs handling here,
        or that only read when mapping instead of when creating

ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 281
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 281
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 227
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 227
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:events.c:776: debug: --- Handling ConfigureRequest ---
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:280: debug: 'cuyo' window size: 320 307 640 409 0
ratpoison:events.c:294: debug: request CWWidth 652
ratpoison:events.c:301: debug: request CWHeight 680
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:window.c:190: debug: transient 0
ratpoison:window.c:124: debug: get_child_info: w=6291461 _net_wm_pid=236
ratpoison:window.c:131: debug: Couldn't get _NET_WM_PID Property
ratpoison:window.c:225: debug: frame_num: -1
ratpoison:manage.c:235: debug: XGetWindowProperty: 0 0 0 0 0 '(null)'
ratpoison:manage.c:239: debug: I can't get the WMName.
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:manage.c:207: debug: minx: 652 miny: 715
ratpoison:manage.c:210: debug: maxx: 652 maxy: 715
ratpoison:events.c:776: debug: --- Handling ConfigureRequest ---
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:280: debug: 'cuyo' window size: 320 307 652 680 0
ratpoison:events.c:294: debug: request CWWidth 652
ratpoison:events.c:301: debug: request CWHeight 715
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:manage.c:207: debug: minx: 652 miny: 715
ratpoison:manage.c:210: debug: maxx: 652 maxy: 715
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:manage.c:207: debug: minx: 652 miny: 715
ratpoison:manage.c:210: debug: maxx: 652 maxy: 715
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 34
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 34
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 36
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 36
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 226
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 226
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 35
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 35
ratpoison:events.c:806: debug: --- Handling MapRequest ---
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:163: debug: Map request from a managed window
ratpoison:events.c:176: debug: Mapping Withdrawn Window
ratpoison:manage.c:824: debug: Mapping the unmapped window cuyo
ratpoison:manage.c:235: debug: XGetWindowProperty: 0 31 8 4 0 'cuyo'
ratpoison:manage.c:250: debug: WM_NAME: 'cuyo'
ratpoison:manage.c:207: debug: minx: 652 miny: 715
ratpoison:manage.c:210: debug: maxx: 652 maxy: 715
ratpoison:number.c:76: debug: ns=0x806b768 add_num 0
ratpoison:number.c:99: debug: ns=0x806b768 request got 0
ratpoison:manage.c:122: debug: grabbing top level key
ratpoison:manage.c:125: debug: 0
ratpoison:input.c:62: debug: rp mask = 2
ratpoison:input.c:71: debug: x11 mask = 4
ratpoison:input.c:196: debug: keycode_mod: 116 28 0
ratpoison:number.c:76: debug: ns=0x806b728 add_num 0
ratpoison:number.c:99: debug: ns=0x806b728 request got 0
ratpoison:window.c:561: debug: intended_frame_number: -1
ratpoison:window.c:645: debug: new window: cuyo
ratpoison:manage.c:701: debug: aspect: 0
ratpoison:manage.c:723: debug: frame width=640 height=1024
ratpoison:manage.c:749: debug: maxsize: 638 715
ratpoison:manage.c:773: debug: Resizing window 'cuyo' to x:0 y:154 w:638 h:715
ratpoison:globals.c:241: debug: Giving focus to 'cuyo'
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 107
ratpoison:window.c:265: debug: Window found in mapped window list.
ratpoison:events.c:621: debug: Unhandled property notify event: 107
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 107
ratpoison:window.c:265: debug: Window found in mapped window list.
ratpoison:events.c:621: debug: Unhandled property notify event: 107
ratpoison:events.c:826: debug: --- Handling FocusIn ---
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 242
ratpoison:window.c:265: debug: Window found in mapped window list.
ratpoison:events.c:621: debug: Unhandled property notify event: 242
ratpoison:events.c:811: debug: --- Handling KeyPress ---
ratpoison:events.c:393: debug: handling key...
ratpoison:events.c:406: debug: handle_key
ratpoison:input.c:40: debug: x11 mask = 4
ratpoison:input.c:49: debug: rp mask = 4
ratpoison:events.c:414: debug: readkey root
ratpoison:actions.c:2326: debug: cmd==readkey rest==root
ratpoison:actions.c:2088: debug: list len: 1
ratpoison:input.c:40: debug: x11 mask = 0
ratpoison:input.c:49: debug: rp mask = 0
ratpoison:actions.c:2326: debug: cmd==focusright rest==(null)
ratpoison:actions.c:2088: debug: list len: 0
ratpoison:globals.c:249: debug: Giving focus to 4194310
ratpoison:events.c:821: debug: --- Handling FocusOut ---
ratpoison:window.c:265: debug: Window found in mapped window list.
ratpoison:events.c:666: debug: Re-grabbing prefix key
ratpoison:manage.c:122: debug: grabbing top level key
ratpoison:manage.c:125: debug: 0
ratpoison:input.c:62: debug: rp mask = 2
ratpoison:input.c:71: debug: x11 mask = 4
ratpoison:input.c:196: debug: keycode_mod: 116 28 0
ratpoison:events.c:826: debug: --- Handling FocusIn ---
ratpoison:events.c:821: debug: --- Handling FocusOut ---
ratpoison:events.c:868: debug: Alarm received.
ratpoison:events.c:816: debug: --- Handling UnmapNotify ---
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 242
ratpoison:window.c:265: debug: Window found in mapped window list.
ratpoison:events.c:621: debug: Unhandled property notify event: 242
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:manage.c:210: debug: maxx: 157 maxy: 250
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:manage.c:210: debug: maxx: 157 maxy: 250
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:manage.c:210: debug: maxx: 157 maxy: 250
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 40
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:609: debug: updating window normal hints
ratpoison:manage.c:210: debug: maxx: 157 maxy: 250
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 35
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 35
ratpoison:events.c:801: debug: --- Handling PropertyNotify ---
ratpoison:events.c:586: debug: atom: 242
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:621: debug: Unhandled property notify event: 242
ratpoison:events.c:826: debug: --- Handling FocusIn ---
ratpoison:window.c:259: debug: Window found in unmapped window list
ratpoison:events.c:666: debug: Re-grabbing prefix key
ratpoison:manage.c:122: debug: grabbing top level key
ratpoison:manage.c:125: debug: 0
ratpoison:input.c:62: debug: rp mask = 2
ratpoison:input.c:71: debug: x11 mask = 4
ratpoison:input.c:196: debug: keycode_mod: 116 28 0
ratpoison:events.c:816: debug: --- Handling UnmapNotify ---
ratpoison:events.c:816: debug: --- Handling UnmapNotify ---
ratpoison:events.c:821: debug: --- Handling FocusOut ---
ratpoison:events.c:816: debug: --- Handling UnmapNotify ---
ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:window.c:190: debug: transient 1
ratpoison:window.c:124: debug: get_child_info: w=6291667 _net_wm_pid=236
ratpoison:window.c:153: debug: pid: 30522
ratpoison:window.c:157: debug: sid: 30522
ratpoison:window.c:160: debug: cur->pid=30522 sid=30522 frame=0x8073710(0)
ratpoison:screen.c:144: debug: cur=0x8073710 f=0x8073710
ratpoison:window.c:212: debug: frame=0x8073710
ratpoison:window.c:225: debug: frame_num: 0
ratpoison:manage.c:235: debug: XGetWindowProperty: 0 31 8 14 0 'Start at Level'
ratpoison:manage.c:250: debug: WM_NAME: 'Start at Level'

        Now it is put in the frame 0 instead of the current one (1).

.... skipping closing of that window, and changing back to frame 1 again and
opening the dialog box again:

ratpoison:events.c:781: debug: --- Handling CreateNotify ---
ratpoison:window.c:261: debug: Window not found.
ratpoison:window.c:190: debug: transient 1
ratpoison:window.c:124: debug: get_child_info: w=6291692 _net_wm_pid=236
ratpoison:window.c:153: debug: pid: 30522
ratpoison:window.c:157: debug: sid: 30522
ratpoison:window.c:160: debug: cur->pid=30522 sid=30522
ratpoison:screen.c:144: debug: cur=0x8073710 f=0x8073710
ratpoison:window.c:212: debug: frame=0x8073710
ratpoison:window.c:225: debug: frame_num: 0
ratpoison:manage.c:235: debug: XGetWindowProperty: 0 31 8 14 0 'Start at Level'
ratpoison:manage.c:250: debug: WM_NAME: 'Start at Level'

and again it is put into frame 0.

Hochachtungsvoll,
        Bernhard R. Link




reply via email to

[Prev in Thread] Current Thread [Next in Thread]