Author Topic: Fvwm With Xrandr  (Read 6811 times)

Christoph

  • Newbie
  • *
  • Posts: 42
    • View Profile
    • http://
Fvwm With Xrandr
« on: October 26, 2007, 03:23:23 am »
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
SL C850, pdaXrom rc10, fvwm

InSearchOf

  • Administrator
  • Hero Member
  • *****
  • Posts: 1144
    • View Profile
    • http://
Fvwm With Xrandr
« Reply #1 on: October 26, 2007, 08:05:21 am »
it is an icewm patch that makes the rotation work
[div class=\'codetop\']CODE[/div][div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']--- 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
[/div]

AND

[div class=\'codetop\']CODE[/div][div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
--- 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;[/div]

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
Sharp Zaurus SL-C3100 and SL-6000L
pdaXrom Developer
Please visit pdaXrom.org for updates
My Blog
IRC #pdaxrom @ FreeNode

Christoph

  • Newbie
  • *
  • Posts: 42
    • View Profile
    • http://
Fvwm With Xrandr
« Reply #2 on: October 26, 2007, 08:23:05 am »
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
SL C850, pdaXrom rc10, fvwm