c741ed2
diff -ru framework/inc/helper/titlebarupdate.hxx framework/inc/helper/titlebarupdate.hxx
c741ed2
--- framework/inc/helper/titlebarupdate.hxx	2010-10-14 21:54:22.000000000 +0100
c741ed2
+++ framework/inc/helper/titlebarupdate.hxx	2010-10-22 12:52:13.000000000 +0100
c741ed2
@@ -212,6 +212,7 @@
c741ed2
          */
c741ed2
         void impl_updateTitle(const css::uno::Reference< css::frame::XFrame >& xFrame);
c741ed2
 
c741ed2
+        void impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame);
c741ed2
 }; // class TitleBarUpdate
c741ed2
 
c741ed2
 } // namespace framework
c741ed2
diff -ru framework/source/helper/titlebarupdate.cxx framework/source/helper/titlebarupdate.cxx
c741ed2
--- framework/source/helper/titlebarupdate.cxx	2010-10-14 21:54:22.000000000 +0100
c741ed2
+++ framework/source/helper/titlebarupdate.cxx	2010-10-22 15:00:16.000000000 +0100
c741ed2
@@ -199,6 +201,88 @@
c741ed2
     // nothing todo here - because we hold the frame as weak reference only
c741ed2
 }
c741ed2
 
c741ed2
+//http://live.gnome.org/GnomeShell/ApplicationBased
c741ed2
+void TitleBarUpdate::impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame)
c741ed2
+{
c741ed2
+    css::uno::Reference< css::awt::XWindow > xWindow = xFrame->getContainerWindow ();
c741ed2
+    if ( ! xWindow.is() )
c741ed2
+        return;
c741ed2
+
c741ed2
+    ::rtl::OUString sWM_CLASS;
c741ed2
+    try
c741ed2
+    {
c741ed2
+        ::rtl::OUString aProductName;
c741ed2
+        ::utl::ConfigManager::GetDirectConfigProperty(::utl::ConfigManager::PRODUCTNAME) >>= aProductName;
c741ed2
+
c741ed2
+        // SYNCHRONIZED ->
c741ed2
+        ReadGuard aReadLock(m_aLock);
c741ed2
+        css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
c741ed2
+        aReadLock.unlock();
c741ed2
+        // <- SYNCHRONIZED
c741ed2
+
c741ed2
+        css::uno::Reference< css::frame::XModuleManager > xModuleManager(
c741ed2
+            xSMGR->createInstance(SERVICENAME_MODULEMANAGER),
c741ed2
+            css::uno::UNO_QUERY_THROW);
c741ed2
+
c741ed2
+        css::uno::Reference< css::container::XNameAccess > xConfig(
c741ed2
+            xModuleManager,
c741ed2
+            css::uno::UNO_QUERY_THROW);
c741ed2
+
c741ed2
+        rtl::OUString aModuleId = xModuleManager->identify(xFrame);
c741ed2
+        rtl::OUString sDesktopName;
c741ed2
+
c741ed2
+        if ( aModuleId.equalsAscii( "com.sun.star.text.TextDocument" ) ||
c741ed2
+             aModuleId.equalsAscii( "com.sun.star.text.GlobalDocument" ) ||
c741ed2
+             aModuleId.equalsAscii( "com.sun.star.text.WebDocument" ) ||
c741ed2
+             aModuleId.equalsAscii( "com.sun.star.xforms.XMLFormDocument" ) )
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("writer");
c741ed2
+        else if ( aModuleId.equalsAscii( "com.sun.star.sheet.SpreadsheetDocument" ) )
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("calc");
c741ed2
+        else if ( aModuleId.equalsAscii( "com.sun.star.presentation.PresentationDocument" ) )
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("impress");
c741ed2
+        else if ( aModuleId.equalsAscii( "com.sun.star.drawing.DrawingDocument" ) )
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("draw");
c741ed2
+        else if ( aModuleId.equalsAscii( "com.sun.star.formula.FormulaProperties" ) )
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("math");
c741ed2
+        else if ( aModuleId.equalsAscii( "com.sun.star.sdb.DatabaseDocument" ) ||
c741ed2
+                  aModuleId.equalsAscii( "com.sun.star.sdb.OfficeDatabaseDocument" ) ||
c741ed2
+                  aModuleId.equalsAscii( "com.sun.star.sdb.RelationDesign" ) ||
c741ed2
+                  aModuleId.equalsAscii( "com.sun.star.sdb.QueryDesign" ) ||
c741ed2
+                  aModuleId.equalsAscii( "com.sun.star.sdb.TableDesign" ) ||
c741ed2
+                  aModuleId.equalsAscii( "com.sun.star.sdb.DataSourceBrowser" ) )
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("base");
c741ed2
+        else if ( aModuleId.equalsAscii( "com.sun.star.frame.StartModule" ) )
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("startcenter");
c741ed2
+        else
c741ed2
+            sDesktopName = ::rtl::OUString::createFromAscii("startcenter");
c741ed2
+        sWM_CLASS = aProductName.toAsciiLowerCase();
c741ed2
+        sWM_CLASS += ::rtl::OUString(sal_Unicode('-'));
c741ed2
+        sWM_CLASS += sDesktopName;
c741ed2
+    }
c741ed2
+    catch(const css::uno::Exception&)
c741ed2
+    {
c741ed2
+    }
c741ed2
+
c741ed2
+    // VCL SYNCHRONIZED ->
c741ed2
+    ::vos::OClearableGuard aSolarLock( Application::GetSolarMutex() );
c741ed2
+
c741ed2
+    Window* pWindow = (VCLUnoHelper::GetWindow( xWindow ));
c741ed2
+    if (
c741ed2
+        ( pWindow                                 ) &&
c741ed2
+        ( pWindow->GetType() == WINDOW_WORKWINDOW )
c741ed2
+       )
c741ed2
+    {
c741ed2
+        WorkWindow* pWorkWindow = (WorkWindow*)pWindow;
c741ed2
+#ifdef COPY_TO_TITLE_FOR_DEBUG
c741ed2
+        pWorkWindow->SetText( sWM_CLASS );
c741ed2
+#endif
c741ed2
+        pWorkWindow->SetWMClass( sWM_CLASS );
c741ed2
+    }
c741ed2
+
c741ed2
+    aSolarLock.clear();
c741ed2
+}
c741ed2
+
c741ed2
+
c741ed2
 //*****************************************************************************************************************
