On Tue, Mar 15, 2011 at 10:53 AM, Dylan McCall <[email protected]> wrote: > I posted some other rationale for this in bug #717496, which I have now > marked as a duplicate. > > A big problem with the current behaviour is going to be GIMP. We want > people to maximize things like GIMP. That is where Unity really shines. > However, because GIMP is a multi-window application, the panel can > easily end up with the window controls (and the menu, for that matter) > of one of its tool windows. It is all downhill from there. Unity's art > assets also play a role here, because the panel looks like a title bar. > > I'm still finding my way around Unity (and Compiz, for that matter), but I > have a mostly broken (but kind of working) implementation of our fix. I will > keep poking at it, but hopefully as it is people can get an idea how this > should feel. > That branch is linked to this bug report, > lp:~dylanmccall/unity/panel-drag-frontmost-maximized > > So, right now my branch adds Activate, Raise and IsWindowVisible to > WindowManager and PluginAdapter. > In PanelMenuView, it keeps track of all the maximized windows in a set. > (There are a bunch of one-line changes to implement that). > PanelMenuView's OnMaximizedGrab function will run whether the _is_maximized > property is true or not. > OnMaximizedGrab now grabs the first visible window of the set of maximized > windows. It Activates that window and runs StartMove as usual. Note that this > also enables tapping (what looks like) the title bar to bring that window > into focus. > > Running the above GIMP example, it did what I wanted and I felt happy, > though that could have just been residual happiness from my build > actually working :) > > I know this is pretty broken because Compiz's CompWindow->invisible () > method doesn't do what I think it does, so right now my code just grabs > the first maximized window it sees, even if it's on a different > workspace or behind the front-most one. I'm hoping for something simple > that does what I do want (window->z_index(), please?), because doing an > elaborate series of checks from here just feels wrong.
::invisible () checks if the window is not mapped as isViewable or is offscreen. To get the actual stacking order use screen->windows () > > The other thing to note is I haven't implemented window buttons or this > same functionality for other mouse buttons. Window buttons will want a > bit of refactoring, I think, because we would show them whenever > _something_ is maximized. Contemplating killing the _is_maximized thing > altogether since it is no longer so simple. I have a hunch that anyone > doing multi-monitor support is thinking the same thing. > > We might not even want the window buttons for this case, though. There > is some design to be done! > > > ** Branch linked: lp:~dylanmccall/unity/panel-drag-frontmost-maximized > > -- > You received this bug notification because you are a member of Unity > Bugs, which is subscribed to unity in ubuntu. > https://bugs.launchpad.net/bugs/716177 > > Title: > The Unity Panel's window controls and window dragging features should > work for the uppermost maximized window regardless of current window > in focus. > > Status in Ayatana Design: > New > Status in Unity: > Confirmed > Status in “unity” package in Ubuntu: > Confirmed > > Bug description: > I love that the Unity Panel allows you to drag and unmaximize a > maximized program as if it were really the titlebar, but when > selecting another, unmaximized window, you can no longer do this > because the panel is 'connected' to the current window in focus. > > While I agree that the Global menu applet should change to whatever > window is currently in focus, it is much more efficient for the window > controls and panel-titlebar dragging to be connected to the uppermost > maximized window. > > Eg, I maximize Firefox and then open an Empathy chat window. I drag > the chat window to the side of the screen, letting the Grid plugin > half-resize it. I then move the cursor to click and drag the Firefox > window to the other side of the screen, but I cannot do this because > the panel is now connected to Empathy and not Firefox. > > Is there a way to make only the window title and global menu shift to > the current window in focus and keep the window controls and panel > 'grab-ability' working for the uppermost maximized window? > -- Sam Spilsbury -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/716177 Title: The Unity Panel's window controls and window dragging features should work for the uppermost maximized window regardless of current window in focus. -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
