* 006_proper-directfb-modules.patch: removed from the package, it

won’t be necessary anymore.
* 001_static-linking-dont-query-immodules.patch,
  002_static-linking-dont-build-perf.patch,
  003_gdk.pc_privates.patch,
  004_gtk+-ximian-gtk2-filesel-navbutton-5.patch: refreshed.
* Remove 071_correct_directfb_declarations.patch, and replace it by 
  032_gdkwindowimpl_directfb.patch, a patch from Sven Neumann to 
  (hopefully) fix DirectFB support for GTK+ 2.14.
This commit is contained in:
Josselin Mouette
2009-02-17 22:20:05 +00:00
parent 365a54c50f
commit 98af90cfae
9 changed files with 744 additions and 374 deletions

13
debian/changelog vendored
View File

@ -1,11 +1,20 @@
gtk+2.0 (2.14.7-2) UNRELEASED; urgency=low
gtk+2.0 (2.14.7-2) experimental; urgency=low
* 008_implicit_pointer_conversion_gdkgc_directfb.patch: removed, its
obsolete and just defines the same macro a second time.
* 007_implicit_pointer_conversion_gdkdrawable_directfb.patch: removed,
its not needed anymore with the latest directfb.
* 006_proper-directfb-modules.patch: removed from the package, it
wont be necessary anymore.
* 001_static-linking-dont-query-immodules.patch,
002_static-linking-dont-build-perf.patch,
003_gdk.pc_privates.patch,
004_gtk+-ximian-gtk2-filesel-navbutton-5.patch: refreshed.
* Remove 071_correct_directfb_declarations.patch, and replace it by
032_gdkwindowimpl_directfb.patch, a patch from Sven Neumann to
(hopefully) fix DirectFB support for GTK+ 2.14.
-- Josselin Mouette <joss@debian.org> Mon, 16 Feb 2009 19:44:27 +0100
-- Josselin Mouette <joss@debian.org> Tue, 17 Feb 2009 23:17:56 +0100
gtk+2.0 (2.14.7-1) experimental; urgency=low

View File

@ -1,8 +1,8 @@
Index: gtk+2.0-2.11.5/configure.in
Index: gtk+-2.14.7/configure.in
===================================================================
--- gtk+2.0-2.11.5.orig/configure.in 2007-07-02 17:04:27.000000000 +0200
+++ gtk+2.0-2.11.5/configure.in 2007-07-03 11:34:03.000000000 +0200
@@ -134,6 +134,7 @@
--- gtk+-2.14.7.orig/configure.in 2009-01-07 17:33:57.000000000 +0100
+++ gtk+-2.14.7/configure.in 2009-02-17 23:06:24.718714576 +0100
@@ -152,6 +152,7 @@ esac
dnl Initialize libtool
AC_PROG_CC
AM_DISABLE_STATIC
@ -10,11 +10,11 @@ Index: gtk+2.0-2.11.5/configure.in
dnl
dnl Check for a working C++ compiler, but do not bail out, if none is found.
Index: gtk+2.0-2.11.5/modules/input/Makefile.am
Index: gtk+-2.14.7/modules/input/Makefile.am
===================================================================
--- gtk+2.0-2.11.5.orig/modules/input/Makefile.am 2007-07-02 17:04:10.000000000 +0200
+++ gtk+2.0-2.11.5/modules/input/Makefile.am 2007-07-03 11:34:03.000000000 +0200
@@ -106,8 +106,12 @@
--- gtk+-2.14.7.orig/modules/input/Makefile.am 2009-01-07 17:33:31.000000000 +0100
+++ gtk+-2.14.7/modules/input/Makefile.am 2009-02-17 23:06:24.731083956 +0100
@@ -178,8 +178,12 @@ dist_imconffile_DATA = im-multipress.con
if CROSS_COMPILING
RUN_QUERY_IMMODULES_TEST=false
else
@ -27,8 +27,8 @@ Index: gtk+2.0-2.11.5/modules/input/Makefile.am
# Running this if cross compiling or if DESTDIR is set is going to
# not work at all, so skip it.
@@ -148,7 +152,18 @@
$(IM_IME_MODULE)
@@ -240,7 +244,18 @@ noinst_LTLIBRARIES = \
included-modules: $(noinst_LTLIBRARIES)
gtk.immodules: Makefile.am $(module_LTLIBRARIES)
- $(top_builddir)/gtk/gtk-query-immodules-2.0 $(module_LTLIBRARIES) > gtk.immodules

View File

@ -1,9 +1,10 @@
Index: gtk+2.0-2.10.10/Makefile.am
Index: gtk+-2.14.7/Makefile.am
===================================================================
--- gtk+2.0-2.10.10.orig/Makefile.am 2007-03-12 15:12:11.000000000 +0100
+++ gtk+2.0-2.10.10/Makefile.am 2007-03-13 14:10:07.000000000 +0100
@@ -1,6 +1,11 @@
--- gtk+-2.14.7.orig/Makefile.am 2009-01-07 17:33:57.000000000 +0100
+++ gtk+-2.14.7/Makefile.am 2009-02-17 23:07:14.895082593 +0100
@@ -1,7 +1,12 @@
## Makefile.am for GTK+
include $(top_srcdir)/Makefile.decl
-SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
+# don't build perf measurement tools in static builds

View File

@ -1,10 +1,10 @@
Index: gtk+-2.12.1/configure.in
Index: gtk+-2.14.7/configure.in
===================================================================
--- gtk+-2.12.1.orig/configure.in 2007-11-18 00:51:06.548600130 +0100
+++ gtk+-2.12.1/configure.in 2007-11-18 01:06:06.279872893 +0100
@@ -1459,21 +1459,23 @@ LDFLAGS="$saved_ldflags"
--- gtk+-2.14.7.orig/configure.in 2009-02-17 23:06:24.718714576 +0100
+++ gtk+-2.14.7/configure.in 2009-02-17 23:07:30.398582828 +0100
@@ -1680,21 +1680,23 @@ LDFLAGS="$saved_ldflags"
GDK_PACKAGES="$PANGO_PACKAGES"
GDK_PACKAGES="$PANGO_PACKAGES gio-2.0"
if test "x$gdktarget" = "xx11"; then
- GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
+ GDK_PRIVATE_PACKAGES="$X_PACKAGES"
@ -30,12 +30,12 @@ Index: gtk+-2.12.1/configure.in
AC_SUBST(GDK_EXTRA_LIBS)
AC_SUBST(GDK_EXTRA_CFLAGS)
AC_SUBST(GDK_DEP_LIBS)
Index: gtk+-2.12.1/gdk-2.0.pc.in
Index: gtk+-2.14.7/gdk-2.0.pc.in
===================================================================
--- gtk+-2.12.1.orig/gdk-2.0.pc.in 2007-11-17 23:53:16.038827049 +0100
+++ gtk+-2.12.1/gdk-2.0.pc.in 2007-11-18 01:06:30.821271428 +0100
--- gtk+-2.14.7.orig/gdk-2.0.pc.in 2009-01-07 17:33:57.000000000 +0100
+++ gtk+-2.14.7/gdk-2.0.pc.in 2009-02-17 23:07:30.402582917 +0100
@@ -8,5 +8,6 @@ Name: GDK
Description: GIMP Drawing Kit (${target} target)
Description: GTK+ Drawing Kit (${target} target)
Version: @VERSION@
Requires: gdk-pixbuf-2.0 @GDK_PACKAGES@
+Requires.private: @GDK_PRIVATE_PACKAGES@

View File

