Applications don't always show up when unminimizing

Bug #620758 reported by Hernando Torque
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mutter
Expired
Medium
Unity
Fix Released
Critical
Jason Smith
mutter (Ubuntu)
Fix Released
Undecided
Unassigned
unity (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: unity

Whenever the window buttons change between application and top panel, the first try to unminimize a minimized application via the launcher will fail (but the global menu gets updated correctly).

To reproduce:

1.) Start a gnome-terminal from the launcher (not maximized).
2.) Click on its minimize button, then on the launcher -> gnome-terminal gets restored like expected
3.) Maximize the window to bring the window buttons to the top panel.
4.) Now minimize gnome-terminal, then click on the launcher -> the global menu will update but gnome-terminal won't show (plus, the desktop is blocked).
5.) Click on the launcher again -> the app expose mode gets initiated.
6.) Click on the gnome-terminal to focus it and repeat 4. -> this time gnome-terminal gets restored to its maximized state like expected (subsequent tries succeed as well).
7.) Unmaximize gnome-terminal to bring the window buttons back to the application.
9.) Repeat 2. -> the global menu will update but gnome-terminal won't show (plus, the desktop is blocked where the window is supposed to be).
10.) Clicking the launcher a second time again will start the app expose mode, selecting the gnome-terminal will show it in its unmaximized state and repeating the process will succeed.

unity: 0.2.28-0ubuntu1
mutter:2.31.5-0ubuntu3.1
clutter 1.2.12-0ubuntu5

Tags: patch
Revision history for this message
Neil J. Patel (njpatel) wrote :

I see this a lot too. I need to unminimise all the windows (Ctrl+Alt+D) and then click on the window I want for it to show. jason, please see if we can guard against this behaviour.

Changed in unity:
assignee: nobody → Jason Smith (jassmith)
importance: Undecided → Critical
milestone: none → 2010-08-26
status: New → Triaged
Revision history for this message
Jason Smith (jassmith) wrote :

Interestingly, this is the result of the terminal being stuck in a "minimized" state of the animation. Running docky and unity at the same time will help make this clearer. Will try to add a guard.

Revision history for this message
Jason Smith (jassmith) wrote :

Somehow a window being undecorated results in mutter not properly signaling it

Revision history for this message
Jason Smith (jassmith) wrote :

Further inspection reveals the following is happening:

Unity redecorates window (at some point, does not matter)
Mutter marks the window as "redecorating" in mutter-window.c
Mutter never unmarks the window as "redecorated", thus causing effects to never be triggered on events
No event trigger results in no window mapping

The attached patch fixes the issue

Jason Smith (jassmith)
Changed in unity:
status: Triaged → Invalid
affects: unity (Ubuntu) → mutter (Ubuntu)
Changed in mutter (Ubuntu):
status: New → In Progress
tags: added: patch
Revision history for this message
Robert Ancell (robert-ancell) wrote :

Pushed to lp:~ubuntu-desktop/ubuntu/mutter. Someone needs to test it as I had to take some upstream git changes to fix a FTBFS. It crashes for me but that is standard with my drivers...

Changed in mutter:
status: Unknown → New
Revision history for this message
Hernando Torque (htorque) wrote :

Hm...

> $ patch -p1 --dry-run < debian/patches/92_handle_event_mask_when_managing_window.patch
> patching file src/core/window.c
> patch unexpectedly ends in middle of line

Added a newline at the end and it worked until:

> ui/frames.c: In function 'gdk_window_get_background_pattern':
> ui/frames.c:2028: error: implicit declaration of function '_gdk_drawable_ref_cairo_surface'
> ui/frames.c:2028: error: nested extern declaration of '_gdk_drawable_ref_cairo_surface'
> ui/frames.c:2028: error: assignment makes pointer from integer without a cast
> ui/frames.c: At top level:
> ui/frames.c:2045: error: expected identifier or '(' before 'return'
> ui/frames.c:2046: error: expected identifier or '(' before '}' token

What am I missing?

Revision history for this message
Hernando Torque (htorque) wrote :

Ok, 'apt-get build-dep' didn't take care of libgtk2.0-dev but I'm now facing the next problem:

> /usr/share/gir-1.0/Pango-1.0.gir: Incompatible version 1.0 (supported: 1.1)

Last time I've rebuilt mutter it was a piece of cake. :-/

David Barth (dbarth)
Changed in unity:
milestone: 2010-08-26 → 2010-09-02
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mutter - 2.31.5-0ubuntu5

---------------
mutter (2.31.5-0ubuntu5) maverick; urgency=low

  [ Robert Ancell ]
  * debian/patches/00_git_cairo_api.patch:
  * debian/patches/00_git_get_back_pixmap.patch:
    - Take upstream git changes to fix FTBFS
  * debian/patches/18_unmimize.patch:
    - Fix unminimized windows not being mapped (LP: #620758)

  [ Didier Roche ]
  * debian/patches/95_workaround_gdk_compat.patch:
    - port 2.31.5-0ubuntu3.1 inline patch to quilt for vcs handling
 -- Didier Roche <email address hidden> Thu, 02 Sep 2010 18:10:44 +0200

Changed in mutter (Ubuntu):
status: In Progress → Fix Released
Changed in mutter (Ubuntu):
status: Fix Released → Triaged
Changed in unity:
status: Invalid → Triaged
milestone: 2010-09-02 → 2010-09-16
Revision history for this message
Neil J. Patel (njpatel) wrote :

We dropped this patch wrongly, it was reverted earlier today.

Changed in unity:
status: Triaged → Fix Released
Changed in mutter (Ubuntu):
status: Triaged → Fix Released
Changed in mutter:
importance: Unknown → Medium
Changed in unity (Ubuntu):
status: New → Fix Released
Changed in mutter:
status: New → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.