After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 334830 - Setting geometry doesn't work across Xinerama screens
Setting geometry doesn't work across Xinerama screens
Status: RESOLVED DUPLICATE of bug 323820
Product: metacity
Classification: Other
Component: general
2.14.x
Other All
: Normal normal
: ---
Assigned To: Metacity maintainers list
Metacity maintainers list
Depends on:
Blocks:
 
 
Reported: 2006-03-16 23:46 UTC by Hauke
Modified: 2007-01-03 16:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Hauke 2006-03-16 23:46:23 UTC
Please describe the problem:
When using two Screens with the Xinerama option on Gnome 2.14 (Ubuntu Dapper)
devilspie isn't able to set window positions, if this means moving the window to
the other screen. For example, if my left screen has the focus and thunderbird
is started, it isn't moved to my right screen as it is supposed to but only to
the border of the left screen. If focus is on the right screen, the rule applies
as intended and thunderbird gets in position.

Steps to reproduce:


Actual results:


Expected results:


Does this happen every time?


Other information:
I guess it's got something to do with the new "magnetic window edges" etc. in
metacity, see Gnome 2.14 changelog: "Window edges now have a magnetic
attraction, making it possible to "click" windows together. Multiple monitor
(head) handling has been improved in Metacity. Metacity will now attempt to
displace windows that want to appear across a monitor boundary onto one monitor
or the other."
Comment 1 Hauke 2006-03-17 11:43:40 UTC
Seems to be fixed with Gnome 2.14 Final.
Comment 2 Hauke 2006-03-17 14:17:01 UTC
Never mind my first comment, just false alarm. It's still broken :-(
Comment 3 Hauke 2006-03-21 17:04:08 UTC
Tried NVIDIA-TwinView instead of Xinerama, same issue.
Comment 4 Richard Blumel 2006-06-04 18:06:17 UTC
I am also having this problem. If more info is needed just ask. I can confirm this is a bug.


Richard Blumel
Comment 5 David Giesberg 2006-07-12 03:34:01 UTC
I can confirm it with ATI bigdesktop/xinerama
Comment 6 self 2006-09-10 11:56:52 UTC
I'm not sure if Twinview is the problem ..

I also try to move windows (Firefox and Thunderbird) accross my two screens. Sometimes it work's, sometimes not.

I think I could track down this to maximized Windows.
(perhaps the maximized-windows-issue is only happening when using twinview)

If Firefox is maximized, I can't be moved:

Steps to reproduce on my System:

kill devilspie

fx.ds
=====

(if
  (contains (window_name) "Mozilla Firefox")
  (begin
    (wintype "normal")
    (geometry "340x630+4+150")
  )
)

- start firefox
- maximize it
- run devilspie
- nothing happens

- kill devilspie
- un-maximize firefox
- run devilspie
- firefox is resized

I'm just missing an "restore" command to bring a window back from maximized state... then we could add this before the geometry command to move our windows arround.

Unfortunately this bug destroys the usefullness of devilspie on my system :-(


Comment 7 self 2006-09-10 12:45:15 UTC
Workaround/Patch:

I'm Using a Nvidia card with twinview and no moving windows across the screen's works for me. I just implemented an unmaximize-command.
Can you merge this ?

parser.c
========
[...]
  { "center", func_center, FALSE },
  { "maximize", func_maximize, FALSE },
  { "unmaximize", func_unmaximize, FALSE },   <--- inserted Line
[...]


actions.h
=========
[...]
ESExpResult *func_center(ESExp *f, int argc, ESExpResult **argv, Context *c);
ESExpResult *func_maximize(ESExp *f, int argc, ESExpResult **argv, Context *c);
ESExpResult *func_unmaximize(ESExp *f, int argc, ESExpResult **argv, Context *c); <--- inserted Line
[...]


actions.c
=========
after func_maximize inserted:


/**
 * Un-Maximise the current window.
 */
ESExpResult *func_unmaximize(ESExp *f, int argc, ESExpResult **argv, Context *c) {
  wnck_window_unmaximize (c->window);
   if (debug) g_printerr(_("Un-Maximising\n"));
   return e_sexp_result_new_bool (f, TRUE);
}



and then make clean, make all, make install


NEW fx.ds
=========

(if
  (contains (window_name) "Mozilla Firefox")
  (begin
    (unmaximize)
    (geometry "340x630+4+150")
  )
)


And it works!

Comment 8 self 2006-09-10 13:16:36 UTC
Okay ... corrections .. it doesn't work.

I think I just had two problems:

Moving a maximized window to another Twinview-Screen.

Moving a maximized window arround the same screen work's with the above "unmaximize". Moving to another screen doesn't work. Setting x-offset very high, just doesn't move my window out of screen 1:


+---------+---------+
|      WWW|         |
|      WWW|         |
+---------+---------+
          ^--- doesn't get further then the border of the screen.

WWW
WWW   is the Window
Comment 9 Ross Burton 2006-09-11 16:15:00 UTC
I've committed the unmaxmimise action anyway thanks.  I've only got a single screen but I'll have a think.
Comment 10 self 2006-09-12 10:28:57 UTC
seems to be a Gnome / metacity problem.

Using KDEs Window-Manager all works as supposed to work ..

Comment 11 Ross Burton 2006-09-12 10:33:09 UTC
This must be a metacity issue/design choice, re-assigning.

Metacity people: looks like Metacity is being too aggressive in clamping window operations to the current screen.
Comment 12 Elijah Newren 2006-09-20 00:26:12 UTC
I'm pretty sure this is a duplicate of bug 323820 and is fixed already.  Could you check with a newer version (metacity >= 2.15.34)?
Comment 13 Elijah Newren 2006-09-28 01:00:49 UTC
No response; I'll assume it's a dupe until I hear otherwise.

*** This bug has been marked as a duplicate of 323820 ***
Comment 14 self 2006-10-26 22:03:11 UTC
I waited for the ubuntu update 6.10 (edgy)... So I'm now using gnome 2.16.1 and the bug still seems to exist :(

How did you confirm that moving accross screens works ? 
Comment 15 Hauke 2006-11-30 15:39:21 UTC
For me, this is partially fixed under Edgy. Now it works for all windows except gnome-terminal. terminal.ds looks like this:

== code ==
(if
    (and
        (is (application_name)         "Terminal")
    )
    (begin
        (geometry "661x712+1713+21")
    )
)
==/code==

gnome-terminal is actually resized as intended and placed on the second (right) screen, but at position +1280+0.