c741ed2
 ::sal_Bool TitleBarUpdate::implst_getModuleInfo(const css::uno::Reference< css::frame::XFrame >& xFrame,
c741ed2
                                                       TModuleInfo&                               rInfo )
c741ed2
@@ -260,6 +347,9 @@
c741ed2
 
c741ed2
     impl_updateIcon  (xFrame);
c741ed2
     impl_updateTitle (xFrame);
c741ed2
+#if defined(UNX) && !defined(MACOSX)
c741ed2
+    impl_updateWM_CLASSS (xFrame);
c741ed2
+#endif
c741ed2
 }
c741ed2
 
c741ed2
 //*****************************************************************************************************************
c741ed2
diff -ru vcl/aqua/inc/salframe.h vcl/aqua/inc/salframe.h
c741ed2
--- vcl/aqua/inc/salframe.h	2010-10-14 21:43:20.000000000 +0100
c741ed2
+++ vcl/aqua/inc/salframe.h	2010-10-22 13:26:26.000000000 +0100
c741ed2
@@ -159,6 +159,7 @@
c741ed2
     virtual void                SetExtendedFrameStyle( SalExtStyle );
c741ed2
     virtual void                SetBackgroundBitmap( SalBitmap* );
c741ed2
     virtual void                SetScreenNumber(unsigned int);
c741ed2
+    virtual void                SetWMClass( const rtl::OUString &rWMClass );
c741ed2
 
c741ed2
     // shaped system windows
c741ed2
     // set clip region to none (-> rectangular windows, normal state)
