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 693540 - screen: Don't try to move / resize OR windows on montior change
screen: Don't try to move / resize OR windows on montior change
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2013-02-10 19:18 UTC by drago01
Modified: 2013-02-10 19:43 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
screen: Don't try to move / resize OR windows on montior change (1.58 KB, patch)
2013-02-10 19:18 UTC, drago01
none Details | Review
screen: Don't try to move / resize OR windows on montior change (1.56 KB, patch)
2013-02-10 19:25 UTC, drago01
committed Details | Review

Description drago01 2013-02-10 19:18:43 UTC
See patch.
Comment 1 drago01 2013-02-10 19:18:47 UTC
Created attachment 235636 [details] [review]
screen: Don't try to move / resize OR windows on montior change

meta_screen_resize calls meta_window_update_for_monitors_changed for all
windows including OR windows when the monitors change (or screen size).

This calls meta_window_move_between_rects for the window which attempts to
move the OR window by calling meta_window_move_resize.

meta_window_move_resize refuses to do anything on OR windows (just returns
for OR windows).

This causes a storm of assert messages and endless flickering when the screen
resultion changes while an OR window is visible
(like the one gnome-control-center displays with the monitor name).

Fix that by not calling meta_window_update_for_monitors_changed for OR windows
and let the applications handle them by themselves.
Comment 2 drago01 2013-02-10 19:25:46 UTC
Created attachment 235639 [details] [review]
screen: Don't try to move / resize OR windows on montior change

meta_screen_resize calls meta_window_update_for_monitors_changed for all
windows including OR windows when the monitors change (or screen size).

This calls meta_window_move_between_rects for the window which attempts to
move the OR window by calling meta_window_move_resize.

meta_window_move_resize refuses to do anything on OR windows (just returns
for OR windows).

This causes a storm of assert messages when the screen
resolution changes while an OR window is visible.
(like the one gnome-control-center displays with the monitor name).

Fix that by not calling meta_window_update_for_monitors_changed for OR windows
and let the applications handle them by themselves.


---

OK this seems not to cause the flickering (wouldn't make sense anyway) but atleast fixes the:

Log level 8: meta_window_move_resize: assertion `!window->override_redirect' failed 

messages.

The flickering (which I only could reproduce in a VM so far) seems to be caused by tons of monitor-changed signals.
Comment 3 Owen Taylor 2013-02-10 19:40:14 UTC
Review of attachment 235639 [details] [review]:

Not sure why this was there - maybe alexl just cut and paste? But potentially he was trying to get O-R windows not to end up offscreen. It could be confusing if a GTK+ menu was up you plugged in a monitor on the left, and the menu was still up but not visible. Often O-R windows are "attached" to a toplevel window that would get moved - tooltips too. In any case I don't think it's worth reworking things to make the general MetaWindow infrastructure not yell about moving O-R windows - and it's not really ICCCM compliant to move them anyways. So let's go with this.
Comment 4 drago01 2013-02-10 19:43:39 UTC
Attachment 235639 [details] pushed as 2942b22 - screen: Don't try to move / resize OR windows on montior change