rpms/eclipse/devel eclipse-gtk2.18zorder.patch, NONE, 1.1 eclipse.spec, 1.673, 1.674

Andrew Overholt overholt at fedoraproject.org
Wed Oct 7 19:59:11 UTC 2009


Author: overholt

Update of /cvs/pkgs/rpms/eclipse/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16859

Modified Files:
	eclipse.spec 
Added Files:
	eclipse-gtk2.18zorder.patch 
Log Message:
* Wed Oct 07 2009 Andrew Overholt <overholt at redhat.com> 1:3.5.1-3
- Add patch for bugs.eclipse.org/287307

eclipse-gtk2.18zorder.patch:
 Eclipse SWT PI/gtk/library/os.c                         |   18 ++++
 Eclipse SWT PI/gtk/library/os_custom.h                  |    1 
 Eclipse SWT PI/gtk/library/os_stats.c                   |    7 +
 Eclipse SWT PI/gtk/library/os_stats.h                   |    1 
 Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java |   15 +++
 Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java    |   61 +++++++---------
 6 files changed, 69 insertions(+), 34 deletions(-)

--- NEW FILE eclipse-gtk2.18zorder.patch ---
### Eclipse Workspace Patch 1.0
#P org.eclipse.swt
Index: Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java,v
retrieving revision 1.380.2.1
diff -u -r1.380.2.1 Control.java
--- Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java	7 Aug 2009 18:50:38 -0000	1.380.2.1
+++ Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java	30 Sep 2009 16:19:55 -0000
@@ -3332,6 +3332,30 @@
 	region = null;
 }
 
+void restackWindow (int /*long*/ window, int /*long*/ sibling, boolean above) {
+	    if (OS.GTK_VERSION >= OS.VERSION (2, 17, 11)) {
+	    	OS.gdk_window_restack (window, sibling, above);
+	    } else {
+	    	/*
+			* Feature in X. If the receiver is a top level, XConfigureWindow ()
+			* will fail (with a BadMatch error) for top level shells because top
+			* level shells are reparented by the window manager and do not share
+			* the same X window parent.  This is the correct behavior but it is
+			* unexpected.  The fix is to use XReconfigureWMWindow () instead.
+			* When the receiver is not a top level shell, XReconfigureWMWindow ()
+			* behaves the same as XConfigureWindow ().
+			*/
+			int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (window);
+			int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (window);
+			int xScreen = OS.XDefaultScreen (xDisplay);
+			int flags = OS.CWStackMode | OS.CWSibling;			
+			XWindowChanges changes = new XWindowChanges ();
+			changes.sibling = OS.gdk_x11_drawable_get_xid (sibling);
+			changes.stack_mode = above ? OS.Above : OS.Below;
+			OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
+	    }
+	}
+
 boolean sendDragEvent (int button, int stateMask, int x, int y, boolean isStateMask) {
 	Event event = new Event ();
 	event.button = button;
@@ -3682,15 +3706,7 @@
 			if (!OS.GDK_WINDOWING_X11 ()) {
 				OS.gdk_window_raise (enableWindow);
 			} else {
-				int /*long*/ topWindow = OS.GTK_WIDGET_WINDOW (topHandle);			
-				int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (topWindow);
-				int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (enableWindow);
-				int xScreen = OS.XDefaultScreen (xDisplay);
-				int flags = OS.CWStackMode | OS.CWSibling;			
-				XWindowChanges changes = new XWindowChanges ();
-				changes.sibling = OS.gdk_x11_drawable_get_xid (topWindow);
-				changes.stack_mode = OS.Above;
-				OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
+				restackWindow (enableWindow, OS.GTK_WIDGET_WINDOW (topHandle), true);
 			}
 			if (OS.GTK_WIDGET_VISIBLE (topHandle)) OS.gdk_window_show_unraised (enableWindow);
 		}