c741ed2
diff -ru vcl/aqua/source/window/salframe.cxx vcl/aqua/source/window/salframe.cxx
c741ed2
--- vcl/aqua/source/window/salframe.cxx	2010-10-18 17:01:44.000000000 +0100
c741ed2
+++ vcl/aqua/source/window/salframe.cxx	2010-10-22 13:17:50.000000000 +0100
c741ed2
@@ -664,6 +664,10 @@
c741ed2
     }
c741ed2
 }
c741ed2
 
c741ed2
+void AquaSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ )
c741ed2
+{
c741ed2
+}
c741ed2
+
c741ed2
 // -----------------------------------------------------------------------
c741ed2
 
c741ed2
 void AquaSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay )
c741ed2
diff -ru vcl/inc/vcl/salframe.hxx vcl/inc/vcl/salframe.hxx
c741ed2
--- vcl/inc/vcl/salframe.hxx	2010-10-14 21:43:20.000000000 +0100
c741ed2
+++ vcl/inc/vcl/salframe.hxx	2010-10-22 13:26:05.000000000 +0100
c741ed2
@@ -266,6 +266,8 @@
c741ed2
     // move the frame to a new screen
c741ed2
     virtual void                SetScreenNumber( unsigned int nScreen ) = 0;
c741ed2
 
c741ed2
+    virtual void                SetWMClass( const rtl::OUString &rWMClass ) = 0;
c741ed2
+
c741ed2
     // shaped system windows
c741ed2
     // set clip region to none (-> rectangular windows, normal state)
c741ed2
     virtual void					ResetClipRegion() = 0;
c741ed2
diff -ru vcl/inc/vcl/syswin.hxx vcl/inc/vcl/syswin.hxx
c741ed2
--- vcl/inc/vcl/syswin.hxx	2010-10-14 21:43:20.000000000 +0100
c741ed2
+++ vcl/inc/vcl/syswin.hxx	2010-10-22 13:14:48.000000000 +0100
c741ed2
@@ -277,6 +277,8 @@
c741ed2
     @see GetScreenNumber
c741ed2
     */
c741ed2
     void            SetScreenNumber( unsigned int nNewScreen );
c741ed2
+
c741ed2
+    void            SetWMClass( const rtl::OUString &rWMClass );
c741ed2
 };
c741ed2
 
c741ed2
 #endif // _SV_SYSWIN_HXX
c741ed2
diff -ru vcl/source/window/syswin.cxx vcl/source/window/syswin.cxx
c741ed2
--- vcl/source/window/syswin.cxx	2010-10-14 21:43:20.000000000 +0100
c741ed2
+++ vcl/source/window/syswin.cxx	2010-10-22 13:29:21.000000000 +0100
8aa9a6f
@@ -1082,3 +1082,8 @@
8aa9a6f
 {
c741ed2
     mpWindowImpl->mpFrame->SetScreenNumber( nScreen );
c741ed2
 }
8aa9a6f
+
c741ed2
+void SystemWindow::SetWMClass( const rtl::OUString &rWMClass )
c741ed2
+{
c741ed2
+    mpWindowImpl->mpFrame->SetWMClass( rWMClass );
c741ed2
+}
c741ed2
diff -ru vcl/unx/gtk/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx
c741ed2
--- vcl/unx/gtk/window/gtkframe.cxx	2010-10-22 08:55:43.000000000 +0100
c741ed2
+++ vcl/unx/gtk/window/gtkframe.cxx	2010-10-22 14:12:08.000000000 +0100
c741ed2
@@ -981,25 +981,10 @@
c741ed2
     if( nStyle != m_nExtStyle && ! isChild() )
