christopherjbly / tint2

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

Cannot maximize windows correctly in multi-monitor setup #321

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. running dual screen setup in openbox
2. maximise a window (e.g. chrome) on crtc1 
3. kill tint2 to solve problem

What is the expected output? What do you see instead?
I can't maximise windows on my second screen (LVDS1). When I do - the window 
maximises horisontally, and it's placed at the top. But the window itself 
becomes extremely "thin" - often only the title bar + a bit extra. 

What version of the product are you using? On what operating system?
0.11 svn on crunchbang linux (debian squeeze)

Please provide any additional information below.
See this forum post: 
http://crunchbanglinux.org/forums/topic/11259/can-not-maximise-windows-on-second
-screen-dual-monitor-setup-ob/

Original issue reported on code.google.com by achristo...@gmail.com on 21 Jan 2011 at 1:28

GoogleCodeExporter commented 9 years ago
Can you post your tint2rc?
Can you try svn if it's fixed there?

Original comment by Andreas.Fink85 on 21 Jan 2011 at 2:20

GoogleCodeExporter commented 9 years ago
Thanks for the quick reply

yeah - this is the tint2rc: pastebin: http://codepad.org/e44BquhA

I haven't used subversion before - but I guess I can figure it out :-)

Thanks again

Original comment by achristo...@gmail.com on 21 Jan 2011 at 2:32

GoogleCodeExporter commented 9 years ago
It seems that your monitor layout is VGA above LVDS. However in such a layout 
only a left / right panel is allowed (or you set 'strut_policy = none').
For a layout where your monitors are in a horizontal layout only top/bottom 
panel works correctly. The problems are the struts (i.e. the space which is 
reserved by a panel to prevent applications maximizing into that area). 
Unfortunately the specification for struts never took into account, that there 
can be multi-monitor layouts, so only at a screen-edge a strut can be defined 
meaningfully (if you really wanna know more: 
http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2552096)

So here are your possibilities:
- Use a horizontal monitor layout (with your horizontal panel)
- Use a vertical panel (with you vertical monitor layout)
- set 'strut_policy = none' (this will disable setting the struts)

This can be fixed only in the specification. Neither tint2, nor openbox show a 
misbehaviour. They are doing exactly what the specification tells them to do :(

Original comment by Andreas.Fink85 on 21 Jan 2011 at 3:13

GoogleCodeExporter commented 9 years ago
Ah - okay - thanks a lot! What a shame with the standards - but great that you 
provided the answer so quickly. i love tint - will most likely disable strut, 
as I have never liked vertical panels. Let' see :-)

Original comment by achristo...@gmail.com on 22 Jan 2011 at 5:58

GoogleCodeExporter commented 9 years ago
Just a quick follow up.It seems that setting "panel_monitor = 2" solves the 
problem. Panel_monitor = 1 did not fix it - but 2 seems to. thanks again for 
the great tint2 :-)

Original comment by achristo...@gmail.com on 25 Jan 2011 at 11:31

GoogleCodeExporter commented 9 years ago
It might be worth warning on startup when bad configurations like this are set 
(or otherwise documenting this issue).  I got rather confused when I hit it 
this morning and was about to file another bug report before I randomly found 
this one.

Original comment by aml...@gmail.com on 9 Sep 2011 at 8:22

GoogleCodeExporter commented 9 years ago
I have a problem with struts too.

I have two monitors in TwinView (single screen). This is how it looks like:
http://img.flashtux.org/img133067422f77x919a6b69.png

$ xrandr 
Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 8192 x 8192
DVI-I-0 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 
531mm x 299mm
   1920x1080      60.0*+   60.0  
   1680x1050      60.0  
   1600x900       60.0  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1280x720       60.0  
   1152x720       60.0  
   1024x768       75.0     60.0  
   800x600        75.0     60.3  
   640x480        75.0     59.9  
VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm 
x 301mm
   1280x1024      60.0*+   75.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.0     70.1     60.0  
   800x600        75.0     72.2     60.3     56.2  
   640x480        75.0     72.8     59.9  
TV-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 disconnected (normal left inverted right x axis y axis)

I used to run two tint2 instances in horizontal mode for each monitor but 
recently I discovered panel_monitor=all. Here is my config:
http://ix.io/3yU

The problem is that STRUT is not correct for the tint2 instance on the smaller 
monitor (VGA-0 connected 1280x1024+0+0). Here is my xprop output for both tint2 
panels:

first (smaller monitor):
$ xprop | grep STRUT
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 0, 0, 0, 0
_NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 6, 1272
_NET_WM_STRUT(CARDINAL) = 0, 0, 0, 81

second (larger monitor):
$ xprop | grep STRUT
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 0, 0, 0, 0
_NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 1290, 3189
_NET_WM_STRUT(CARDINAL) = 0, 0, 0, 25

As you can see, bottom strut for the first monitor is 81. The line responsible 
for bottom strut calculation is src/panel.c:382
struts[3] = height + screen_height - monitor.y - monitor.height;
which in my case =
                 = 25 + 1080 - 0 - 1024 = 81 (smaller monitor)
                 = 25 + 1080 - 0 - 1080 = 25 (larger monitor)

Window maximization works fine, though. The reason it bothers me is "whaw" 
program (http://repetae.net/computer/whaw/). This is a program which allows you 
to tile selected windows. It's not working right on my first monitor: it leaves 
some empty space because one of the clients (tint2) has this large strut value 
= 81. It looks like this:
http://img.flashtux.org/img13306742374bxb8a8c374.png

whaw was updated in 2005 last time so I doubt there are any fixes to expect in 
this software. Does this seem like a problem of tint2? Can it be fixed?

There is a workaround, though: put tint2 in the top, not bottom. But I've 
terribly got used to bottom location.

Original comment by baltazar...@gmail.com on 4 Dec 2012 at 1:58

GoogleCodeExporter commented 9 years ago
Well... Still, it seems like it's whaw who's supposed to take screen size + 
monitor size/offset into account.

Original comment by baltazar...@gmail.com on 4 Dec 2012 at 2:19

GoogleCodeExporter commented 9 years ago
TODO: there is nothing we can do to fix this, but we could print a warning, or 
at least document it on the wiki.

Original comment by mrovi9...@gmail.com on 1 Feb 2015 at 6:47

GoogleCodeExporter commented 9 years ago

Original comment by mrovi9...@gmail.com on 1 Feb 2015 at 11:52