Bug 172551

Summary: KDE4: kdeglobals/macStyle=true => No menubar visible, no GUI avaible to show it again
Product: [Frameworks and Libraries] kdelibs Reporter: Emmeran Seehuber <rototor>
Component: kdeuiAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: aseigo, uwolfer
Priority: NOR    
Version: 4.1   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Bug Depends on: 153027    
Bug Blocks:    

Description Emmeran Seehuber 2008-10-10 22:51:11 UTC
Version:            (using KDE 4.1.2)
OS:                Linux
Installed from:    Ubuntu Packages

After I upgrade my KDE3 to KDE4, including my configuration, I could no longer see any menu bar in KDE4 applications.

To be more specific => I upgraded my Ubuntu from 8.04 to 8.10. There is no longer a KDE3, so the KDE to use is KDE 4.1. KDE4.1 no uses my KDE3 configuration, which had MacOS Style Menubars turned on.

KDE4 currently does not support MacOS Style Menubars (See also Bug 153027), BUT it honers the .kde/share/config/kdeglobals macStyle setting (which you can find under Section [KDE]), i.e. it *hides* the menubar in the application window.

Steps to reproduce:
Edit your .kde/share/config/kdeglobals file and put macStyle=true in the [KDE] section. Now start a new application (i.e. kate from konsole). It wont show a menubar, and you can not show it using the button you can put on the toolbar.

You get the same behavour (i.e. setting) if you upgraded your KDE3 Desktop, which had MacOS Menus on, to KDE4. This might happen to many Kubuntu Users soon ...

Workaround: 
Edit kdeglobals and set macStyle=false. All KDE4 applications started now will show a menubar again.

There is no longer a kcontrol module available to change this setting.

Suggested Fix:
Dont honor macStyle as long there is no plasomid to show the Mac menubar (See Bug 153027). Even if there is support in future for a macos menubar plasmoid, KDE4 applications should *always* fall back to "in window" mneu if the plasmoid is not loaded. Otherwise users might get confused
Comment 1 Urs Wolfer 2008-10-11 14:22:31 UTC
Do you think it would be a good idea just ignoring this setting until that style of menu bars is available in KDE 4 again?
Comment 2 Emmeran Seehuber 2008-10-11 22:06:34 UTC
Yes, that would be good, as it may bite other users migrating from KDE3 too. I think a fix for this could be simply changing 

http://websvn.kde.org/trunk/KDE/kdelibs/kdeui/widgets/kmenubar.cpp?revision=848799&view=markup

this:

void KMenuBar::slotReadConfig()
{
  KConfigGroup cg( KGlobal::config(), "KDE" );
  setTopLevelMenuInternal( cg.readEntry( "macStyle", false ) );
}

to this:


void KMenuBar::slotReadConfig()
{
  KConfigGroup cg( KGlobal::config(), "KDE" );
  setTopLevelMenuInternal( false ); // TODO Bug 153027
}

Could work, but since I dont have a build env for KDE4 I cant test it. Such a fix might be interesting for the KDE4.1 branch and the distros shipping it.

Comment 3 Aaron J. Seigo 2008-10-11 22:49:21 UTC
i already fixed this issue by ignoring the setting in kwin.

i don't like changing it in KMenuBar as that means:

* having to remember to fix it in the libs after we put this feature back in the apps in kdebase/workspace/.

* kde4 apps would no longer work properly with this setting in a kde3 session

it no longer removes the menubar in current trunk/ when the setting is on, so the bug is fixed...