c741ed2
     {
c741ed2
         m_nExtStyle = nStyle;
c741ed2
-        if( GTK_WIDGET_REALIZED( m_pWindow ) )
c741ed2
-        {
c741ed2
-            XClassHint* pClass = XAllocClassHint();
c741ed2
-            rtl::OString aResHint = X11SalData::getFrameResName( m_nExtStyle );
c741ed2
-            pClass->res_name  = const_cast<char*>(aResHint.getStr());
c741ed2
-            pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
c741ed2
-            XSetClassHint( getDisplay()->GetDisplay(),
c741ed2
-                           GDK_WINDOW_XWINDOW(m_pWindow->window),
c741ed2
-                           pClass );
c741ed2
-            XFree( pClass );
c741ed2
-        }
c741ed2
-        else
c741ed2
-            gtk_window_set_wmclass( GTK_WINDOW(m_pWindow),
c741ed2
-                                    X11SalData::getFrameResName( m_nExtStyle ),
c741ed2
-                                    X11SalData::getFrameClassName() );
c741ed2
+        updateWMClass();
c741ed2
     }
c741ed2
 }
c741ed2
 
c741ed2
-
c741ed2
 SalGraphics* GtkSalFrame::GetGraphics()
c741ed2
 {
c741ed2
     if( m_pWindow )
c741ed2
@@ -1792,6 +1777,39 @@
c741ed2
     }
c741ed2
 }
c741ed2
 
c741ed2
+void GtkSalFrame::updateWMClass()
c741ed2
+{
c741ed2
+    fprintf(stderr, "%p GtkSalFrame::SetWMClass with %s\n", this, rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_UTF8).getStr());
c741ed2
+
c741ed2
+    rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US);
c741ed2
+    const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName();
c741ed2
+
c741ed2
+    if( GTK_WIDGET_REALIZED( m_pWindow ) )
c741ed2
+    {
c741ed2
+        XClassHint* pClass = XAllocClassHint();
c741ed2
+        rtl::OString aResName = X11SalData::getFrameResName( m_nExtStyle );
c741ed2
+        pClass->res_name  = const_cast<char*>(aResName.getStr());
c741ed2
+        pClass->res_class = const_cast<char*>(pResClass);
c741ed2
+        XSetClassHint( getDisplay()->GetDisplay(),
c741ed2
+                       GDK_WINDOW_XWINDOW(m_pWindow->window),
c741ed2
+                       pClass );
c741ed2
+        XFree( pClass );
c741ed2
+    }
c741ed2
+    else
c741ed2
+        gtk_window_set_wmclass( GTK_WINDOW(m_pWindow),
c741ed2
+                                X11SalData::getFrameResName( m_nExtStyle ),
c741ed2
+                                pResClass );
c741ed2
+}
c741ed2
+
c741ed2
+void GtkSalFrame::SetWMClass( const rtl::OUString &rWMClass )
c741ed2
+{
c741ed2
+    if( rWMClass != m_sWMClass && ! isChild() )
c741ed2
+    {
c741ed2
+        m_sWMClass = rWMClass;
c741ed2
+        updateWMClass();
c741ed2
+    }
c741ed2
+}
c741ed2
+
c741ed2
 void GtkSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen )
c741ed2
 {
c741ed2
     if( m_pWindow && ! isChild() )
c741ed2
diff -ru vcl/unx/headless/svpframe.hxx vcl/unx/headless/svpframe.hxx
c741ed2
--- vcl/unx/headless/svpframe.hxx	2010-10-14 21:43:20.000000000 +0100
c741ed2
+++ vcl/unx/headless/svpframe.hxx	2010-10-22 13:27:19.000000000 +0100
c741ed2
@@ -125,6 +125,7 @@
c741ed2
 
c741ed2
     /*TODO: functional implementation */
c741ed2
     virtual void                SetScreenNumber( unsigned int nScreen ) { (void)nScreen; }
c741ed2
+    virtual void                SetWMClass( const rtl::OUString &rWMClass ) { (void) rWMClass; }
c741ed2
 };
c741ed2
 #endif // _SVP_SVPFRAME_HXX
c741ed2
 
c741ed2
diff -ru vcl/unx/inc/plugins/gtk/gtkframe.hxx vcl/unx/inc/plugins/gtk/gtkframe.hxx
c741ed2
--- vcl/unx/inc/plugins/gtk/gtkframe.hxx	2010-10-22 08:55:43.000000000 +0100
c741ed2
+++ vcl/unx/inc/plugins/gtk/gtkframe.hxx	2010-10-22 14:10:08.000000000 +0100
c741ed2
@@ -192,6 +192,7 @@
c741ed2
     bool                            m_bWindowIsGtkPlug;
