rpms/openoffice.org/devel workspace.gtk3.patch, NONE, 1.1 openoffice.org.spec, 1.2250, 1.2251 openoffice.org-3.3.0.ooo112421.vcl.defaultmonitor.patch, 1.3, NONE

Caolan McNamara caolanm at fedoraproject.org
Mon Jun 21 08:42:19 UTC 2010


Author: caolanm

Update of /cvs/pkgs/rpms/openoffice.org/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv29968

Modified Files:
	openoffice.org.spec 
Added Files:
	workspace.gtk3.patch 
Removed Files:
	openoffice.org-3.3.0.ooo112421.vcl.defaultmonitor.patch 
Log Message:
Build against gtk3

workspace.gtk3.patch:
 configure.in                                  |    6 +-
 extensions/source/nsplugin/source/makefile.mk |    2 
 extensions/source/plugin/util/makefile.pmk    |    2 
 fpicker/source/unx/gnome/SalGtkFilePicker.cxx |    2 
 fpicker/source/unx/gnome/makefile.mk          |    6 +-
 libegg/source/eggtrayicon-impl.h              |    2 
 libegg/source/eggtrayicon.c                   |   39 ++++++++++++++-
 libegg/source/makefile.mk                     |    2 
 scp2/source/ooo/makefile.mk                   |    4 -
 sfx2/source/appl/makefile.mk                  |    2 
 sfx2/source/appl/shutdowniconunx.cxx          |    4 +
 sfx2/util/makefile.mk                         |    2 
 vcl/unx/gtk/a11y/makefile.mk                  |    2 
 vcl/unx/gtk/app/gtkdata.cxx                   |   32 ++++++++++++
 vcl/unx/gtk/app/makefile.mk                   |    2 
 vcl/unx/gtk/gdi/makefile.mk                   |    2 
 vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx      |   65 ++++++++++++++++++--------
 vcl/unx/gtk/window/gtkframe.cxx               |   36 ++++++++++----
 vcl/unx/gtk/window/makefile.mk                |    2 
 vcl/unx/inc/plugins/gtk/gtkdata.hxx           |    2 
 vcl/unx/inc/saldisp.hxx                       |    4 +
 vcl/unx/source/app/saldisp.cxx                |   21 +++++---
 vcl/unx/source/app/salsys.cxx                 |    2 
 vcl/util/makefile.mk                          |    2 
 24 files changed, 184 insertions(+), 61 deletions(-)

--- NEW FILE workspace.gtk3.patch ---
diff -ru vcl.orig/unx/gtk/a11y/makefile.mk vcl/unx/gtk/a11y/makefile.mk
--- vcl.orig/unx/gtk/a11y/makefile.mk	2010-05-29 11:29:16.000000000 +0100
+++ vcl/unx/gtk/a11y/makefile.mk	2010-05-29 11:30:47.000000000 +0100
@@ -50,7 +50,7 @@
 
 .IF "$(ENABLE_GTK)" != ""
 
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .INCLUDE : pkg_config.mk
 
 CFLAGS+=-DVERSION=$(EMQ)"$(UPD)$(LAST_MINOR)$(EMQ)"
diff -ru vcl.orig/unx/gtk/app/makefile.mk vcl/unx/gtk/app/makefile.mk
--- vcl.orig/unx/gtk/app/makefile.mk	2010-05-29 11:29:17.000000000 +0100
+++ vcl/unx/gtk/app/makefile.mk	2010-05-29 11:30:40.000000000 +0100
@@ -50,7 +50,7 @@
 
 .IF "$(ENABLE_GTK)" != ""
 
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .INCLUDE : pkg_config.mk
 
 SLOFILES=\
diff -ru vcl.orig/unx/gtk/gdi/makefile.mk vcl/unx/gtk/gdi/makefile.mk
--- vcl.orig/unx/gtk/gdi/makefile.mk	2010-05-29 11:29:17.000000000 +0100
+++ vcl/unx/gtk/gdi/makefile.mk	2010-05-29 11:30:44.000000000 +0100
@@ -47,7 +47,7 @@
 
 .IF "$(ENABLE_GTK)" != ""
 
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .INCLUDE : pkg_config.mk
 
 SLOFILES=$(SLO)$/salnativewidgets-gtk.obj
diff -ru vcl.orig/unx/gtk/gdi/salnativewidgets-gtk.cxx vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
--- vcl.orig/unx/gtk/gdi/salnativewidgets-gtk.cxx	2010-05-29 11:29:16.000000000 +0100
+++ vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx	2010-05-29 21:07:21.000000000 +0100
@@ -47,6 +47,16 @@
 
 #include "cairo/cairo.h"
 
+
+static void gtk_set_orientation(GtkWidget *widget, GtkOrientation orientation)
+{
+#if GTK_CHECK_VERSION(2,90,0)
+    gtk_orientable_set_orientation( GTK_ORIENTABLE(widget), orientation );
+#else
+    gtk_toolbar_set_orientation( GTK_TOOLBAR(widget), orientation );
+#endif
+}
+
 // initialize statics
 BOOL GtkSalGraphics::bThemeChanged = TRUE;
 BOOL GtkSalGraphics::bNeedPixmapPaint = FALSE;
@@ -84,6 +94,8 @@
     GtkWidget *	gNotebookWidget;
     GtkWidget *	gOptionMenuWidget;
     GtkWidget *	gComboWidget;
+    GtkWidget *	gComboButtonWidget;
+    GtkWidget *	gComboEntryWidget;
     GtkWidget *	gScrolledWindowWidget;
     GtkWidget *  gToolbarWidget;
     GtkWidget *  gToolbarButtonWidget;
@@ -120,6 +132,8 @@
         gNotebookWidget( NULL ),
         gOptionMenuWidget( NULL ),
         gComboWidget( NULL ),
+        gComboButtonWidget( NULL ),
+        gComboEntryWidget( NULL ),
         gScrolledWindowWidget( NULL ),
         gToolbarWidget( NULL ),
         gToolbarButtonWidget( NULL ),
@@ -1892,7 +1906,7 @@
             widget = gWidgetData[nScreen].gScrolledWindowWidget;
             break;
 		case CTRL_COMBOBOX:
-			widget = GTK_COMBO(gWidgetData[nScreen].gComboWidget)->entry;
+			widget = gWidgetData[nScreen].gComboEntryWidget;
 			break;
 
 		default:
@@ -2173,8 +2187,8 @@
                             x+(buttonRect.Left() - pixmapRect.Left()), 
                             y+(buttonRect.Top() - pixmapRect.Top()),
                             buttonRect.GetWidth(), buttonRect.GetHeight() );
-        gtk_paint_box( GTK_COMBO(gWidgetData[m_nScreen].gComboWidget)->button->style, gdkDrawable, stateType, shadowType,
-                       &clipRect, GTK_COMBO(gWidgetData[m_nScreen].gComboWidget)->button, "button",
+        gtk_paint_box( gWidgetData[m_nScreen].gComboButtonWidget->style, gdkDrawable, stateType, shadowType,
+                       &clipRect, gWidgetData[m_nScreen].gComboButtonWidget, "button",
                        x+(buttonRect.Left() - pixmapRect.Left()), 
                        y+(buttonRect.Top() - pixmapRect.Top()),
                        buttonRect.GetWidth(), buttonRect.GetHeight() );
@@ -2518,9 +2532,9 @@
             GTK_WIDGET_SET_FLAGS( gWidgetData[m_nScreen].gToolbarWidget, GTK_SENSITIVE );
 
         if( nPart == PART_DRAW_BACKGROUND_HORZ )
-            gtk_toolbar_set_orientation( GTK_TOOLBAR(gWidgetData[m_nScreen].gToolbarWidget), GTK_ORIENTATION_HORIZONTAL );
+            gtk_set_orientation( gWidgetData[m_nScreen].gToolbarWidget, GTK_ORIENTATION_HORIZONTAL );
         else
-            gtk_toolbar_set_orientation( GTK_TOOLBAR(gWidgetData[m_nScreen].gToolbarWidget), GTK_ORIENTATION_VERTICAL );
+            gtk_set_orientation( gWidgetData[m_nScreen].gToolbarWidget, GTK_ORIENTATION_VERTICAL );
     }        
     // handle grip
     else if( nPart == PART_THUMB_HORZ || nPart == PART_THUMB_VERT )
@@ -3737,7 +3751,7 @@
 		NWAddWidgetToCacheWindow( gWidgetData[nScreen].gDropdownWidget, nScreen );
 		gWidgetData[nScreen].gArrowWidget = gtk_arrow_new( GTK_ARROW_DOWN, GTK_SHADOW_OUT );
 		gtk_container_add( GTK_CONTAINER(gWidgetData[nScreen].gDropdownWidget), gWidgetData[nScreen].gArrowWidget );
-		gtk_widget_set_rc_style( gWidgetData[nScreen].gArrowWidget );
+		gtk_widget_set_style( gWidgetData[nScreen].gArrowWidget, NULL );
 		gtk_widget_realize( gWidgetData[nScreen].gArrowWidget );
 	}
 }
@@ -3787,29 +3801,42 @@
 {
 	if ( !gWidgetData[nScreen].gOptionMenuWidget )
 	{
-		gWidgetData[nScreen].gOptionMenuWidget = gtk_option_menu_new();
+		gWidgetData[nScreen].gOptionMenuWidget = gtk_combo_box_new();
 		NWAddWidgetToCacheWindow( gWidgetData[nScreen].gOptionMenuWidget, nScreen );
 	}
 }
 
 //-------------------------------------
 
+static void get_combo_box_entry_inner_widgets(GtkWidget *widget, gpointer client_data)
+{
+    int nScreen = GPOINTER_TO_INT(client_data);
+    if (GTK_IS_TOGGLE_BUTTON(widget))
+        gWidgetData[nScreen].gComboButtonWidget = widget;
+    else if (GTK_IS_ENTRY(widget))
+    {
+        // #i59129# Setting non-editable means it doesn't blink, so
+        // there are no timeouts running around to nobble us
+        gtk_editable_set_editable(GTK_EDITABLE(widget), false);
+        gWidgetData[nScreen].gComboEntryWidget = widget;
+    }
+    else
+        return;
+    gtk_widget_realize(widget);
+}
+
 static void NWEnsureGTKCombo( int nScreen )
 {
-	if ( !gWidgetData[nScreen].gComboWidget )
-	{
-		gWidgetData[nScreen].gComboWidget = gtk_combo_new();
+    if ( !gWidgetData[nScreen].gComboWidget )
+    {
+        gWidgetData[nScreen].gComboWidget = gtk_combo_box_entry_new();
 
-		// #i59129# Setting non-editable means it doesn't blink, so
-        // there are no timeouts running around to nobble us
-		gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO(gWidgetData[nScreen].gComboWidget)->entry), false);
+        NWAddWidgetToCacheWindow( gWidgetData[nScreen].gComboWidget, nScreen );
 
-		NWAddWidgetToCacheWindow( gWidgetData[nScreen].gComboWidget, nScreen );
-		// Must realize the ComboBox's children, since GTK
-		// does not do this for us in GtkCombo::gtk_widget_realize()
-		gtk_widget_realize( GTK_COMBO(gWidgetData[nScreen].gComboWidget)->button );
-		gtk_widget_realize( GTK_COMBO(gWidgetData[nScreen].gComboWidget)->entry );
-	}
+        gtk_container_forall(GTK_CONTAINER(gWidgetData[nScreen].gComboWidget),
+            get_combo_box_entry_inner_widgets, GINT_TO_POINTER(nScreen) );
+
+    }
 }
 
 //-------------------------------------
diff -ru vcl.orig/unx/gtk/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx
--- vcl.orig/unx/gtk/window/gtkframe.cxx	2010-05-29 11:29:16.000000000 +0100
+++ vcl/unx/gtk/window/gtkframe.cxx	2010-05-29 12:02:19.000000000 +0100
@@ -79,6 +79,24 @@
 #define GDK_META_MASK       (1 << 28)
 #endif
 
+static bool gtk_widget_is_realized(GtkWidget *widget)
+{
+#if GTK_CHECK_VERSION(2,90,0)
+    return gtk_widget_get_realized(widget);
+#else
+    return GTK_WIDGET_REALIZED(widget);
+#endif
+}
+
+static bool gtk_widget_is_mapped(GtkWidget *widget)
+{
+#if GTK_CHECK_VERSION(2,90,0)
+    return gtk_widget_get_mapped(widget);
+#else
+    return GTK_WIDGET_MAPPED(widget);
+#endif
+}
+
 using namespace com::sun::star;
 
 int GtkSalFrame::m_nFloats = 0;
@@ -982,7 +1000,7 @@
     if( nStyle != m_nExtStyle && ! isChild() )
     {
         m_nExtStyle = nStyle;
-        if( GTK_WIDGET_REALIZED( m_pWindow ) )
+        if( gtk_widget_is_realized( m_pWindow ) )
         {
             XClassHint* pClass = XAllocClassHint();
             rtl::OString aResHint = X11SalData::getFrameResName( m_nExtStyle );
@@ -1314,7 +1332,7 @@
             setMinMaxSize();
             
             // #i45160# switch to desktop where a dialog with parent will appear
-            if( m_pParent && m_pParent->m_nWorkArea != m_nWorkArea && GTK_WIDGET_MAPPED(m_pParent->m_pWindow) )
+            if( m_pParent && m_pParent->m_nWorkArea != m_nWorkArea && gtk_widget_is_mapped(m_pParent->m_pWindow) )
                 getDisplay()->getWMAdaptor()->switchToWorkArea( m_pParent->m_nWorkArea );
             
             if( isFloatGrabWindow() &&
@@ -1480,7 +1498,7 @@
     {
         m_aMaxSize = Size( nWidth, nHeight );
         // Show does a setMinMaxSize
-        if( GTK_WIDGET_MAPPED( m_pWindow ) )
+        if( gtk_widget_is_mapped( m_pWindow ) )
             setMinMaxSize();
     }
 }
@@ -1493,7 +1511,7 @@
         {
             gtk_widget_set_size_request( m_pWindow, nWidth, nHeight );
             // Show does a setMinMaxSize
-            if( GTK_WIDGET_MAPPED( m_pWindow ) )
+            if( gtk_widget_is_mapped( m_pWindow ) )
                 setMinMaxSize();
         }
     }
@@ -1785,7 +1803,7 @@
             
             Rectangle aOldScreenRect( pDisp->GetXineramaScreens()[maGeometry.nScreenNumber] );
             Rectangle aNewScreenRect( pDisp->GetXineramaScreens()[nNewScreen] );
-            bool bVisible = GTK_WIDGET_MAPPED(m_pWindow);
+            bool bVisible = gtk_widget_is_mapped(m_pWindow);
             if( bVisible )
                 Show( FALSE );
             maGeometry.nX = aNewScreenRect.Left() + (maGeometry.nX - aOldScreenRect.Left());
@@ -1817,7 +1835,7 @@
             {
                 m_aRestorePosSize = Rectangle( Point( maGeometry.nX, maGeometry.nY ),
                                                Size( maGeometry.nWidth, maGeometry.nHeight ) );
-                bool bVisible = GTK_WIDGET_MAPPED(m_pWindow);
+                bool bVisible = gtk_widget_is_mapped(m_pWindow);
                 if( bVisible )
                     Show( FALSE );
                 m_nStyle |= SAL_FRAME_STYLE_PARTIAL_FULLSCREEN;
@@ -1846,7 +1864,7 @@
             }
             else
             {
-                bool bVisible = GTK_WIDGET_MAPPED(m_pWindow);
+                bool bVisible = gtk_widget_is_mapped(m_pWindow);
                 if( ! getDisplay()->getWMAdaptor()->isLegacyPartialFullscreen() )
                     gtk_window_unfullscreen( GTK_WINDOW(m_pWindow) );
                 if( bVisible )
@@ -2086,7 +2104,7 @@
     {
         if( isChild( false, true ) )
             gtk_widget_grab_focus( m_pWindow );
-        else if( GTK_WIDGET_MAPPED( m_pWindow ) )
+        else if( gtk_widget_is_mapped( m_pWindow ) )
         {
             if( ! (nFlags & SAL_FRAME_TOTOP_GRABFOCUS_ONLY) )
                 gtk_window_present( GTK_WINDOW(m_pWindow) );
@@ -2370,7 +2388,7 @@
 
 void GtkSalFrame::createNewWindow( XLIB_Window aNewParent, bool bXEmbed, int nScreen )
 {
-    bool bWasVisible = GTK_WIDGET_MAPPED(m_pWindow);
+    bool bWasVisible = gtk_widget_is_mapped(m_pWindow);
     if( bWasVisible )
         Show( FALSE );
     
diff -ru vcl.orig/unx/gtk/window/makefile.mk vcl/unx/gtk/window/makefile.mk
--- vcl.orig/unx/gtk/window/makefile.mk	2010-05-29 11:29:16.000000000 +0100
+++ vcl/unx/gtk/window/makefile.mk	2010-05-29 11:30:51.000000000 +0100
@@ -50,7 +50,7 @@
 
 .IF "$(ENABLE_GTK)" != ""
 
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .IF "$(ENABLE_DBUS)" != ""
 CDEFS+=-DENABLE_DBUS
 PKGCONFIG_MODULES+= dbus-glib-1
diff -ru vcl.orig/util/makefile.mk vcl/util/makefile.mk
--- vcl.orig/util/makefile.mk	2010-05-29 11:28:58.000000000 +0100
+++ vcl/util/makefile.mk	2010-05-29 11:30:59.000000000 +0100
@@ -350,7 +350,7 @@
 
 # gtk plugin
 .IF "$(ENABLE_GTK)" != ""
-PKGCONFIG_MODULES=gtk+-2.0 gthread-2.0
+PKGCONFIG_MODULES=gtk+-3.0 gthread-2.0
 .IF "$(ENABLE_DBUS)" != ""
 PKGCONFIG_MODULES+= dbus-glib-1
 .ENDIF
diff -ru extensions.orig/source/nsplugin/source/makefile.mk extensions/source/nsplugin/source/makefile.mk
--- extensions.orig/source/nsplugin/source/makefile.mk	2010-05-29 21:22:06.000000000 +0100
+++ extensions/source/nsplugin/source/makefile.mk	2010-05-29 21:23:13.000000000 +0100
@@ -52,7 +52,7 @@
 .IF "$(OS)"=="LINUX" || "$(OS)"=="FREEBSD"
 INC+= -DNP_LINUX
 .ENDIF
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .INCLUDE: pkg_config.mk
 .ENDIF          # "$(ENABLE_GTK)"==""
 .ENDIF          # "$(GUI)"=="UNX"
diff -ru extensions.orig/source/plugin/util/makefile.pmk extensions/source/plugin/util/makefile.pmk
--- extensions.orig/source/plugin/util/makefile.pmk	2010-05-29 21:22:06.000000000 +0100
+++ extensions/source/plugin/util/makefile.pmk	2010-05-29 21:23:16.000000000 +0100
@@ -35,7 +35,7 @@
 
 .IF "$(GUIBASE)" == "unx" && "$(ENABLE_GTK)" == "TRUE"
 CDEFS+=-DENABLE_GTK
-PKGCONFIG_MODULES+=gtk+-2.0 gthread-2.0
+PKGCONFIG_MODULES+=gtk+-3.0 gthread-2.0
 .ENDIF
 
 .IF "$(GUIBASE)" == "aqua"
diff -ru fpicker.orig/source/unx/gnome/makefile.mk fpicker/source/unx/gnome/makefile.mk
--- fpicker.orig/source/unx/gnome/makefile.mk	2010-05-29 21:22:49.000000000 +0100
+++ fpicker/source/unx/gnome/makefile.mk	2010-05-29 21:24:14.000000000 +0100
@@ -46,16 +46,16 @@
 
 .ELSE # we build for GNOME
 
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .INCLUDE : pkg_config.mk
 
 # check gtk version
-GTK_TWO_FOUR:=$(shell @$(PKG_CONFIG) --exists 'gtk+-2.0 >= 2.4.0' && echo ok)
+GTK_TWO_FOUR:=$(shell @$(PKG_CONFIG) --exists 'gtk+-3.0 >= 2.4.0' && echo ok)
 .IF "$(GTK_TWO_FOUR)" != "ok"
 
 dummy:
 	@echo "Cannot build gtk filepicker because" 
-	@$(PKG_CONFIG) --print-errors --exists 'gtk+-2.0 >= 2.4.0'
+	@$(PKG_CONFIG) --print-errors --exists 'gtk+-3.0 >= 2.4.0'
 
 .ELSE
 
diff -ru fpicker.orig/source/unx/gnome/SalGtkFilePicker.cxx fpicker/source/unx/gnome/SalGtkFilePicker.cxx
--- fpicker.orig/source/unx/gnome/SalGtkFilePicker.cxx	2010-05-29 21:22:49.000000000 +0100
+++ fpicker/source/unx/gnome/SalGtkFilePicker.cxx	2010-05-29 21:26:05.000000000 +0100
@@ -1586,7 +1586,7 @@
     
 		gtk_image_set_from_pixbuf( GTK_IMAGE( preview ), pixbuf );
 		if( pixbuf )
-			gdk_pixbuf_unref( pixbuf );
+			g_object_unref( pixbuf );
 
 	}
 
diff -ru libegg.orig/source/eggtrayicon.c libegg/source/eggtrayicon.c
--- libegg.orig/source/eggtrayicon.c	2010-05-29 21:27:29.000000000 +0100
+++ libegg/source/eggtrayicon.c	2010-05-30 12:53:27.000000000 +0100
@@ -230,6 +230,7 @@
 {
   EggTrayIcon *icon = user_data;
   XEvent *xev = (XEvent *)xevent;
+  (void)event;
 
   if (xev->xany.type == ClientMessage &&
       xev->xclient.message_type == icon->manager_atom &&
@@ -322,6 +323,16 @@
 				      0, 0);
 }
 
+static gboolean
+gtk_widget_is_realized(GtkWidget *widget)
+{
+#if GTK_CHECK_VERSION(2,90,0)
+    return gtk_widget_get_realized(widget);
+#else
+    return GTK_WIDGET_REALIZED(widget);
+#endif
+}
+
 static void
 egg_tray_icon_update_manager_window (EggTrayIcon *icon,
 				     gboolean     dock_if_realized)
@@ -354,7 +365,7 @@
       
       gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
 
-      if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
+      if (dock_if_realized && gtk_widget_is_realized (GTK_WIDGET (icon)))
 	egg_tray_icon_send_dock_request (icon);
 
       egg_tray_icon_get_orientation_property (icon);
@@ -383,6 +394,7 @@
 static gboolean
 transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
 {
+  (void)user_data;
   gdk_window_clear_area (widget->window, event->area.x, event->area.y,
 			 event->area.width, event->area.height);
   return FALSE;
@@ -392,15 +404,38 @@
 make_transparent_again (GtkWidget *widget, GtkStyle *previous_style,
 			gpointer user_data)
 {
+  (void)previous_style;
+  (void)user_data;
   gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
 }
 
+static gboolean
+gtk_widget_is_has_window(GtkWidget *widget)
+{
+#if GTK_CHECK_VERSION(2,90,0)
+    return gtk_widget_get_has_window(widget);
+#else
+    return GTK_WIDGET_NO_WINDOW(widget);
+#endif
+}
+
+static gboolean
+gtk_widget_is_app_paintable(GtkWidget *widget)
+{
+#if GTK_CHECK_VERSION(2,90,0)
+    return gtk_widget_get_app_paintable(widget);
+#else
+    return GTK_WIDGET_APP_PAINTABLE(widget);
+#endif
+}
+
 static void
 make_transparent (GtkWidget *widget, gpointer user_data)
 {
-  if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget))
+  if (gtk_widget_is_has_window (widget) || gtk_widget_is_app_paintable (widget))
     return;
 
+  (void)user_data;
   gtk_widget_set_app_paintable (widget, TRUE);
   gtk_widget_set_double_buffered (widget, FALSE);
   gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
diff -ru libegg.orig/source/eggtrayicon-impl.h libegg/source/eggtrayicon-impl.h
--- libegg.orig/source/eggtrayicon-impl.h	2010-05-29 21:27:29.000000000 +0100
+++ libegg/source/eggtrayicon-impl.h	2010-05-30 12:46:49.000000000 +0100
@@ -21,7 +21,7 @@
 #ifndef __EGG_TRAY_ICON_IMPL_H__
 #define __EGG_TRAY_ICON_IMPL_H__
 
-#include <gtk/gtkplug.h>
+#include <gtk/gtk.h>
 #ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
 #endif
diff -ru libegg.orig/source/makefile.mk libegg/source/makefile.mk
--- libegg.orig/source/makefile.mk	2010-05-29 21:27:29.000000000 +0100
+++ libegg/source/makefile.mk	2010-05-30 12:45:54.000000000 +0100
@@ -40,7 +40,7 @@
 .IF "$(L10N_framework)"==""
 .IF "$(ENABLE_GTK)"!=""
 
-PKGCONFIG_MODULES=gtk+-2.0 gdk-2.0
+PKGCONFIG_MODULES=gtk+-3.0 gdk-3.0
 .INCLUDE: pkg_config.mk
 CFLAGS+=$(PKGCONFIG_CFLAGS)
 
diff -ru scp2.orig/source/ooo/makefile.mk scp2/source/ooo/makefile.mk
--- scp2.orig/source/ooo/makefile.mk	2010-05-29 21:24:45.000000000 +0100
+++ scp2/source/ooo/makefile.mk	2010-05-29 21:26:42.000000000 +0100
@@ -63,9 +63,9 @@
 .IF "$(GUI)"=="UNX"
 .IF "$(ENABLE_GTK)" != ""
 SCPDEFS+=-DENABLE_GTK
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .INCLUDE: pkg_config.mk
-GTK_TWO_FOUR=$(shell @+-$(PKG_CONFIG) --exists 'gtk+-2.0 >= 2.4.0' && echo YES)
+GTK_TWO_FOUR=$(shell @+-$(PKG_CONFIG) --exists 'gtk+-3.0 >= 2.4.0' && echo YES)
 .IF "$(GTK_TWO_FOUR)" != ""
 SCPDEFS+=-DGTK_TWO_FOUR
 .ENDIF
diff -ru sfx2.orig/source/appl/makefile.mk sfx2/source/appl/makefile.mk
--- sfx2.orig/source/appl/makefile.mk	2010-05-29 21:22:29.000000000 +0100
+++ sfx2/source/appl/makefile.mk	2010-05-30 12:54:53.000000000 +0100
@@ -52,7 +52,7 @@
 .IF "$(GUI)"=="UNX"
         CDEFS+=-DDLL_NAME=libsfx$(DLLPOSTFIX)$(DLLPOST)
 .IF "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
-        PKGCONFIG_MODULES=gtk+-2.0
+        PKGCONFIG_MODULES=gtk+-3.0
         .INCLUDE: pkg_config.mk
         CFLAGS+=$(PKGCONFIG_CFLAGS)
         CFLAGS+=-DENABLE_QUICKSTART_APPLET
diff -ru sfx2.orig/source/appl/shutdowniconunx.cxx sfx2/source/appl/shutdowniconunx.cxx
--- sfx2.orig/source/appl/shutdowniconunx.cxx	2010-05-29 21:22:29.000000000 +0100
+++ sfx2/source/appl/shutdowniconunx.cxx	2010-05-30 12:59:35.000000000 +0100
@@ -372,8 +372,12 @@
 	pTrayIcon = egg_tray_icon_new( aLabel );
 
 	GtkWidget *pParent = gtk_event_box_new();
+#if GTK_CHECK_VERSION(2,90,0)
+	gtk_widget_set_tooltip_text (pParent, aLabel );
+#else
 	GtkTooltips *pTooltips = gtk_tooltips_new();
 	gtk_tooltips_set_tip( GTK_TOOLTIPS( pTooltips ), pParent, aLabel, NULL );
+#endif
 
 	GtkWidget *pIconImage = gtk_image_new();
 	gtk_container_add( GTK_CONTAINER( pParent ), pIconImage );
diff -ru sfx2.orig/util/makefile.mk sfx2/util/makefile.mk
--- sfx2.orig/util/makefile.mk	2010-05-29 21:22:29.000000000 +0100
+++ sfx2/util/makefile.mk	2010-05-30 12:54:56.000000000 +0100
@@ -140,7 +140,7 @@
 # gtk quick-starter
 .IF "$(GUI)"=="UNX"
 .IF "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
-PKGCONFIG_MODULES=gtk+-2.0
+PKGCONFIG_MODULES=gtk+-3.0
 .INCLUDE: pkg_config.mk
 CFLAGS+=$(PKGCONFIG_CFLAGS)
 
--- configure.in	2010-05-27 08:08:18.000000000 +0100
+++ configure.in	2010-05-29 11:33:43.000000000 +0100
@@ -4574,7 +4577,7 @@
    elif test "$_os" = "Darwin"; then
       if test "$MOZILLA_TOOLKIT" = "gtk2"; then
          AC_MSG_NOTICE([checking whether mozilla can be built...])
-         PKG_CHECK_MODULES(MOZGTK2, gtk+-2.0 >= 2.4 libIDL-2.0 >= 0.8, AC_MSG_NOTICE([OK - can build mozilla]), AC_MSG_ERROR([Prerequisites to build mozilla not met. Either use the precompiled mozilla binaries or install the missing packages]))
+         PKG_CHECK_MODULES(MOZGTK2, gtk+-3.0 >= 2.4 libIDL-2.0 >= 0.8, AC_MSG_NOTICE([OK - can build mozilla]), AC_MSG_ERROR([Prerequisites to build mozilla not met. Either use the precompiled mozilla binaries or install the missing packages]))
       else
          PKG_CHECK_MODULES(MOZLIBREQ, libIDL-2.0 >= 0.6.3,  MOZIDL="TRUE", MOZIDL="")
          if test -z "$MOZIDL"; then
@@ -4584,7 +4587,7 @@
    else
       # Generic Unix/Linux section
       if test "$MOZILLA_TOOLKIT" = "gtk2"; then
-         PKG_CHECK_MODULES(MOZLIBREQ, gtk+-2.0, MOZGTK="TRUE", MOZGTK="")
+         PKG_CHECK_MODULES(MOZLIBREQ, gtk+-3.0, MOZGTK="TRUE", MOZGTK="")
          if test -z "$MOZGTK"; then
             AC_MSG_ERROR([GTK2 is needed to build mozilla.])
          fi
@@ -5643,7 +5641,7 @@
 if test  "$test_gtk" = "yes"; then
 
    if test "$ENABLE_GTK" = "TRUE" ; then
-      PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4 gdk-pixbuf-xlib-2.0 >= 2.2 ,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages]))
+      PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 2.4 gdk-pixbuf-xlib-2.0 >= 2.2 ,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages]))
       BUILD_TYPE="$BUILD_TYPE GTK"
 
       if test "x$enable_systray" = "xyes"; then
diff -ru vcl.orig/unx/gtk/app/gtkdata.cxx vcl/unx/gtk/app/gtkdata.cxx
--- vcl.orig/unx/gtk/app/gtkdata.cxx	2010-06-14 19:51:39.500810695 +0100
+++ vcl/unx/gtk/app/gtkdata.cxx	2010-06-15 10:07:16.669799057 +0100
@@ -217,11 +217,12 @@
             {
                 gint nMonitors = gdk_screen_get_n_monitors(pScreen);
                 m_aXineramaScreens = std::vector<Rectangle>();
+                m_aXineramaScreenIndexMap = std::vector<int>(nMonitors);
                 for (gint i = 0; i < nMonitors; ++i)
                 {
                     GdkRectangle dest;
                     gdk_screen_get_monitor_geometry(pScreen, i, &dest);
-                    addXineramaScreenUnique( dest.x, dest.y, dest.width, dest.height );
+                    addXineramaScreenUnique( i, dest.x, dest.y, dest.width, dest.height );
                 }
                 m_bXinerama = m_aXineramaScreens.size() > 1;
                 if( ! m_aFrames.empty() )
@@ -235,6 +236,35 @@
     }
 }
 
+extern "C"
+{
+    typedef gint(* screen_get_primary_monitor)(GdkScreen *screen);
+}
+
+int GtkSalDisplay::GetDefaultMonitorNumber() const
+{
+	fprintf(stderr, "GtkSalDisplay::GetDefaultMonitorNumber\n");
+
+    GdkScreen* pScreen = gdk_display_get_screen( m_pGdkDisplay, m_nDefaultScreen );
+#if GTK_CHECK_VERSION(2,20,0)
+    return m_aXineramaScreenIndexMap[gdk_screen_get_primary_monitor(pScreen)];
+#else
+    static screen_get_primary_monitor sym_gdk_screen_get_primary_monitor =
+        (screen_get_primary_monitor)osl_getAsciiFunctionSymbol( GetSalData()->m_pPlugin, "gdk_screen_get_primary_monitor" );
+    if (sym_gdk_screen_get_primary_monitor)
+        return sym_gdk_screen_get_primary_monitor( pScreen );
+    //gdk_screen_get_primary_monitor unavailable, take the first laptop monitor as the default
+    gint nMonitors = gdk_screen_get_n_monitors(pScreen);
+    for (gint i = 0; i < nMonitors; ++i)
+    {
+        fprintf(stderr, "name is %s\n", gdk_screen_get_monitor_plug_name(pScreen, i));
+        if (g_ascii_strncasecmp (gdk_screen_get_monitor_plug_name(pScreen, i), "LVDS", 4) == 0)
+            return m_aXineramaScreenIndexMap[i];
+    }
+    return 0;
+#endif
+}
+
 void GtkSalDisplay::initScreen( int nScreen ) const
 {
     if( nScreen < 0 || nScreen >= static_cast<int>(m_aScreens.size()) )
diff -ru vcl.orig/unx/inc/plugins/gtk/gtkdata.hxx vcl/unx/inc/plugins/gtk/gtkdata.hxx
--- vcl.orig/unx/inc/plugins/gtk/gtkdata.hxx	2010-06-14 19:51:39.547798667 +0100
+++ vcl/unx/inc/plugins/gtk/gtkdata.hxx	2010-06-14 20:33:22.407799098 +0100
@@ -76,6 +76,8 @@
     virtual long Dispatch( XEvent *pEvent );
     virtual void initScreen( int nScreen ) const;
 
+    virtual int GetDefaultMonitorNumber() const;
+
     static GdkFilterReturn filterGdkEvent( GdkXEvent* sys_event,
                                            GdkEvent* event,
                                            gpointer data );
diff -ru vcl.orig/unx/inc/saldisp.hxx vcl/unx/inc/saldisp.hxx
--- vcl.orig/unx/inc/saldisp.hxx	2010-06-14 19:51:39.548798785 +0100
+++ vcl/unx/inc/saldisp.hxx	2010-06-15 10:06:53.031798755 +0100
@@ -389,6 +389,7 @@
 
     bool			m_bXinerama;
     std::vector< Rectangle > m_aXineramaScreens;
+    std::vector< int > m_aXineramaScreenIndexMap;
     std::list<SalFrame*> m_aFrames;
     std::list<SalObject*> m_aSalObjects;
     
@@ -404,7 +405,7 @@
     int             processRandREvent( XEvent* );
 
     void			doDestruct();
-    void            addXineramaScreenUnique( long i_nX, long i_nY, long i_nWidth, long i_nHeight );
+    void            addXineramaScreenUnique( int i, long i_nX, long i_nY, long i_nWidth, long i_nHeight );
 public:
 	static	SalDisplay	   *GetSalDisplay( Display* display );
 	static	BOOL			BestVisual( Display     *pDisp,
@@ -474,6 +475,7 @@
 	XLIB_Window		GetDrawable( int nScreen ) const { return getDataForScreen( nScreen ).m_aRefWindow; }
 	Display		   *GetDisplay() const { return pDisp_; }
 	int				GetDefaultScreenNumber() const { return m_nDefaultScreen; }
+	virtual int		GetDefaultMonitorNumber() const;
     const Size&     GetScreenSize( int nScreen ) const { return getDataForScreen( nScreen ).m_aSize; }
 	srv_vendor_t	GetServerVendor() const { return meServerVendor; }
 	void			SetServerVendor() { meServerVendor = sal_GetServerVendor(pDisp_); }
diff -ru vcl.orig/unx/source/app/saldisp.cxx vcl/unx/source/app/saldisp.cxx
--- vcl.orig/unx/source/app/saldisp.cxx	2010-06-14 19:51:39.516798973 +0100
+++ vcl/unx/source/app/saldisp.cxx	2010-06-15 10:12:39.627798619 +0100
@@ -62,9 +62,7 @@
 
 #ifdef USE_XINERAMA
 #ifdef USE_XINERAMA_XORG
-#if defined(X86) || defined(X86_64)
 #include <X11/extensions/Xinerama.h>
-#endif
 #elif defined USE_XINERAMA_XSUN
 #if defined(SOLARIS) && defined(INTEL) // missing extension header in standard installation
 #define MAXFRAMEBUFFERS       16
@@ -2597,7 +2595,7 @@
              sal::static_int_cast< unsigned int >(GetVisual(m_nDefaultScreen).GetVisualId()) );
 }
 
-void SalDisplay::addXineramaScreenUnique( long i_nX, long i_nY, long i_nWidth, long i_nHeight )
+void SalDisplay::addXineramaScreenUnique( int i, long i_nX, long i_nY, long i_nWidth, long i_nHeight )
 {
     // see if any frame buffers are at the same coordinates
     // this can happen with weird configuration e.g. on
@@ -2612,10 +2610,12 @@
                 m_aXineramaScreens[n].GetHeight() < i_nHeight )
             {
                 m_aXineramaScreens[n].SetSize( Size( i_nWidth, i_nHeight ) );
+                m_aXineramaScreenIndexMap[i] = n;
             }
             return;
         }
     }
+    m_aXineramaScreenIndexMap[i] = m_aXineramaScreens.size();
     m_aXineramaScreens.push_back( Rectangle( Point( i_nX, i_nY ), Size( i_nWidth, i_nHeight ) ) );
 }
 
@@ -2641,16 +2641,16 @@
         if( result > 0 && nFramebuffers > 1 )
         {
             m_bXinerama = true;
-            m_aXineramaScreens = std::vector<Rectangle>( nFramebuffers );
+            m_aXineramaScreens = std::vector<Rectangle>();
+            m_aXineramaScreenIndexMap = std::vector<int>(nFramebuffers);
             for( int i = 0; i < nFramebuffers; i++ )
-                addXineramaScreenUnique( pFramebuffers[i].x,
+                addXineramaScreenUnique( i, pFramebuffers[i].x,
                                          pFramebuffers[i].y,
                                          pFramebuffers[i].width,
                                          pFramebuffers[i].height );
         }
     }
 #elif defined(USE_XINERAMA_XORG)
-#if defined( X86 ) || defined( X86_64 )
 if( XineramaIsActive( pDisp_ ) )
 {
     int nFramebuffers = 1;
@@ -2660,9 +2660,10 @@
         if( nFramebuffers > 1 )
         {
             m_aXineramaScreens = std::vector<Rectangle>();
+            m_aXineramaScreenIndexMap = std::vector<int>(nFramebuffers);
             for( int i = 0; i < nFramebuffers; i++ )
             {
-                addXineramaScreenUnique( pScreens[i].x_org,
+                addXineramaScreenUnique( i, pScreens[i].x_org,
                                          pScreens[i].y_org,
                                          pScreens[i].width,
                                          pScreens[i].height );
@@ -2673,7 +2674,6 @@
     }
 }
 #endif
-#endif
 #if OSL_DEBUG_LEVEL > 1
     if( m_bXinerama )
     {
@@ -2684,6 +2684,11 @@
 #endif // USE_XINERAMA
 }
 
+int SalDisplay::GetDefaultMonitorNumber() const
+{
+    return 0;
+}
+
 void SalDisplay::registerFrame( SalFrame* pFrame )
 {
     m_aFrames.push_front( pFrame );
diff -ru vcl.orig/unx/source/app/salsys.cxx vcl/unx/source/app/salsys.cxx
--- vcl.orig/unx/source/app/salsys.cxx	2010-06-14 19:51:39.515799413 +0100
+++ vcl/unx/source/app/salsys.cxx	2010-06-14 20:28:14.281799292 +0100
@@ -74,7 +74,7 @@
 unsigned int X11SalSystem::GetDefaultDisplayNumber()
 {
     SalDisplay* pSalDisp = GetX11SalData()->GetDisplay();
-    return pSalDisp->GetDefaultScreenNumber();
+    return  pSalDisp->IsXinerama() ? pSalDisp->GetDefaultMonitorNumber() : pSalDisp->GetDefaultScreenNumber();
 }
 
 Rectangle X11SalSystem::GetDisplayScreenPosSizePixel( unsigned int nScreen )


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.2250
retrieving revision 1.2251
diff -u -p -r1.2250 -r1.2251
--- openoffice.org.spec	18 Jun 2010 14:45:24 -0000	1.2250
+++ openoffice.org.spec	21 Jun 2010 08:42:17 -0000	1.2251
@@ -1,6 +1,6 @@
 %define oootag OOO320
 %define ooomilestone 19
-%define rh_rpm_release 15
+%define rh_rpm_release 16
 
 # rhbz#465664 jar-repacking breaks help by reordering META-INF/MANIFEST.MF
 %define __jar_repack %{nil}
@@ -59,7 +59,7 @@ BuildRequires:  neon-devel, libcurl-deve
 BuildRequires:  libXext-devel, libXt-devel, libICE-devel, libjpeg-devel, make
 BuildRequires:  gecko-devel, libwpd-devel, hunspell-devel, unixODBC-devel
 BuildRequires:  db4-devel, sane-backends-devel, libicu-devel, perl-Archive-Zip
-BuildRequires:  freetype-devel, gtk2-devel, desktop-file-utils, hyphen-devel
+BuildRequires:  freetype-devel, gtk3-devel, desktop-file-utils, hyphen-devel
 BuildRequires:  evolution-data-server-devel, libtextcat-devel, nss-devel
 BuildRequires:  gstreamer-devel, gstreamer-plugins-base-devel, openssl-devel
 BuildRequires:  lpsolve-devel, hsqldb, bsh, lucene, lucene-contrib
@@ -151,7 +151,7 @@ Patch80: workspace.vcl113.patch
 Patch81: openoffice.org-3.3.0.ooo112363.accessibility.badindex.patch
 Patch82: openoffice.org-3.3.0.ooo112384.sw.export.doc.styledoesntexist.patch
 Patch83: workspace.gtkfpicker9.patch
-Patch84: openoffice.org-3.3.0.ooo112421.vcl.defaultmonitor.patch
+Patch84: workspace.gtk3.patch
 Patch85: openoffice.org-3.3.0.ooo112516.sw.avoid.divbyzero.patch
 
 %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
@@ -190,10 +190,10 @@ Requires: liberation-sans-fonts >= 1.0, 
 Requires: dejavu-sans-fonts, dejavu-serif-fonts, dejavu-sans-mono-fonts
 Requires: hunspell-en, hyphen-en, hyphen >= 2.4, autocorr-en
 Requires: lucene
-Requires(pre):    gtk2 >= 2.9.4
-Requires(post):   gtk2 >= 2.9.4
-Requires(preun):  gtk2 >= 2.9.4
-Requires(postun): gtk2 >= 2.9.4
+Requires(pre):    gtk3 >= 2.9.4
+Requires(post):   gtk3 >= 2.9.4
+Requires(preun):  gtk3 >= 2.9.4
+Requires(postun): gtk3 >= 2.9.4
 Obsoletes: openoffice.org < 1.9.0
 Obsoletes: openoffice.org-libs < 1.9.0
 Obsoletes: openoffice.org-i18n < 1.9.0
@@ -1717,7 +1717,7 @@ cp -p %{SOURCE5} external/unowinreg/unow
 %patch81 -p0 -b .ooo112363.accessibility.badindex.patch
 %patch82 -p0 -b .ooo112384.sw.export.doc.styledoesntexist.patch
 %patch83 -p0 -b .workspace.gtkfpicker9.patch
-%patch84 -p0 -b .ooo112421.vcl.defaultmonitor.patch
+%patch84 -p0 -b .workspace.gtk3.patch
 %patch85 -p0 -b .ooo112516.sw.avoid.divbyzero.patch
 
 %build
@@ -4212,6 +4212,9 @@ fi
 %endif
 
 %changelog
+* Mon Jun 21 2010 Caolán McNamara <caolanm at redhat.com> - 1:3.2.1-19.16
+- Build against gtk3
+
 * Fri Jun 18 2010 Caolán McNamara <caolanm at redhat.com> - 1:3.2.1-19.15
 - Resolves: rhbz#605594 openoffice.org-3.3.0.ooo112516.sw.avoid.divbyzero.patch
 


--- openoffice.org-3.3.0.ooo112421.vcl.defaultmonitor.patch DELETED ---



More information about the scm-commits mailing list