linuxmint / cinnamon

A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.
GNU General Public License v2.0
4.48k stars 730 forks source link

[MultiMonitor] cinnamon menu displacement #4645

Open stefan123t opened 8 years ago

stefan123t commented 8 years ago

Dear Cinnamon team,

thanks a lot for all your efforts in version 2.6.13!

When I open a menu, e.g. in Terminal or JDeveloper, etc. I do get a displaced menu/tooltip as in the screenshot. Sometimes it is also displaced to the left for unknown reasons.

cinnamon_menu_displacement

This could be a minor problem which sometimes goes away by either normalizing/maximizing the window once more or worked around by simply scaling the window in normal mode to fit the screen.

I have learned from other issues that Cinnamon treats the virtual area as a single rectangle, maybe this is related to it as you can see on the screenshot. Layout is primary screen to the right, which is slightly larger (in height) than the secondary screen in my multi-monitor setup.

Kind regards, Stefan

JosephMcc commented 8 years ago

I can't seem to reproduce this on git master. When you get your hands on Cinnamon 3.0 would you please test and see if you can still reproduce the issue.

stefan123t commented 8 years ago

Dear JosephMcc,

thanks for your triage and testing, I am on 2.6.8 with no 3.0 around. $ cinnamon --version Cinnamon 2.8.6

As you can see from the screenshot above (which is a detail cut from a screenshot across both screens), the offset is exactly the below the left panel. I just double checked, if I move the window (Terminal, Text Editor, third-party application) on the right screen below the left panel, the menu is not displaced. Eventually this got introduced with multi panel support. My larger right screen is set as primary display, if this makes any difference.

Anything I can test or debug in 2.8.6 I will happily provide.

Kind regards, Stefan

stefan123t commented 8 years ago

Dear Mint Team,

thanks for the newest incarnation of Linux Mint 18 Cinnamon beta.

I am playing around with it trying to see if one of the issues I logged against cinnamon ([MultiMonitor] cinnamon menu displacement #4645) got fixed in Cinnamon 3.0.5.

There is a note on the github Roadmap page (https://github.com/linuxmint/Roadmap) that it is planned for Cinnamon 3.2 to fix an issue of displaced menus when using the upper panels on larger screens which sounds very much like the issue described above (I am experiencing this for Java based apps, e.g. JDeveloper but also the cinnamon Terminal and other native applications): "When using Cinnamon bar at top, and secondary monitor with higher height than the main display, some apps like KDE Apps (Krita, Kdenlive) or Wine Based Apps (teamviewer) will display menus from toolbar in the wrong place. Being more specific: The menus will be displayed in the position that they should be displayed at main monitor, however in this case the window is maximized in the secondary monitor."

Besides that I got errors when displacing my screens up/down a bit using the display settings dialog. Pressing apply without horizontal displacement, i.e. both screens on the same level works. But moving them up/down and selecting apply will yield the following in .xsession-errors and Cinnamon or Nemo hangs without resort. I.e. I have to killall -HUP cinnamon to get a working Desktop again using ssh from a remote system: Let me know if I should log a separate issue/bug for this Display settings problem I only see in Linux Mint 18 beta.

Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged. Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

(nemo:2593): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

My system:

mint@mint ~ $ inxi -Fxz System: Host: mint Kernel: 4.4.0-21-generic x86_64 (64 bit gcc: 5.3.1) Desktop: Cinnamon 3.0.5 (Gtk 3.18.9-1ubuntu3) Distro: Linux Mint 18 Sarah Machine: System: LENOVO (portable) product: 20AWS1BL04 v: ThinkPad T440p Mobo: LENOVO model: 20AWS1BL04 v: 0B98401 PRO Bios: LENOVO v: GLET70WW (2.24 ) date: 05/21/2014 CPU: Dual core Intel Core i5-4300M (-HT-MCP-) cache: 3072 KB flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 10376 clock speeds: max: 3300 MHz 1: 2600 MHz 2: 2600 MHz 3: 837 MHz 4: 822 MHz Graphics: Card: Intel 4th Gen Core Processor Integrated Graphics Controller bus-ID: 00:02.0 Display Server: X.Org 1.15.1 drivers: intel (unloaded: fbdev,vesa) Resolution: 1600x900@60.00hz GLX Renderer: Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits) GLX Version: 3.0 Mesa 11.2.0 Direct Rendering: Yes Audio: Card-1 Intel 8 Series/C220 Series High Definition Audio Controller driver: snd_hda_intel bus-ID: 00:1b.0 Card-2 Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller driver: snd_hda_intel bus-ID: 00:03.0 Sound: Advanced Linux Sound Architecture v: k4.4.0-21-generic Network: Card-1: Intel Ethernet Connection I217-LM driver: e1000e v: 3.2.6-k port: 3080 bus-ID: 00:19.0 IF: enp0s25 state: up speed: 100 Mbps duplex: full mac: Card-2: Intel Wireless 7260 driver: iwlwifi bus-ID: 03:00.0 IF: wlp3s0 state: down mac: Drives: HDD Total Size: NA (-) ID-1: /dev/sda model: ST500LM021 size: 500.1GB temp: 46C ID-2: /dev/sdb model: Samsung_SSD_850 size: 512.1GB temp: 0C Partition: ID-1: / size: 7.7G used: 281M (4%) fs: overlay dev: N/A RAID: No RAID devices: /proc/mdstat, md_mod kernel module present Sensors: System Temperatures: cpu: 54.0C mobo: N/A Fan Speeds (in rpm): cpu: 0 Info: Processes: 216 Uptime: 2:10 Memory: 852.9/15739.3MB Init: systemd runlevel: 5 Gcc sys: 5.3.1 Client: Shell (bash 4.3.421) inxi: 2.2.35

Many thanks for looking into my problem.

Kind regards, Stefan

PS: The above nemo error is similar to "Critical warning messages on F23 (gtk-3.18). #1155". I am running nemo 3.0.5 on the live CD.

stefan123t commented 8 years ago

@JosephMcc, it looks the original problem is fixed, though I can only confirm this after restarting cinnamon with the displaced settings, as mentioned above.

This is the output of cinnamon during the issue with the displays being displaced horizontally and the display settings dialog hanging indefinitely.

mint@mint ~ $ cinnamon --replace Cjs-Message: JS LOG: About to start Cinnamon St-Message: cogl npot texture sizes SUPPORTED Cjs-Message: JS LOG: Cinnamon started at Sun Jun 12 2016 01:40:11 GMT+0200 (CEST) Cjs-Message: JS LOG: network applet: Cannot find connection for active (or connection cannot be read) openGL version 3.3 detected (GL3 Cogl Driver) MetaSyncRing disabled: couldn't find required GL extensions, or the minimum safe openGL version was not met Cjs-Message: JS LOG: Invalid network device type, is 14 Cjs-Message: JS LOG: network applet: Found connection for active

Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed /usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py:605: Warning: /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gsignal.c:2635: instance '0x28fc560' has no handler with id '653' Gtk.main() /usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py:605: Warning: /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gsignal.c:2635: instance '0x28fc560' has no handler with id '654' Gtk.main() Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed Window manager warning: Log level 8: meta_window_move_resize: assertion '!window->override_redirect' failed /usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py:605: Warning: /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gsignal.c:2635: instance '0x116a560' has no handler with id '653' Gtk.main() /usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py:605: Warning: /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gsignal.c:2635: instance '0x116a560' has no handler with id '654' Gtk.main() Hangup

JosephMcc commented 8 years ago

Thanks for reporting back. Just to be sure I understood correctly. The original issue with the menus is now fixed? But it seems you now have a new issue with the display settings? Well at least it isn't all bad :)

Edit: Just a quick confirmation. You're experiencing this running from the LiveCD and not an actual install?

sycorix commented 7 years ago

Hi Cinnamon team, I have experienced the same issue with Mint 18.1 with a dual monitor setup: arbeitsflache 3_20170313_16 58 11

Now I have found out that the offset is connected to the offset of displays! When I align both displays at the top, the menu offset is gone: arbeitsflache 3_20170313_16 57 28

Hope that helps... Cheers, Steffen

Vahan86 commented 4 years ago

@stefan123t, does this issue still relevant to Cinnamon 4.2?

MartinX3 commented 4 years ago

Sometimes. Like the not opening context menu in the set and screen. But luckily not often.

stefan123t commented 3 years ago

@Vahan86 I must have missed your question, sorry.

My setup is small screen left, large screen right, ie. the origin for calculating x/y is somewhere on the left, smaller screen. In Cinnamon 4.6.7 of it looks good for the normal pull-down menus in most windows, but In fact I have the two monitors aligned on top as a workaround for this issue sic.

Regarding your request for reproducing in 4.2 and later, I have aligned them on the bottom and the problem still reproduces. I.e. if I put the Gnome Terminal 3.36.2 in the upper right corner, i.e. above the maximum extents of the left screen the terminal window pull-downs are affected again.

I just searched for this issue on github again, because I found a new occurence with the IBus 1.5.22 applet in the Systray of my lower panel with a pull-up menu. As I mentioned my workaround is to have the screens aligned on top to prevent the majority of window pull-down menus from being displaced. As this applet is already below the left screens extents, right clicking on the EN / keyboard indicator will open the pull-up menu displaced upwards to the lower limit of my smaller left screen. If I realign the screens on bottom to reproduce the problem with pull-downs, naturally the IBus applets pull-up menu is not affected.

Kind regards, Stefan

PS: I will upgrade to latest Linux Mint 20.1 soon, currently I am still on Linux Mint 20. But I guess this will not be fixed yet.

stefan123t commented 3 years ago

I have double checked now that I am on Linux Mint 20.1 but the issue is still there: linuxmint_20 1_20210331 I made some annotations in the screenshot to make it visible.

It does not occur for native Cinnamon applets like the window list switcher or some of the other systray applets here (namely veracrypt and cisco any connect are currently running) on the lower panel of the right side monitor. But as mentioned the IBus Panel input method indicator showing the current Input method DE will have its left/rigth click menus displaced to the edges of the lower panel on my secondary left screen/display. I do not know what library the IBus applet will use to draw its context menus.

That is only the smaller region between the upper and lower panels on my left screen is bounding the appearance of the left/right click context menus. Even though the right click menu should appear for the applet on the right screen which has a greater space between the upper and lower panels.

If I align the two screens on the bottom instead of the top of the screens, then it will affect all pull-down menus and context menus on the right screen, which are then displaced to the upper panels lower border on the left smaller screen. I did not try to reverse right (bigger) and left (smaller) screen, but I assume it will even displace my menus outside of the smaller screen, because it only refers to the extents between the panels of the left-most screen.

PookaMustard commented 3 years ago

I also have this problem and I'm on Mint 20.2. Didn't take me long to figure out menus are broken due to different monitor sizes. This issue happens with the icons for Synaptic/System Updates, the Nvidia Optimus tray icon, application menus using the native menus, and the context menu in the file explorer.

linas commented 2 years ago

FYI, I (ocassionally, rarely) see this issue on a multi-monitor setup on Debian and Ubuntu, have seen it for 5+ years, even after switching distros. Saw it just a few months ago. It's infrequent, seems to show up only after months of use. Possibly a race condition with video trying to go to sleep just as I wiggle the mouse. The menus are displaced to align with the top edge of the lower monitor.

Other details: Debian stable aka "bullseye", xserver-xorg-core v 2:1.20.11-1 and marco 1.24.1-3 (marco is a "lightweight GTK+ window manager for MATE")

The race condition: very rarely, I start using the mouse/keyboard after a long idle period, at the same time that the screen poweroff logic is kicking in. The screen blanks, stutters, blinks back on, and from then on all menus are always displaced, forever (till next logout/reboot).