c741ed2
     bool                            m_bSetFocusOnMap;
c741ed2
     String                          m_aTitle;
c741ed2
+    rtl::OUString                   m_sWMClass;
c741ed2
     
c741ed2
     IMHandler*                      m_pIMHandler;
c741ed2
     
c741ed2
@@ -269,6 +270,8 @@
c741ed2
     void setMinMaxSize();
c741ed2
     void createNewWindow( XLIB_Window aParent, bool bXEmbed, int nScreen );
c741ed2
     void askForXEmbedFocus( sal_Int32 nTimecode );
c741ed2
+
c741ed2
+    void updateWMClass();
c741ed2
     
c741ed2
     DECL_LINK( ImplDelayedFullScreenHdl, void* );
c741ed2
 public:
c741ed2
@@ -387,6 +390,7 @@
c741ed2
     virtual void                SetBackgroundBitmap( SalBitmap* );
c741ed2
 
c741ed2
     virtual void                SetScreenNumber( unsigned int );
c741ed2
+    virtual void                SetWMClass( const rtl::OUString &rWMClass );
c741ed2
 
c741ed2
     // shaped system windows
c741ed2
     // set clip region to none (-> rectangular windows, normal state)
c741ed2
diff -ru vcl/unx/inc/salframe.h vcl/unx/inc/salframe.h
c741ed2
--- vcl/unx/inc/salframe.h	2010-10-14 21:43:20.000000000 +0100
c741ed2
+++ vcl/unx/inc/salframe.h	2010-10-22 14:22:35.000000000 +0100
c741ed2
@@ -128,6 +128,8 @@
c741ed2
     int			    mnIconID;
c741ed2
     
c741ed2
     String          m_aTitle;
c741ed2
+
c741ed2
+    rtl::OUString   m_sWMClass;
c741ed2
     
c741ed2
     SystemChildData maSystemChildData;
c741ed2
     
c741ed2
@@ -171,6 +173,8 @@
c741ed2
     
c741ed2
     void            setXEmbedInfo();
c741ed2
     void            askForXEmbedFocus( sal_Int32 i_nTimeCode );
c741ed2
+
c741ed2
+    void            updateWMClass();
c741ed2
 public:
c741ed2
     X11SalFrame( SalFrame* pParent, ULONG nSalFrameStyle, SystemParentData* pSystemParent = NULL );
c741ed2
     virtual ~X11SalFrame();
c741ed2
@@ -261,6 +265,7 @@
c741ed2
     virtual void                SetBackgroundBitmap( SalBitmap* pBitmap );
c741ed2
 
c741ed2
     virtual void                SetScreenNumber( unsigned int );
c741ed2
+    virtual void                SetWMClass( const rtl::OUString &rWMClass );
c741ed2
     
c741ed2
     // shaped system windows
c741ed2
     // set clip region to none (-> rectangular windows, normal state)
c741ed2
diff -ru vcl/unx/source/window/salframe.cxx vcl/unx/source/window/salframe.cxx
c741ed2
--- vcl/unx/source/window/salframe.cxx	2010-10-18 12:39:42.000000000 +0100
c741ed2
+++ vcl/unx/source/window/salframe.cxx	2010-10-22 14:23:44.000000000 +0100
c741ed2
@@ -542,11 +542,9 @@
c741ed2
             a[n++] = pDisplay_->getWMAdaptor()->getAtom( WMAdaptor::WM_TAKE_FOCUS );
c741ed2
         XSetWMProtocols( GetXDisplay(), GetShellWindow(), a, n );
c741ed2
 