@@ -4170,29 +4186,12 @@
 				OS.gdk_window_lower (window);
 			}
 		} else {
-			XWindowChanges changes = new XWindowChanges ();
-			changes.sibling = OS.gdk_x11_drawable_get_xid (siblingWindow != 0 ? siblingWindow : redrawWindow);
-			changes.stack_mode = above ? OS.Above : OS.Below;
-			if (redrawWindow != 0 && siblingWindow == 0) changes.stack_mode = OS.Below;
-			int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (window);
-			int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (window);
-			int xScreen = OS.XDefaultScreen (xDisplay);
-			int flags = OS.CWStackMode | OS.CWSibling;
-			/*
-			* Feature in X. If the receiver is a top level, XConfigureWindow ()
-			* will fail (with a BadMatch error) for top level shells because top
-			* level shells are reparented by the window manager and do not share
-			* the same X window parent.  This is the correct behavior but it is
-			* unexpected.  The fix is to use XReconfigureWMWindow () instead.
-			* When the receiver is not a top level shell, XReconfigureWMWindow ()
-			* behaves the same as XConfigureWindow ().
-			*/
-			OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);			
+			int /*long*/ siblingW = siblingWindow != 0 ? siblingWindow : redrawWindow;
+			boolean stack_mode = above;
+			if (redrawWindow != 0 && siblingWindow == 0) stack_mode = false;
+			restackWindow (window, siblingW, stack_mode);
 			if (enableWindow != 0) {
-				changes.sibling = OS.gdk_x11_drawable_get_xid (window);
-				changes.stack_mode = OS.Above;
-				xWindow = OS.gdk_x11_drawable_get_xid (enableWindow);
-				OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
+				 restackWindow (enableWindow, window, true);
 			}
 		}
 	}
Index: Eclipse SWT PI/gtk/library/os_stats.h
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h,v
retrieving revision 1.180
diff -u -r1.180 os_stats.h
--- Eclipse SWT PI/gtk/library/os_stats.h	29 May 2009 21:30:13 -0000	1.180
+++ Eclipse SWT PI/gtk/library/os_stats.h	30 Sep 2009 16:19:54 -0000
@@ -511,6 +511,7 @@
 	_1gdk_1window_1raise_FUNC,
 	_1gdk_1window_1remove_1filter_FUNC,
 	_1gdk_1window_1resize_FUNC,
+	_1gdk_1window_1restack_FUNC,
 	_1gdk_1window_1scroll_FUNC,
 	_1gdk_1window_1set_1accept_1focus_FUNC,
 	_1gdk_1window_1set_1back_1pixmap_FUNC,
Index: Eclipse SWT PI/gtk/library/os_custom.h
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h,v
retrieving revision 1.80
diff -u -r1.80 os_custom.h
--- Eclipse SWT PI/gtk/library/os_custom.h	29 May 2009 21:30:14 -0000	1.80
+++ Eclipse SWT PI/gtk/library/os_custom.h	30 Sep 2009 16:19:54 -0000
@@ -112,6 +112,7 @@
 #define gtk_status_icon_set_tooltip_LIB "libgtk-x11-2.0.so.0"
 #define gtk_window_get_group_LIB "libgtk-x11-2.0.so.0"
 #define gtk_window_get_opacity_LIB "libgtk-x11-2.0.so.0"
+#define gdk_window_restack_LIB "libgdk-x11-2.0.so.0"
 #define gdk_window_set_keep_above_LIB "libgdk-x11-2.0.so.0"
 #define gdk_window_set_accept_focus_LIB "libgdk-x11-2.0.so.0"
 #define gtk_window_set_opacity_LIB "libgtk-x11-2.0.so.0"
Index: Eclipse SWT PI/gtk/library/os_stats.c
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c,v
retrieving revision 1.180
diff -u -r1.180 os_stats.c
--- Eclipse SWT PI/gtk/library/os_stats.c	29 May 2009 21:30:13 -0000	1.180
+++ Eclipse SWT PI/gtk/library/os_stats.c	30 Sep 2009 16:19:54 -0000
@@ -8,7 +8,7 @@
  * the LGPL accompanying this distribution and there is any conflict
  * between the two license versions, the terms of the LGPL accompanying
  * this distribution shall govern.
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,8 +18,8 @@
 
 #ifdef NATIVE_STATS
 
-int OS_nativeFunctionCount = 1291;
-int OS_nativeFunctionCallCount[1291];
+int OS_nativeFunctionCount = 1292;
+int OS_nativeFunctionCallCount[1292];
 char * OS_nativeFunctionNames[] = {
 #ifndef JNI64
 	"Call__IIII",
@@ -503,6 +503,7 @@
 	"_1gdk_1window_1raise",
 	"_1gdk_1window_1remove_1filter",
 	"_1gdk_1window_1resize",
+	"_1gdk_1window_1restack",
 	"_1gdk_1window_1scroll",
 	"_1gdk_1window_1set_1accept_1focus",
 	"_1gdk_1window_1set_1back_1pixmap",
Index: Eclipse SWT PI/gtk/library/os.c
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c,v
retrieving revision 1.272
diff -u -r1.272 os.c
--- Eclipse SWT PI/gtk/library/os.c	29 May 2009 21:30:14 -0000	1.272
+++ Eclipse SWT PI/gtk/library/os.c	30 Sep 2009 16:19:54 -0000
@@ -5944,6 +5944,24 @@
 }
 #endif
 
+#ifndef NO__1gdk_1window_1restack
+JNIEXPORT void JNICALL OS_NATIVE(_1gdk_1window_1restack)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jboolean arg2)
+{
+	OS_NATIVE_ENTER(env, that, _1gdk_1window_1restack_FUNC);
+/*
+	gdk_window_restack((GdkWindow *)arg0, (GdkWindow *)arg1, (gboolean)arg2);
+*/
+	{
+		LOAD_FUNCTION(fp, gdk_window_restack)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(GdkWindow *, GdkWindow *, gboolean))fp)((GdkWindow *)arg0, (GdkWindow *)arg1, (gboolean)arg2);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gdk_1window_1restack_FUNC);
+}
+#endif
+
 #ifndef NO__1gdk_1window_1scroll
 JNIEXPORT void JNICALL OS_NATIVE(_1gdk_1window_1scroll)
 	(JNIEnv *env, jclass that, jintLong arg0, jint arg1, jint arg2)
Index: Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java,v
retrieving revision 1.525.2.1
diff -u -r1.525.2.1 OS.java
--- Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	20 Aug 2009 19:16:37 -0000	1.525.2.1
+++ Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	30 Sep 2009 16:19:55 -0000
@@ -4887,6 +4887,21 @@
 		lock.unlock();
 	}
 }
+/** 
+ * @method flags=dynamic
+ * @param window cast=(GdkWindow *)
+ * @param sibling cast=(GdkWindow *)
+ * @param above cast=(gboolean)
+ */
+public static final native void _gdk_window_restack(int /*long*/ window, int /*long*/ sibling, boolean above);
+public static final void gdk_window_restack(int /*long*/ window, int /*long*/ sibling, boolean above) {
+	lock.lock();
+	try {
+		_gdk_window_restack(window, sibling, above);
+	} finally {
+		lock.unlock();
+	}
+}
 /** @param window cast=(GdkWindow *) */
 public static final native void _gdk_window_scroll(int /*long*/ window, int dx, int dy);
 public static final void gdk_window_scroll(int /*long*/ window, int dx, int dy) {


Index: eclipse.spec
===================================================================
RCS file: /cvs/pkgs/rpms/eclipse/devel/eclipse.spec,v
retrieving revision 1.673
retrieving revision 1.674
diff -u -p -r1.673 -r1.674
--- eclipse.spec	5 Oct 2009 08:41:33 -0000	1.673
+++ eclipse.spec	7 Oct 2009 19:59:11 -0000	1.674
@@ -30,7 +30,7 @@ Epoch:  1
 Summary:        An open, extensible IDE
 Name:           eclipse
 Version:        %{eclipse_majmin}.%{eclipse_micro}
-Release:        2%{?dist}
+Release:        3%{?dist}
 License:        EPL
 Group:          Text Editors/Integrated Development Environments (IDE)
 URL:            http://www.eclipse.org/
@@ -73,6 +73,10 @@ Patch6:        %{name}-target-platform-t
 # Already applied in eclipse-build upstream rev. #23023
 Patch7:        %{name}-addusrsharedropins.patch
 
+# https://bugs.eclipse.org/bugs/show_bug.cgi?id=287307
+# Already applied in eclipse-build upstream
+Patch8:        %{name}-gtk2.18zorder.patch
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  ant
 BuildRequires:  jpackage-utils >= 0:1.5, make, gcc
@@ -526,6 +530,10 @@ popd
 %patch7 -p0
 popd
 
+pushd build/eclipse-R3_5_1-fetched-src/plugins/org.eclipse.swt
+%patch8 -p0
+popd
+
 %build
 ORIGCLASSPATH=$CLASSPATH
 export JAVA_HOME=%{java_home}
@@ -1294,6 +1302,9 @@ fi
 #%{_libdir}/%{name}/configuration/org.eclipse.equinox.source
 
 %changelog
+* Wed Oct 07 2009 Andrew Overholt <overholt at redhat.com> 1:3.5.1-3
+- Add patch for bugs.eclipse.org/287307
+
 * Mon Oct 5 2009 Alexander Kurtakov <akurtako at redhat.com> 1:3.5.1-2
 - Add /usr/share/eclipse/dropins to dropins locations.
 




More information about the fedora-extras-commits mailing list