Bug 176668 - panel settings appears on different monitor with dual-head
Summary: panel settings appears on different monitor with dual-head
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: multihead (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 158404 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-12-02 03:45 UTC by Gabe Yoder
Modified: 2009-03-19 20:31 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gabe Yoder 2008-12-02 03:45:44 UTC
Version:            (using Devel)
Compiler:          gcc 4.3.2 
OS:                Linux
Installed from:    Compiled sources

Please note, this is for 4.2.0 Beta1 (not SVN, but there is now option in the wizard to select 4.2.0 Beta1).

I have a dual head configuration.  When I initially logged in after upgrading from 4.1.3, I noticed that my panel had moved to the monitor on the right (it was on the left monitor when using 4.1.3).  I was able to move the panel to the left monitor without any trouble, however whenever I select "panel settings" from the context menu or click on the panel's "cashew", the settings pops up on the right monitor (just above where the panel would be if it were on that monitor).  This is rather inconvenient and annoying since I have to move my mouse a lot more, and I have to make sure that after clicking on one of the settings that I move my mouse "down then left" instead of "left then down" in order reach the panel without the settings window disappearing.

According to the display settings, my right monitor is connected to "DVI-0" and the left monitor is connected to "DVI-1" (yeah, it sounds backwards, but the radeon and radeonhd drivers disagree about which output is which, and I never bothered to change it since kdm always pops up on the left monitor anyway).  I'm guessing that the settings window has been somehow hard-coded to appear on the first display, but it would be much more convenient if it always appeared on the same display as the panel.
Comment 1 Sebastian Sauer 2008-12-08 22:32:02 UTC
confirmed with trunk compiled some minutes ago (upcoming 4.2 beta2)
Comment 2 Sebastian Sauer 2008-12-08 23:59:04 UTC
On my system;
left screen: 1280x1024
right screen: 1024x768

If I right-click on my right screen and choose "Add Panel" following is printed to stdout. Result is, taht the panel is displayed at the right screen on top-horizontal but the same panel-height is also (as the panel continues there while being invisible) used at the left screen.

###############################################################
# DefaultDesktop::addPanel()
#     Containment* panel = corona()->addContainment("panel");
###############################################################
 
plasma(24633)/libplasma Plasma::ContainmentPrivate::positionPanel: positioning non- horizontal panel; forced? false                                                                                                     
plasma(24633)/libplasma Plasma::ContainmentPrivate::positionPanel: moved to QPointF(11286, -41)             
plasma(24633)/libplasma Plasma::Applet::save: saving to "21"                                                
plasma(24633)/libplasma Plasma::ContainmentPrivate::containmentConstraintsEvent: got containmentConstraintsEvent 40 Plasma::PanelToolBox(0x8719618)                                                                     
plasma(24633)/libplasma Plasma::ContainmentPrivate::positionPanel: positioning non- horizontal panel; forced? false                                                                                                     
plasma(24633)/libplasma Plasma::ContainmentPrivate::positionPanel: moved to QPointF(11286, -41)             
plasma(24633) Panel::constraintsEvent: constraints updated with 40 !!!!!!                                   
plasma(24633) PlasmaApp::createView: Containment name: "Panel" | type 1 | screen: -1 | desktop: -1 | geometry: QRectF(11286,-41 1280x35) | zValue: 150                                                                  
plasma(24633)/libplasma Plasma::ViewPrivate::updateSceneRect: !!!!!!!!!!!!!!!!! setting the scene rect to QRectF(11286,-41 1280x35) associated screen is -1                                                             
plasma(24633) PanelView::pinchContainment: **************************** pinching QRect(0,0 1280x1024) 1024  
plasma(24633) PanelView::updatePanelGeometry: New panel geometry is QRectF(11286,-41 1280x35)               
plasma(24633) PanelView::updatePanelGeometry: PanelView(0x84f6de8) thinks its panel is at  QRect(0,989 1280x35) was QRect(0,0 1152x409)                                                                                 
plasma(24633) PanelView::pinchContainment: Done pinching, containement's geom QRectF(11286,-41 1280x35) own geom QRect(0,989 1280x35)                                                                                   
plasma(24633) PanelView::PanelView: Panel geometry is QRectF(11286,-41 1280x35)                             
plasma(24633) PanelView::updateStruts: screen l/r/b/t offsets are: 0 1024 0 0 0                             
plasma(24633) PanelView::updateStruts: screen l/r/b/t offsets are: 0 1024 0 0 0                             
plasma(24633) PanelView::resizeEvent: QSize(-1, -1) QSize(1280, 35)                                         
plasma(24633) PanelView::updateStruts: screen l/r/b/t offsets are: 0 1024 0 0 0

###############################################################
# DefaultDesktop::addPanel()
#     panel->setScreen(screen());
#     panel->setLocation(Plasma::TopEdge);
#     panel->updateConstraints(Plasma::StartupCompletedConstraint);
#     panel->flushPendingConstraintsEvents();
###############################################################


plasma(24633)/libplasma Plasma::ContainmentPrivate::containmentConstraintsEvent: got containmentConstraintsEvent 38 Plasma::PanelToolBox(0x8719618)
plasma(24633) Panel::constraintsEvent: constraints updated with 38 !!!!!!
plasma(24633)/libplasma Plasma::ContainmentPrivate::positionPanel: positioning  horizontal panel; forced? true
plasma(24633)/libplasma Plasma::ContainmentPrivate::positionPanel: moved to QPointF(0, -117)
plasma(24633)/libplasma Plasma::ViewPrivate::updateSceneRect: !!!!!!!!!!!!!!!!! setting the scene rect to QRectF(0,-117 1280x35) associated screen is 1
plasma(24633) PanelView::updatePanelGeometry: New panel geometry is QRectF(0,-117 1280x35)
plasma(24633) PanelView::updatePanelGeometry: PanelView(0x84f6de8) thinks its panel is at  QRect(1279,0 1024x35) was QRect(0,989 1280x35)
plasma(24633) PanelView::updateStruts: screen l/r/b/t offsets are: -1280 0 256 0 3
plasma(24633) PanelView::resizeEvent: QSize(1280, 35) QSize(1024, 35)
plasma(24633) PanelView::updateStruts: screen l/r/b/t offsets are: -1280 0 256 0 3
plasma(24633)/libplasma Plasma::ViewPrivate::updateSceneRect: !!!!!!!!!!!!!!!!! setting the scene rect to QRectF(0,-117 1280x35) associated screen is 1
plasma(24633) PanelView::updatePanelGeometry: New panel geometry is QRectF(0,-117 1280x35)
plasma(24633) PanelView::updatePanelGeometry: PanelView(0x84f6de8) thinks its panel is at  QRect(1279,0 1024x35) was QRect(1279,0 1024x35)
plasma(24633) PanelView::updateStruts: screen l/r/b/t offsets are: -1280 0 256 0 3
plasma(24633)/libplasma Plasma::ContainmentPrivate::containmentConstraintsEvent: got containmentConstraintsEvent 1 Plasma::PanelToolBox(0x8719618)
plasma(24633) Panel::constraintsEvent: constraints updated with 1 !!!!!!
plasma(24633) Panel::constraintsEvent: constraints updated with 2 !!!!!!
Comment 3 Sebastian Sauer 2008-12-09 00:06:51 UTC
looks as we first add it to screen -1 (becomes 0) to the left screen (using the corona()->addContainment("panel")) and then move it to the right screen (to bad corona()->addContainmentDelayed() is protected rather then public what would allow us to do that in one go).

looks as the move is successful but;
1. somehow the width isn't correct/updated cause it's still to much and
2. seems the left screen still does reserve space.
Both can be fixed by choosing "panel settings=>align center" and then the change seems to apply correct :)
Comment 4 Sebastian Sauer 2008-12-09 00:11:53 UTC
the above "trick" with "panel settings=>align center" does btw also fix the original case described in this bugreport. So, it's the same issue but the way I described above is just easier to reproduce for me. More tomorrow cause it's time to drive home and catch sleep. Good night, good fight :)
Comment 5 Sebastian Sauer 2008-12-09 21:42:21 UTC
*** Bug 158404 has been marked as a duplicate of this bug. ***
Comment 6 Marco Martin 2008-12-16 15:09:51 UTC
the "align center" trick should no more be necessary by commit 897648
i can't reproduce the creation on different screen  (but here is on twinview) the two things are quite separate issues btw
Comment 7 Andreas Pakulat 2009-01-04 14:05:06 UTC
Just adding my "I'm seeing it also" for the stuff reported in 158404 and 158405, i.e. the panel on top hides the cashew for the desktop.
Comment 8 Roman 2009-03-10 15:31:04 UTC
When I use dual head, windows in maximize mode, just after running the program, on the second display, where no task bar of whichever panel is, are opened as if it was there. If I click on maximize then - everything works correctly. The window takes the whole screen.
Comment 9 Aaron J. Seigo 2009-03-19 20:31:41 UTC
i count a few different issues here, with the original one apparently fixed. the other issues are either already reported or belong (in the ase of #8) to kwin.