c741ed2
-        XClassHint* pClass = XAllocClassHint();
c741ed2
-        pClass->res_name  = const_cast<char*>(X11SalData::getFrameResName());
c741ed2
-        pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
c741ed2
-        XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
c741ed2
-        XFree( pClass );
c741ed2
+        // force wm class hint
c741ed2
+        mnExtStyle = ~0;
c741ed2
+        SetExtendedFrameStyle( 0 );
c741ed2
 
c741ed2
         XSizeHints* pHints = XAllocSizeHints();
c741ed2
         pHints->flags       = PWinGravity | PPosition;
c741ed2
@@ -849,13 +847,7 @@
c741ed2
     if( nStyle != mnExtStyle && ! IsChildWindow() )
c741ed2
     {
c741ed2
         mnExtStyle = nStyle;
c741ed2
-    
c741ed2
-        XClassHint* pClass = XAllocClassHint();
c741ed2
-        rtl::OString aResHint = X11SalData::getFrameResName( mnExtStyle );
c741ed2
-        pClass->res_name  = const_cast<char*>(aResHint.getStr());
c741ed2
-        pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
c741ed2
-        XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
c741ed2
-        XFree( pClass );
c741ed2
+        updateWMClass();
c741ed2
     }
c741ed2
 }
c741ed2
 
c741ed2
@@ -2192,6 +2184,30 @@
c741ed2
     }
c741ed2
 }
c741ed2
 
c741ed2
+void X11SalFrame::SetWMClass( const rtl::OUString &rWMClass )
c741ed2
+{
c741ed2
+    if( rWMClass != m_sWMClass && ! IsChildWindow() )
c741ed2
+    {
c741ed2
+        m_sWMClass = rWMClass;
c741ed2
+        updateWMClass();
c741ed2
+    }
c741ed2
+}
c741ed2
+
c741ed2
+void X11SalFrame::updateWMClass()
c741ed2
+{
c741ed2
+    XClassHint* pClass = XAllocClassHint();
c741ed2
+    rtl::OString aResName = X11SalData::getFrameResName( mnExtStyle );
c741ed2
+    pClass->res_name  = const_cast<char*>(aResName.getStr());
c741ed2
+
c741ed2
+    rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US);
c741ed2
+    const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName();
c741ed2
+
c741ed2
+    pClass->res_class = const_cast<char*>(pResClass);
c741ed2
+    XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
c741ed2
+    XFree( pClass );
c741ed2
+}
c741ed2
+
c741ed2
+
c741ed2
 // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
c741ed2
 
c741ed2
 void X11SalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen )
c741ed2
diff -ru vcl/win/inc/salframe.h vcl/win/inc/salframe.h
c741ed2
--- vcl/win/inc/salframe.h	2010-10-14 21:43:21.000000000 +0100
c741ed2
+++ vcl/win/inc/salframe.h	2010-10-22 13:26:23.000000000 +0100
c741ed2
@@ -141,6 +141,7 @@
c741ed2
     virtual bool				SetPluginParent( SystemParentData* pNewParent );
c741ed2
     virtual void                SetBackgroundBitmap( SalBitmap* );
c741ed2
     virtual void                SetScreenNumber( unsigned int );
c741ed2
+    virtual void                SetWMClass( const rtl::OUString &rWMClass );
c741ed2
     virtual void				ResetClipRegion();
c741ed2
     virtual void				BeginSetClipRegion( ULONG nRects );
c741ed2
     virtual void				UnionClipRegion( long nX, long nY, long nWidth, long nHeight );
c741ed2
diff -ru vcl/win/source/window/salframe.cxx vcl/win/source/window/salframe.cxx
c741ed2
--- vcl/win/source/window/salframe.cxx	2010-10-14 21:43:21.000000000 +0100
c741ed2
+++ vcl/win/source/window/salframe.cxx	2010-10-22 13:18:05.000000000 +0100
c741ed2
@@ -2036,6 +2036,10 @@
c741ed2
     }
c741ed2
 }
c741ed2
 
c741ed2
+void WinSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ )
c741ed2
+{
c741ed2
+}
c741ed2
+
c741ed2
 // -----------------------------------------------------------------------
c741ed2
 
c741ed2
 void WinSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay )