Oct 25 2007, 11:23 PM
Post
#1
|
|
|
Group: Members Posts: 42 Joined: 30-September 04 From: Luxembourg Member No.: 4,819 |
Hi developpers,
after hours of searching and trial and error I finally give up and ask you for help. Perhaps someone knows what I am doing wrong. Some time ago I hacked a bit with fvwm to make it support xrandr, i.e. the viewport gets updated and the menus show up in the right place. This hack worked fine with Angstrom (->xorg-1.3.0.x). But as this distro does not have the applications I want I switched back to pdaXrom 1.1.0beta1. And here (->xfree-4.4.0) xrandr does not work. The problem is especially that the event is promoted to fvwm, but the XRRScreenChangeNotifyEvent does not have the new width and height. Consequently DisplayWidh(...) does return the old width even after having called XRRUpdateConfiguration(...). On the other hand the field "rotation" is updated. Does anyone have an idea why? One more information: I installed icewm from the feed which supports xrandr well. If I compile it myself it has the same problem. Perhaps it is just a matter of compilation options? I'd really appreciate if someone could help. Christoph |
|
|
|
![]() |
Oct 26 2007, 04:05 AM
Post
#2
|
|
![]() Group: Admin Posts: 1,208 Joined: 20-January 06 From: York, Pennsylvania Member No.: 8,961 |
it is an icewm patch that makes the rotation work
CODE --- icewm/src/wmmgr.cc~ 2005-03-15 23:42:41.000000000 +0000 +++ icewm/src/wmmgr.cc 2005-03-15 23:58:20.000000000 +0000 @@ -70,6 +70,7 @@ XRRScreenChangeSelectInput(xapp->display(), handle(), True); #endif } + rotation = RR_Rotate_0; #endif fTopWin = new YWindow();; @@ -2654,13 +2655,19 @@ #endif if (width() != xrrsc.width || - height() != xrrsc.height) + height() != xrrsc.height || + rotation != xrrsc.rotation) { MSG(("xrandr: %d %d", xrrsc.width, xrrsc.height)); - setSize(xrrsc.width, xrrsc.height); + if (xrrsc.rotation == RR_Rotate_0 || + xrrsc.rotation == RR_Rotate_180) + setSize(xrrsc.width, xrrsc.height); + else + setSize(xrrsc.height, xrrsc.width); + updateXineramaInfo(); updateWorkArea(); #ifdef CONFIG_TASKBAR @@ -2672,6 +2679,7 @@ #endif #warning "make something better" wmapp->actionPerformed(actionArrange, 0); + rotation = xrrsc.rotation; } } #endif AND CODE --- icewm/src/wmmgr.h~ 2005-03-15 23:41:45.000000000 +0000 +++ icewm/src/wmmgr.h 2005-03-15 23:42:27.000000000 +0000 @@ -237,6 +237,9 @@ bool fFullscreenEnabled; WMState fWmState; +#ifdef CONFIG_XRANDR + Rotation rotation; +#endif }; extern YWindowManager *manager; I havent played with fvwm so really couldnt point you in the correct direction, but I would have to look at fvwm to determine the issue... I'm busying gettin pdaXrom 2.0 squared away so I dont know when I would have a chance to look at it... Hopefully one of the other devs or community members can pop in and give you some advise. Late |
|
|
|
Oct 26 2007, 04:23 AM
Post
#3
|
|
|
Group: Members Posts: 42 Joined: 30-September 04 From: Luxembourg Member No.: 4,819 |
Hi Late,
thank you for your fast answer! This is exactly what I didn't want to hear I hoped I had made a mistake that after having corrected it would result in DisplayWidth returning the right dimensions. I already started doing it the way the diff of icewm indicates, but zoom still does not work. I suspect there are plenty of places where fvwm calls DisplayWidth. So I would have to replace them. Just an additional question: Do you know if this is just a bug of xfree 4.4.0 or is this difference in behaviour to xorg intentional? Christoph |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 25th May 2013 - 02:16 AM |