@ -1,9 +1,9 @@
Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
Index: gtk+-2.14.7/gtk/gtkfilesel.c
===================================================================
--- gtk+2.0-2.10.10.orig/gtk/gtkfilesel.c 2007-03-12 14:51:01.000000000 +0100
+++ gtk+2.0-2.10.10/gtk/gtkfilesel.c 2007-03-13 14:10:10.000000000 +0100
@@ -79,9 +79,13 @@
#undef GTK_DISABLE_DEPRECATED
--- gtk+-2.14.7.orig/gtk/gtkfilesel.c 2009-01-07 17:32:57.000000000 +0100
+++ gtk+-2.14.7/gtk/gtkfilesel.c 2009-02-17 23:07:34.883084908 +0100
@@ -80,9 +80,13 @@
#include "gtkeventbox.h"
#include "gtkoptionmenu.h"
+#include "gtkimage.h"
@ -16,7 +16,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
#include "gtkalias.h"
#ifdef G_OS_WIN32
@@ -317,6 +321,9 @@
@@ -318,6 +322,9 @@ static gint cmpl_last_val
*/
static gchar* cmpl_completion_fullname (const gchar*, CompletionState* cmpl_state);
@ -26,7 +26,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
/* Directory operations. */
static CompletionDir* open_ref_dir (gchar* text_to_complete,
@@ -626,6 +633,10 @@
@@ -627,6 +634,10 @@ gtk_file_selection_init (GtkFileSelectio
GtkWidget *spacer;
GtkDialog *dialog;
@ -37,7 +37,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
GtkListStore *model;
GtkTreeViewColumn *column;
@@ -639,18 +650,9 @@
@@ -640,18 +651,9 @@ gtk_file_selection_init (GtkFileSelectio
filesel->main_vbox = dialog->vbox;
gtk_container_set_border_width (GTK_CONTAINER (filesel), 10);
@ -57,7 +57,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
gtk_box_pack_start (GTK_BOX (filesel->main_vbox), pulldown_hbox, FALSE, FALSE, 0);
gtk_widget_show (pulldown_hbox);
@@ -662,14 +664,27 @@
@@ -663,14 +665,27 @@ gtk_file_selection_init (GtkFileSelectio
/* The horizontal box containing the directory and file listboxes */
@ -87,7 +87,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
if (WANT_HPANED)
list_container = g_object_new (GTK_TYPE_HPANED,
"visible", TRUE,
@@ -681,9 +696,78 @@
@@ -682,9 +697,78 @@ gtk_file_selection_init (GtkFileSelectio
spacer = gtk_hbox_new (FALSE, 0);
gtk_widget_set_size_request (spacer, -1, 5);
@ -167,7 +167,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
/* The directories list */
model = gtk_list_store_new (1, G_TYPE_STRING);
@@ -756,6 +840,15 @@
@@ -757,6 +841,15 @@ gtk_file_selection_init (GtkFileSelectio
gtk_widget_show (filesel->file_list);
gtk_widget_show (scrolled_win);
@ -183,7 +183,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
/* action area for packing buttons into. */
filesel->action_area = gtk_hbox_new (TRUE, 0);
gtk_box_pack_start (GTK_BOX (filesel->main_vbox), filesel->action_area,
@@ -1071,39 +1164,94 @@
@@ -1012,39 +1105,94 @@ gtk_file_selection_new (const gchar *tit
void
gtk_file_selection_show_fileop_buttons (GtkFileSelection *filesel)
{
@ -292,7 +292,7 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
gtk_widget_show (filesel->fileop_ren_file);
}
@@ -1805,6 +1953,95 @@
@@ -1746,6 +1894,95 @@ gtk_file_selection_update_fileops (GtkFi
gtk_widget_set_sensitive (fs->fileop_ren_file, sensitive);
}
@ -388,10 +388,10 @@ Index: gtk+2.0-2.10.10/gtk/gtkfilesel.c
static gint
gtk_file_selection_key_press (GtkWidget *widget,
GdkEventKey *event,
Index: gtk+2.0-2.10.10/gtk/stock-icons/ximian-icons.h
Index: gtk+-2.14.7/gtk/stock-icons/ximian-icons.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gtk+2.0-2.10.10/gtk/stock-icons/ximian-icons.h 2007-03-13 14:10:10.000000000 +0100
+++ gtk+-2.14.7/gtk/stock-icons/ximian-icons.h 2009-02-17 23:07:34.887082553 +0100
@@ -0,0 +1,825 @@
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+

View File

@ -1,32 +0,0 @@
--- gtk+2.0.old/configure.in.orig 2008-09-23 16:50:57.000000000 -0300
+++ gtk+2.0/configure.in 2008-09-24 19:17:53.000000000 -0300
@@ -1625,8 +1625,18 @@
if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then
AC_MSG_RESULT(found)
- GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb` $GDK_EXTRA_CFLAGS"
- GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb` $GDK_EXTRA_LIBS"
+ # prepend cairo-directfb so that cairo-directfb's CFLAGS appear before
+ # cairo's if both are available (cairo is required by pango); this is
+ # enough to build gdk/
+ GDK_PACKAGES="cairo-directfb directfb $GDK_PACKAGES"
+ # you'd think this isn't needed, but as soon as cairo-directfb or
+ # directfb requires a "rpath" and you want to build binaries (for
+ # example gtk-query-immodules), you need the CFLAGS and LDFLAGS
+ # everywhere; this trick abuses the fact that GTK_DEP_LIBS and
+ # GTK_DEP_CFLAGS include the GDK_EXTRA_LIBS and _FLAGS to pull the
+ # necessary rpath flags
+ GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb directfb`"
+ GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb directfb` $GDK_EXTRA_LIBS"
else
AC_MSG_ERROR([
*** DirectFB $DIRECTFB_REQUIRED_VERSION or newer and the cairo backend
@@ -1678,7 +1688,7 @@
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"
-GDK_PACKAGES="$PANGO_PACKAGES gio-2.0"
+GDK_PACKAGES="$GDK_PACKAGES $PANGO_PACKAGES gio-2.0"
if test "x$gdktarget" = "xx11"; then
GDK_PRIVATE_PACKAGES="$X_PACKAGES"
fi

View File

@ -0,0 +1,693 @@
Patch from Sven Neumann to fix DirectFB support for GTK+ 2.14.
Based on the original Ubuntu patch for 2.12.
Index: gtk+-2.14.7/gdk/directfb/gdkgeometry-directfb.c
===================================================================
--- gtk+-2.14.7.orig/gdk/directfb/gdkgeometry-directfb.c 2009-01-07 17:33:47.000000000 +0100
+++ gtk+-2.14.7/gdk/directfb/gdkgeometry-directfb.c 2009-02-17 23:13:41.682584286 +0100
@@ -41,9 +41,9 @@
void
-_gdk_windowing_window_get_offsets (GdkWindow *window,
- gint *x_offset,
- gint *y_offset)
+_gdk_directfb_window_get_offsets (GdkWindow *window,
+ gint *x_offset,
+ gint *y_offset)
{
if (x_offset)
*x_offset = 0;
@@ -69,9 +69,9 @@ _gdk_windowing_window_queue_antiexpose (
* brings in from offscreen areas are invalidated.
**/
void
-gdk_window_scroll (GdkWindow *window,
- gint dx,
- gint dy)
+_gdk_directfb_window_scroll (GdkWindow *window,
+ gint dx,
+ gint dy)
{
GdkWindowObject *private;
GdkDrawableImplDirectFB *impl;
@@ -161,10 +161,10 @@ gdk_window_scroll (GdkWindow *window,
* Since: 2.8
**/
void
-gdk_window_move_region (GdkWindow *window,
- const GdkRegion *region,
- gint dx,
- gint dy)
+_gdk_directfb_window_move_region (GdkWindow *window,
+ const GdkRegion *region,
+ gint dx,
+ gint dy)
{
GdkWindowObject *private;
GdkDrawableImplDirectFB *impl;
Index: gtk+-2.14.7/gdk/directfb/gdkwindow-directfb.c
===================================================================
--- gtk+-2.14.7.orig/gdk/directfb/gdkwindow-directfb.c 2009-01-07 17:33:47.000000000 +0100
+++ gtk+-2.14.7/gdk/directfb/gdkwindow-directfb.c 2009-02-17 23:13:41.698583177 +0100
@@ -33,6 +33,7 @@
#include "config.h"
#include "gdk.h"
+#include "gdkwindowimpl.h"
#include "gdkwindow.h"
#include "gdkdirectfb.h"
@@ -67,6 +68,9 @@ static void gdk_window_impl_directfb_ini
static void gdk_window_impl_directfb_class_init (GdkWindowImplDirectFBClass *klass);
static void gdk_window_impl_directfb_finalize (GObject *object);
+static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
+
+
typedef struct
{
GdkWindowChildChanged changed;
@@ -98,9 +102,8 @@ gdk_window_directfb_process_all_updates
tmp_list = old_update_windows;
while (tmp_list)
{
- GdkWindowObject *private = GDK_WINDOW_OBJECT( tmp_list->data );
- GdkWindowImplDirectFB *wimpl = GDK_WINDOW_IMPL_DIRECTFB( private->impl );
-
+ GdkWindowObject *private = GDK_WINDOW_OBJECT( tmp_list->data );
+
if (private->update_freeze_count)
{
D_DEBUG_AT( GDKDFB_Updates, " -> %p frozen [%4d,%4d-%4dx%4d] (%d boxes)\n",
@@ -115,7 +118,7 @@ gdk_window_directfb_process_all_updates
wimpl->flips.num_regions );
gdk_window_process_updates(tmp_list->data,TRUE);
}
-
+
g_object_unref (tmp_list->data);
tmp_list = tmp_list->next;
}
@@ -220,6 +223,13 @@ gdk_window_impl_directfb_get_type (void)
NULL
};
+ const GInterfaceInfo window_impl_info =
+ {
+ (GInterfaceInitFunc) gdk_window_impl_iface_init,
+ NULL,
+ NULL
+ };
+
object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_DIRECTFB,
"GdkWindowImplDirectFB",
&object_info, 0);
@@ -227,6 +237,9 @@ gdk_window_impl_directfb_get_type (void)
GDK_TYPE_PAINTABLE,
&paintable_info);
+ g_type_add_interface_static (object_type,
+ GDK_TYPE_WINDOW_IMPL,
+ &window_impl_info);
}
return object_type;
@@ -406,6 +419,7 @@ _gdk_windowing_window_init (void)
_gdk_parent_root = g_object_new (GDK_TYPE_WINDOW, NULL);
private = GDK_WINDOW_OBJECT (_gdk_parent_root);
+ private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
private->window_type = GDK_WINDOW_ROOT;
@@ -647,8 +661,8 @@ gdk_directfb_window_new (GdkWindow
GdkWindow *
_gdk_window_new (GdkWindow *parent,
- GdkWindowAttr *attributes,
- gint attributes_mask)
+ GdkWindowAttr *attributes,
+ gint attributes_mask)
{
g_return_val_if_fail (attributes != NULL, NULL);
@@ -1230,28 +1244,19 @@ show_window_internal (GdkWindow *window,
}
}
-void
-gdk_window_show_unraised (GdkWindow *window)
-{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", __FUNCTION__, window );
-
- show_window_internal (window, FALSE);
-}
-
-void
-gdk_window_show (GdkWindow *window)
+static void
+gdk_directfb_window_show (GdkWindow *window,
+ gboolean raise)
{
g_return_if_fail (GDK_IS_WINDOW (window));
D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", __FUNCTION__, window );
- show_window_internal (window, TRUE);
+ show_window_internal (window, raise);
}
-void
-gdk_window_hide (GdkWindow *window)
+static void
+gdk_directfb_window_hide (GdkWindow *window)
{
GdkWindowObject *private;
GdkWindowImplDirectFB *impl;
@@ -1276,11 +1281,11 @@ gdk_window_hide (GdkWindow *window)
if (!private->input_only && private->parent)
{
- _gdk_windowing_window_clear_area (GDK_WINDOW (private->parent),
- private->x,
- private->y,
- impl->drawable.width,
- impl->drawable.height);
+ gdk_window_clear_area (GDK_WINDOW (private->parent),
+ private->x,
+ private->y,
+ impl->drawable.width,
+ impl->drawable.height);
}
event_win = gdk_directfb_other_event_window (window, GDK_UNMAP);
@@ -1299,8 +1304,8 @@ gdk_window_hide (GdkWindow *window)
}
}
-void
-gdk_window_withdraw (GdkWindow *window)
+static void
+gdk_directfb_window_withdraw (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1309,80 +1314,6 @@ gdk_window_withdraw (GdkWindow *window)
}
void
-gdk_window_move (GdkWindow *window,
- gint x,
- gint y)
-{
- GdkWindowObject *private;
- GdkWindowImplDirectFB *impl;
-
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- private = GDK_WINDOW_OBJECT (window);
- impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
- if (impl->window)
- {
- private->x = x;
- private->y = y;
- impl->window->MoveTo (impl->window, x, y);
- }
- else
- {
- gint width=impl->drawable.width;
- gint height=impl->drawable.height;
- GdkRectangle old =
- { private->x, private->y,width,height };
-
- _gdk_directfb_move_resize_child (window, x, y, width, height);
- _gdk_directfb_calc_abs (window);
-
- if (GDK_WINDOW_IS_MAPPED (private))
- {
- GdkWindow *mousewin;
- GdkRectangle new = { x, y, width, height };
-
- gdk_rectangle_union (&new, &old, &new);
- gdk_window_invalidate_rect (GDK_WINDOW (private->parent), &new,TRUE);
-
- /* The window the pointer is in might have changed */
- mousewin = gdk_window_at_pointer (NULL, NULL);
- gdk_directfb_window_send_crossing_events (NULL, mousewin,
- GDK_CROSSING_NORMAL);
- }
- }
-}
-
-void
-gdk_window_resize (GdkWindow *window,
- gint width,
- gint height)
-{
- GdkWindowObject *private;
- gint x, y;
-
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- private = GDK_WINDOW_OBJECT (window);
-
- x = private->x;
- y = private->y;
-
- if (private->parent && (private->parent->window_type != GDK_WINDOW_CHILD))
- {
- GdkWindowChildHandlerData *data;
-
- data = g_object_get_data (G_OBJECT (private->parent),
- "gdk-window-child-handler");
-
- if (data)
- (*data->get_pos) (window, &x, &y, data->user_data);
- }
-
- gdk_window_move_resize (window, x, y, width, height);
-}
-
-void
_gdk_directfb_move_resize_child (GdkWindow *window,
gint x,
gint y,
@@ -1439,12 +1370,13 @@ _gdk_directfb_move_resize_child (GdkWind
}
}
-void
-gdk_window_move_resize (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height)
+static void
+gdk_directfb_window_move_resize (GdkWindow *window,
+ gboolean with_move,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
{
GdkWindowObject *private;
GdkWindowImplDirectFB *impl;
@@ -1510,11 +1442,11 @@ gdk_window_move_resize (GdkWindow *windo
}
}
-void
-_gdk_window_reparent (GdkWindow *window,
- GdkWindow *new_parent,
- gint x,
- gint y)
+static gboolean
+gdk_directfb_window_reparent (GdkWindow *window,
+ GdkWindow *new_parent,
+ gint x,
+ gint y)
{
GdkWindowObject *window_private;
GdkWindowObject *parent_private;
@@ -1523,10 +1455,10 @@ _gdk_window_reparent (GdkWindow *window,
GdkWindowImplDirectFB *parent_impl;
GdkVisual *visual;
- g_return_if_fail (GDK_IS_WINDOW (window));
+ g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
if (GDK_WINDOW_DESTROYED (window))
- return;
+ return FALSE;
if (!new_parent)
new_parent = _gdk_parent_root;
@@ -1539,7 +1471,7 @@ _gdk_window_reparent (GdkWindow *window,
/* already parented */
if( window_private->parent == (GdkWindowObject *)new_parent )
- return;
+ return FALSE;
window_private->parent = (GdkWindowObject *) new_parent;
@@ -1593,7 +1525,7 @@ _gdk_window_reparent (GdkWindow *window,
{
g_assert(0);
_gdk_window_destroy (window, FALSE);
- return;
+ return FALSE;
}
/* we hold a reference count on ourselves */
g_object_ref (window);
@@ -1609,14 +1541,17 @@ _gdk_window_reparent (GdkWindow *window,
&rect,
&impl->drawable.surface);
}
+
+ return TRUE;
}
-void
-_gdk_windowing_window_clear_area (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height)
+static void
+gdk_directfb_window_clear_area (GdkWindow *window,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gboolean send_expose)
{
GdkWindowObject *private;
GdkDrawableImplDirectFB *impl;
@@ -1700,51 +1635,8 @@ _gdk_windowing_window_clear_area (GdkWin
g_object_unref (gc);
}
-void
-_gdk_windowing_window_clear_area_e (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height)
-{
- GdkRectangle rect;
- GdkWindowObject *private;
- GdkWindowImplDirectFB *impl;
-
- D_DEBUG_AT( GDKDFB_Window, "%s( %p, %4d,%4d-%4dx%4d )\n", __FUNCTION__, window, x, y, width, height );
-
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- private = GDK_WINDOW_OBJECT (window);
- impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
- /**
- Follow XClearArea definition for zero height width
- **/
- if( width == 0 )
- width = impl->drawable.width-x;
- if( height == 0 )
- height = impl->drawable.height-y;
-
- rect.x = x;
- rect.y = y;
- rect.width = width;
- rect.height = height;
-
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- if (GDK_WINDOW_DESTROYED (window)) {
- D_DEBUG_AT( GDKDFB_Window, " -> DESTROYED!\n" );
- return;
- }
-
- _gdk_windowing_window_clear_area (window, x, y, width, height);
-
- gdk_window_invalidate_rect (window, &rect, TRUE);
-}
-
-void
-gdk_window_raise (GdkWindow *window)
+static void
+gdk_window_directfb_raise (GdkWindow *window)
{
GdkWindowImplDirectFB *impl;
@@ -1774,8 +1666,8 @@ gdk_window_raise (GdkWindow *window)
}
}
-void
-gdk_window_lower (GdkWindow *window)
+static void
+gdk_window_directfb_lower (GdkWindow *window)
{
GdkWindowImplDirectFB *impl;
@@ -1875,9 +1767,9 @@ gdk_window_set_role (GdkWindow *window
* Since: 2.12
*
**/
-void
+void
gdk_window_set_startup_id (GdkWindow *window,
- const gchar *startup_id)
+ const gchar *startup_id)
{
}
@@ -1907,9 +1799,9 @@ gdk_window_set_transient_for (GdkWindow
root->children = g_list_insert (root->children, window, i);
}
-void
-gdk_window_set_background (GdkWindow *window,
- const GdkColor *color)
+static void
+gdk_directfb_window_set_background (GdkWindow *window,
+ const GdkColor *color)
{
GdkWindowObject *private;
@@ -1930,10 +1822,10 @@ gdk_window_set_background (GdkWindow *wi
private->bg_pixmap = NULL;
}
-void
-gdk_window_set_back_pixmap (GdkWindow *window,
- GdkPixmap *pixmap,
- gint parent_relative)
+static void
+gdk_directfb_window_set_back_pixmap (GdkWindow *window,
+ GdkPixmap *pixmap,
+ gboolean parent_relative)
{
GdkWindowObject *private;
GdkPixmap *old_pixmap;
@@ -1972,9 +1864,9 @@ gdk_window_set_back_pixmap (GdkWindow *w
}
}
-void
-gdk_window_set_cursor (GdkWindow *window,
- GdkCursor *cursor)
+static void
+gdk_directfb_window_set_cursor (GdkWindow *window,
+ GdkCursor *cursor)
{
GdkWindowImplDirectFB *impl;
GdkCursor *old_cursor;
@@ -2011,13 +1903,13 @@ gdk_window_set_cursor (GdkWindow *window
gdk_cursor_unref (old_cursor);
}
-void
-gdk_window_get_geometry (GdkWindow *window,
- gint *x,
- gint *y,
- gint *width,
- gint *height,
- gint *depth)
+static void
+gdk_directfb_window_get_geometry (GdkWindow *window,
+ gint *x,
+ gint *y,
+ gint *width,
+ gint *height,
+ gint *depth)
{
GdkWindowObject *private;
GdkDrawableImplDirectFB *impl;
@@ -2078,10 +1970,10 @@ _gdk_directfb_calc_abs (GdkWindow *windo
}
}
-gboolean
-gdk_window_get_origin (GdkWindow *window,
- gint *x,
- gint *y)
+static gboolean
+gdk_directfb_window_get_origin (GdkWindow *window,
+ gint *x,
+ gint *y)
{
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
@@ -2215,8 +2107,8 @@ _gdk_windowing_window_get_pointer (displ
}
-GdkEventMask
-gdk_window_get_events (GdkWindow *window)
+static GdkEventMask
+gdk_directfb_window_get_events (GdkWindow *window)
{
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
@@ -2226,9 +2118,9 @@ gdk_window_get_events (GdkWindow *window
return GDK_WINDOW_OBJECT (window)->event_mask;
}
-void
-gdk_window_set_events (GdkWindow *window,
- GdkEventMask event_mask)
+static void
+gdk_directfb_window_set_events (GdkWindow *window,
+ GdkEventMask event_mask)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -2240,27 +2132,27 @@ gdk_window_set_events (GdkWindow *win
GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
}
-void
-gdk_window_shape_combine_mask (GdkWindow *window,
- GdkBitmap *mask,
- gint x,
- gint y)
+static void
+gdk_directfb_window_shape_combine_mask (GdkWindow *window,
+ GdkBitmap *mask,
+ gint x,
+ gint y)
{
}
void
gdk_window_input_shape_combine_mask (GdkWindow *window,
- GdkBitmap *mask,
- gint x,
- gint y)
+ GdkBitmap *mask,
+ gint x,
+ gint y)
{
}
-void
-gdk_window_shape_combine_region (GdkWindow *window,
- const GdkRegion *shape_region,
- gint offset_x,
- gint offset_y)
+static void
+gdk_directfb_window_shape_combine_region (GdkWindow *window,
+ const GdkRegion *shape_region,
+ gint offset_x,
+ gint offset_y)
{
}
@@ -2584,13 +2476,13 @@ gdk_window_set_functions (GdkWindow
g_message("unimplemented %s", __FUNCTION__);
}
-void
-gdk_window_set_child_shapes (GdkWindow *window)
+static void
+gdk_directfb_window_set_child_shapes (GdkWindow *window)
{
}
-void
-gdk_window_merge_child_shapes (GdkWindow *window)
+static void
+gdk_directfb_window_merge_child_shapes (GdkWindow *window)
{
}
@@ -2604,9 +2496,9 @@ gdk_window_merge_child_input_shapes (Gdk
{
}
-gboolean
-gdk_window_set_static_gravities (GdkWindow *window,
- gboolean use_static)
+static gboolean
+gdk_directfb_window_set_static_gravities (GdkWindow *window,
+ gboolean use_static)
{
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
@@ -3153,11 +3045,11 @@ gdk_window_impl_directfb_begin_paint_reg
D_DEBUG_AT( GDKDFB_Window, " -> [%2d] %4d,%4d-%4dx%4d\n", i, GDKDFB_RECTANGLE_VALS_FROM_BOX( box ) );
- _gdk_windowing_window_clear_area (GDK_WINDOW(wimpl->gdkWindow),
- box->x1,
- box->y1,
- box->x2 - box->x1,
- box->y2 - box->y1);
+ gdk_window_clear_area (GDK_WINDOW(wimpl->gdkWindow),
+ box->x1,
+ box->y1,
+ box->x2 - box->x1,
+ box->y2 - box->y1);
}
}
@@ -3281,6 +3173,33 @@ _gdk_windowing_window_set_composited (Gd
{
}
+static void
+gdk_window_impl_iface_init (GdkWindowImplIface *iface)
+{
+ iface->show = gdk_directfb_window_show;
+ iface->hide = gdk_directfb_window_hide;
+ iface->withdraw = gdk_directfb_window_withdraw;
+ iface->raise = gdk_window_directfb_raise;
+ iface->lower = gdk_window_directfb_lower;
+ iface->move_resize = gdk_directfb_window_move_resize;
+ iface->move_region = _gdk_directfb_window_move_region;
+ iface->scroll = _gdk_directfb_window_scroll;
+ iface->clear_area = gdk_directfb_window_clear_area;
+ iface->set_background = gdk_directfb_window_set_background;
+ iface->set_back_pixmap = gdk_directfb_window_set_back_pixmap;
+ iface->get_events = gdk_directfb_window_get_events;
+ iface->set_events = gdk_directfb_window_set_events;
+ iface->reparent = gdk_directfb_window_reparent;
+ iface->set_cursor = gdk_directfb_window_set_cursor;
+ iface->get_geometry = gdk_directfb_window_get_geometry;
+ iface->get_origin = gdk_directfb_window_get_origin;
+ iface->get_offsets = _gdk_directfb_window_get_offsets;
+ iface->shape_combine_mask = gdk_directfb_window_shape_combine_mask;
+ iface->shape_combine_region = gdk_directfb_window_shape_combine_region;
+ iface->set_child_shapes = gdk_directfb_window_set_child_shapes;
+ iface->merge_child_shapes = gdk_directfb_window_merge_child_shapes;
+ iface->set_static_gravities = gdk_directfb_window_set_static_gravities;
+}
#define __GDK_WINDOW_X11_C__
#include "gdkaliasdef.c"
Index: gtk+-2.14.7/gdk/directfb/gdkprivate-directfb.h
===================================================================
--- gtk+-2.14.7.orig/gdk/directfb/gdkprivate-directfb.h 2009-01-07 17:33:47.000000000 +0100
+++ gtk+-2.14.7/gdk/directfb/gdkprivate-directfb.h 2009-02-17 23:13:41.698583177 +0100
@@ -172,6 +172,17 @@ void gdk_directfb_window_id_table
void gdk_directfb_window_id_table_remove (DFBWindowID dfb_id);
GdkWindow * gdk_directfb_window_id_table_lookup (DFBWindowID dfb_id);
+void _gdk_directfb_window_get_offsets (GdkWindow *window,
+ gint *x_offset,
+ gint *y_offset);
+void _gdk_directfb_window_scroll (GdkWindow *window,
+ gint dx,
+ gint dy);
+void _gdk_directfb_window_move_region (GdkWindow *window,
+ const GdkRegion *region,
+ gint dx,
+ gint dy);
+
typedef struct
{

View File

@ -1,300 +0,0 @@
Index: gtk+2.0-2.14.0/gdk/directfb/gdkgeometry-directfb.c
===================================================================
--- gtk+2.0-2.14.0.orig/gdk/directfb/gdkgeometry-directfb.c 2008-09-04 06:36:10.000000000 +0200
+++ gtk+2.0-2.14.0/gdk/directfb/gdkgeometry-directfb.c 2008-09-05 00:36:42.000000000 +0200
@@ -69,7 +69,7 @@
* brings in from offscreen areas are invalidated.
**/
void
-gdk_window_scroll (GdkWindow *window,
+_gdk_directfb_window_scroll (GdkWindow *window,
gint dx,
gint dy)
{
@@ -161,7 +161,7 @@
* Since: 2.8
**/
void
-gdk_window_move_region (GdkWindow *window,
+_gdk_directfb_window_move_region (GdkWindow *window,
const GdkRegion *region,
gint dx,
gint dy)
Index: gtk+2.0-2.14.0/gdk/directfb/gdkwindow-directfb.c
===================================================================
--- gtk+2.0-2.14.0.orig/gdk/directfb/gdkwindow-directfb.c 2008-09-04 06:36:10.000000000 +0200
+++ gtk+2.0-2.14.0/gdk/directfb/gdkwindow-directfb.c 2008-09-05 00:36:42.000000000 +0200
@@ -33,6 +33,7 @@
#include "config.h"
#include "gdk.h"
+#include "gdkwindowimpl.h"
#include "gdkwindow.h"
#include "gdkdirectfb.h"
@@ -67,6 +68,8 @@
static void gdk_window_impl_directfb_class_init (GdkWindowImplDirectFBClass *klass);
static void gdk_window_impl_directfb_finalize (GObject *object);
+static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
+
typedef struct
{
GdkWindowChildChanged changed;
@@ -220,6 +223,13 @@
NULL
};
+ const GInterfaceInfo window_impl_info =
+ {
+ (GInterfaceInitFunc) gdk_window_impl_iface_init,
+ NULL,
+ NULL
+ };
+
object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_DIRECTFB,
"GdkWindowImplDirectFB",
&object_info, 0);
@@ -227,6 +237,9 @@
GDK_TYPE_PAINTABLE,
&paintable_info);
+ g_type_add_interface_static (object_type,
+ GDK_TYPE_WINDOW_IMPL,
+ &window_impl_info);
}
return object_type;
@@ -406,6 +419,7 @@
_gdk_parent_root = g_object_new (GDK_TYPE_WINDOW, NULL);
private = GDK_WINDOW_OBJECT (_gdk_parent_root);
+ private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
private->window_type = GDK_WINDOW_ROOT;
@@ -1231,7 +1245,7 @@
}
void
-gdk_window_show_unraised (GdkWindow *window)
+gdk_directfb_window_show_unraised (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1241,7 +1255,7 @@
}
void
-gdk_window_show (GdkWindow *window)
+gdk_directfb_window_show (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1251,7 +1265,7 @@
}
void
-gdk_window_hide (GdkWindow *window)
+gdk_directfb_window_hide (GdkWindow *window)
{
GdkWindowObject *private;
GdkWindowImplDirectFB *impl;
@@ -1300,7 +1314,7 @@
}
void
-gdk_window_withdraw (GdkWindow *window)
+gdk_directfb_window_withdraw (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1309,7 +1323,7 @@
}
void
-gdk_window_move (GdkWindow *window,
+gdk_directfb_window_move (GdkWindow *window,
gint x,
gint y)
{
@@ -1354,7 +1368,7 @@
}
void
-gdk_window_resize (GdkWindow *window,
+gdk_directfb_window_resize (GdkWindow *window,
gint width,
gint height)
{
@@ -1440,7 +1454,7 @@
}
void
-gdk_window_move_resize (GdkWindow *window,
+gdk_directfb_window_move_resize (GdkWindow *window,
gint x,
gint y,
gint width,
@@ -1511,7 +1525,7 @@
}
void
-_gdk_window_reparent (GdkWindow *window,
+gdk_directfb_window_reparent (GdkWindow *window,
GdkWindow *new_parent,
gint x,
gint y)
@@ -1744,7 +1758,7 @@
}
void
-gdk_window_raise (GdkWindow *window)
+gdk_window_directfb_raise (GdkWindow *window)
{
GdkWindowImplDirectFB *impl;
@@ -1775,7 +1789,7 @@
}
void
-gdk_window_lower (GdkWindow *window)
+gdk_window_directfb_lower (GdkWindow *window)
{
GdkWindowImplDirectFB *impl;
@@ -1908,7 +1922,7 @@
}
void
-gdk_window_set_background (GdkWindow *window,
+gdk_directfb_window_set_background (GdkWindow *window,
const GdkColor *color)
{
GdkWindowObject *private;
@@ -1931,7 +1945,7 @@
}
void
-gdk_window_set_back_pixmap (GdkWindow *window,
+gdk_directfb_window_set_back_pixmap (GdkWindow *window,
GdkPixmap *pixmap,
gint parent_relative)
{
@@ -1973,7 +1987,7 @@
}
void
-gdk_window_set_cursor (GdkWindow *window,
+gdk_directfb_window_set_cursor (GdkWindow *window,
GdkCursor *cursor)
{
GdkWindowImplDirectFB *impl;
@@ -2012,7 +2026,7 @@
}
void
-gdk_window_get_geometry (GdkWindow *window,
+gdk_directfb_window_get_geometry (GdkWindow *window,
gint *x,
gint *y,
gint *width,
@@ -2079,7 +2093,7 @@
}
gboolean
-gdk_window_get_origin (GdkWindow *window,
+gdk_directfb_window_get_origin (GdkWindow *window,
gint *x,
gint *y)
{
@@ -2216,7 +2230,7 @@
}
GdkEventMask
-gdk_window_get_events (GdkWindow *window)
+gdk_directfb_window_get_events (GdkWindow *window)
{
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
@@ -2227,7 +2241,7 @@
}
void
-gdk_window_set_events (GdkWindow *window,
+gdk_directfb_window_set_events (GdkWindow *window,
GdkEventMask event_mask)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -2241,7 +2255,7 @@
}
void
-gdk_window_shape_combine_mask (GdkWindow *window,
+gdk_directfb_window_shape_combine_mask (GdkWindow *window,
GdkBitmap *mask,
gint x,
gint y)
@@ -2257,7 +2271,7 @@
}
void
-gdk_window_shape_combine_region (GdkWindow *window,
+gdk_directfb_window_shape_combine_region (GdkWindow *window,
const GdkRegion *shape_region,
gint offset_x,
gint offset_y)
@@ -2585,12 +2599,12 @@
}
void
-gdk_window_set_child_shapes (GdkWindow *window)
+gdk_directfb_window_set_child_shapes (GdkWindow *window)
{
}
void
-gdk_window_merge_child_shapes (GdkWindow *window)
+gdk_directfb_window_merge_child_shapes (GdkWindow *window)
{
}
@@ -2605,7 +2619,7 @@
}
gboolean
-gdk_window_set_static_gravities (GdkWindow *window,
+gdk_directfb_window_set_static_gravities (GdkWindow *window,
gboolean use_static)
{
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
@@ -3281,6 +3295,29 @@
{
}
+static void
+gdk_window_impl_iface_init (GdkWindowImplIface *iface)
+{
+ iface->show = gdk_directfb_window_show;
+ iface->hide = gdk_directfb_window_hide;
+ iface->withdraw = gdk_directfb_window_withdraw;
+ iface->set_events = gdk_directfb_window_set_events;
+ iface->get_events = gdk_directfb_window_get_events;
+ iface->raise = gdk_window_directfb_raise;
+ iface->lower = gdk_window_directfb_lower;
+ iface->move_resize = gdk_directfb_window_move_resize;
+ iface->set_background = gdk_directfb_window_set_background;
+ iface->set_back_pixmap = gdk_directfb_window_set_back_pixmap;
+ iface->reparent = gdk_directfb_window_reparent;
+ iface->set_cursor = gdk_directfb_window_set_cursor;
+ iface->get_geometry = gdk_directfb_window_get_geometry;
+ iface->get_origin = gdk_directfb_window_get_origin;
+ iface->shape_combine_mask = gdk_directfb_window_shape_combine_mask;
+ iface->shape_combine_region = gdk_directfb_window_shape_combine_region;
+ iface->set_child_shapes = gdk_directfb_window_set_child_shapes;
+ iface->merge_child_shapes = gdk_directfb_window_merge_child_shapes;
+ iface->set_static_gravities = gdk_directfb_window_set_static_gravities;
+}
#define __GDK_WINDOW_X11_C__
#include "gdkaliasdef.c"

View File

@ -3,7 +3,6 @@
003_gdk.pc_privates.patch
004_gtk+-ximian-gtk2-filesel-navbutton-5.patch
005_xpmico.patch
#006_proper-directfb-modules.patch
009_gtk-export-filechooser.patch
010_gdkpixbuf_-lm.patch
015_default-fallback-icon-theme.patch
@ -12,12 +11,12 @@
022_module-files-append-compat-module-files-d.patch
030_gtkentry_password-char-circle.patch
031_directfb_dead-keys.patch
032_gdkwindowimpl_directfb.patch
041_ia32-libs.patch
042_treeview_single-focus.patch
060_ignore-random-icons.patch
070_mandatory-relibtoolize.patch
071_jasper_link_fix.patch
071_correct_directfb_declarations.patch
072_workaround_directfb_build.patch
091_workaround_no_gtk_init_incorrect_display.patch
092_fix_printtest_include.patch