[regression] no core keybindings work any more

Bug #930412 reported by Martin-haesler on 2012-02-10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Compiz Core
Daniel van Vugt
compiz (Ubuntu)
Daniel van Vugt

Bug Description

since today's updates to closing a window with alt+F4 stopped working for most apps.

I tried Firefox, terminal, nautilus, gwibber. With all of these apps, pressing alt+f4 only reveals the global-menu-bar with each shortcut underlined.

With Google Chrome however, pressing alt also reveals the global-menu bar, although the entries are not underlined and alt+f4 closes the window.

Related branches

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Correct handling of the <Alt> key is still a work in progress in bug 925293. When that's done we will be able to fix Unity to use the new smarter key-tapping detection I'm adding to Compiz.

Changed in compiz-core:
status: New → In Progress
assignee: nobody → Daniel van Vugt (vanvugt)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Ignore my previous comment. This bug appears to be unrelated to Unity's <Alt> handling because I can reproduce the problem running just compiz without unity.

no longer affects: unity
Changed in compiz-core:
status: In Progress → Triaged
assignee: Daniel van Vugt (vanvugt) → nobody
milestone: none →
summary: - alt+F4 stopped closing most windows
+ [regression] Alt+F4 stopped closing most windows
Changed in compiz-core:
importance: Undecided → Medium
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: [regression] Alt+F4 stopped closing most windows

This bug is also unrelated to the other work I have in progress, but this one should be fixed first.

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: [regression] no core keybindings work

Tracked the problem down. It appears to have regressed in the recent CompScreen class cleanup.

The problem is that CompAction::KeyBinding::fromString fails for CoreOptions, because CoreOptions is being constructed before ::screen is initialized (it only needs the dpy member of ::screen).

This is a tricky problem because CoreOptions is now always constructed before PrivateScreen::init. However a fix for the bug requires that at least the dpy initialization of PrivateScreen::init needs to happen BEFORE CoreOptions construction.

Fundamentally, I think the bigger design issue is that *Options is doing way too much initialization in its constructor(s). This bug could also be fixed by separating CoreOptions construction from initialization, and ensure the initialization happens after PrivateScreen::init.

Changed in compiz-core:
importance: Medium → High
summary: - [regression] Alt+F4 stopped closing most windows
+ [regression] no core keybindings work
summary: - [regression] no core keybindings work
+ [regression] no core keybindings work any more
Changed in compiz-core:
assignee: nobody → Daniel van Vugt (vanvugt)
status: Triaged → In Progress
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I take it back. This bug has been around for quite a while as demonstrated by the existence of PrivateScreen::addScreenActions, which was an early attempt to avoid this problem. What I can't explain is how the core key bindings ever worked at all. This looks like an old bug...

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Merged into lp:compiz-core at revision 2997

Changed in compiz-core:
status: In Progress → Fix Committed
Changed in compiz-core:
status: Fix Committed → Fix Released
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This bug was fixed in the package compiz - 1:

compiz (1: precise; urgency=low

  [ Łukasz 'sil2100' Zemczak ]
  * New upstream snapshot:
    - Fix gtk-window-decorator crash upon demaximizing a window (LP: #930071)
    - Fix core keybindings (LP: #930412)
    - Fixes compiz crash with SIGSEGV on shutdown (LP: #931283)
    - Plugins can't tell the difference between a key-tap and modifier
      key-release (LP: #925293)
    - compiz-core r3001 (and 3002) ftbfs (LP: #933226)
    - Semi-maximized windows have no shadow or frame (LP: #924736)
    - Untranslated strings in gtk-window-decorator (LP: #780505)
    - Initialize the _NET_WM_STATE_FOCUSED (LP: #932087)
    - [regression] Customized shortcuts don't work (LP: #931927)
    - Window stacking problem (LP: #936675)
    - Quickly demaximized windows can receive maximized window decorations if
      they were initially maximized (LP: #936778)
    - Maximized windows do not get shadows at all (LP: #936774)
    - [regression] Launcher, top panel and keyboard un-responsive after using
      any Super-x shortcut (LP: #934058)
    - No draggable border if mutter isn't installed (LP: #936781)
    - Fix compiz crash with SIGSEGV in XDefineCursor() (LP: #936487)
    - Fixes memory leak at DecorWindow::updateSwitcher() (LP: #940115)
    - Unresolved symbols in plugins cause compiz to exit (LP: #938478)
    - Fix compiz spending about 51% of its CPU time in CompRegion
      construction/destruction (LP: #940139)
    - Fix Conditional jump or move depends on uninitialised value(s) in
      decor_match_pixmap (LP: #940066)
    - Fix 'show desktop' behaviour (LP: #871801)
    - Tweak algorithm used to cast shadows on maximized windows (LP: #936784)
    - "Svg" and "Png" should be "SVG and "PNG" (LP: #942890)
    - Fix invalid memory usage after free() in DecorWindow (LP: #943116)
    - Fix alt + F10 (LP: #943223)
  * Removed cherry-picked patches
  * debian/patches/fix_944631.patch:
    - Always replay the keyboard if something was grabbed and didn't trigger
      an action and don't trigger actions which aren't added accidentally
      (LP: #943612) (LP: #944631)
  * debian/patches/fix_923683.patch:
    - Backports a patch which prevents the shift race condition

  [ Didier Roche ]
  * debian/patches/fix_alt_pressing.patch:
    - Patch from ddv to fix all the regressions with the alt key fix and other
      (LP: #943851, #945373)
    - Fix Quicklist are not showing if right-clicking a launcher icon in Expo
      mode if triggered by Super + S (LP: #944979)
  * debian/patches/fix_806255.patch:
    - Unity/compiz intercepts keystrokes from grabbed windows (LP: #806255)
  * debian/patches/fix_943194.patch:
    - second part for the alt key fix (LP: #943194)
  * debian/patches/additional_alt_tapping_fix.patch:
    - again another alt tapping related fix for some regressions from the
      previous branch. Taken from "tapping-panacea" upstream branch.
 -- Didier Roche <email address hidden> Mon, 12 Mar 2012 10:22:10 +0100

Changed in compiz (Ubuntu):
status: New → Fix Released
assignee: nobody → Daniel van Vugt (vanvugt)
Revision history for this message
Jelle Foks (jellefoks) wrote :

Note: After that change I my alt-tab didn't do anything. I had to go to ccsm and change the 'Key to start the switcher' and change it back.

And the same for my custom "Go to specific viewport" shortcuts in the "Viewport Switcher" in ccsm.

And the same for the <Super>Tab shortcut I chose for the 'Next Window' of the 'Shift Switcher'.

And quite a bunch of other custom keyboard shortcuts. Mouse shortcuts don't seem to be affected.

Revision history for this message
Jelle Foks (jellefoks) wrote :

Hmm, and one unity crash later they dont work again anymore...

Revision history for this message
Jelle Foks (jellefoks) wrote :

After creating a new account and entering my personalized shortcuts again, it seems to only have problems when I remap the 'Key to show the HUD' in the Ubuntu Unity Plugin in ccsm. At the moment, it seems to be working when I keep that setting at the default.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Jelle, you are describing bug 945816.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers