r18452 - in /desktop/experimental/gtk+2.0/debian: changelog patches/032_gdkwindowimpl_directfb.patch

joss at users.alioth.debian.org joss at users.alioth.debian.org
Wed Feb 18 12:48:49 UTC 2009


Author: joss
Date: Wed Feb 18 12:48:49 2009
New Revision: 18452

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=18452
Log:
032_gdkwindowimpl_directfb.patch: new version of the patch. This 
should restore the basic functionality of the backend, but there is 
still work underway.

Modified:
    desktop/experimental/gtk+2.0/debian/changelog
    desktop/experimental/gtk+2.0/debian/patches/032_gdkwindowimpl_directfb.patch

Modified: desktop/experimental/gtk+2.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gtk%2B2.0/debian/changelog?rev=18452&op=diff
==============================================================================
--- desktop/experimental/gtk+2.0/debian/changelog (original)
+++ desktop/experimental/gtk+2.0/debian/changelog Wed Feb 18 12:48:49 2009
@@ -1,3 +1,11 @@
+gtk+2.0 (2.14.7-3) UNRELEASED; urgency=low
+
+  * 032_gdkwindowimpl_directfb.patch: new version of the patch. This 
+    should restore the basic functionality of the backend, but there is 
+    still work underway.
+
+ -- Josselin Mouette <joss at debian.org>  Wed, 18 Feb 2009 13:47:56 +0100
+
 gtk+2.0 (2.14.7-2) experimental; urgency=low
 
   * 008_implicit_pointer_conversion_gdkgc_directfb.patch: removed, it’s 

Modified: desktop/experimental/gtk+2.0/debian/patches/032_gdkwindowimpl_directfb.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gtk%2B2.0/debian/patches/032_gdkwindowimpl_directfb.patch?rev=18452&op=diff
==============================================================================
--- desktop/experimental/gtk+2.0/debian/patches/032_gdkwindowimpl_directfb.patch (original)
+++ desktop/experimental/gtk+2.0/debian/patches/032_gdkwindowimpl_directfb.patch Wed Feb 18 12:48:49 2009
@@ -3,8 +3,8 @@
 
 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
+--- gtk+-2.14.7.orig/gdk/directfb/gdkgeometry-directfb.c	2009-02-17 23:15:22.211082251 +0100
++++ gtk+-2.14.7/gdk/directfb/gdkgeometry-directfb.c	2009-02-18 13:47:09.751083146 +0100
 @@ -41,9 +41,9 @@
  
  
@@ -48,8 +48,8 @@
    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
+--- gtk+-2.14.7.orig/gdk/directfb/gdkwindow-directfb.c	2009-02-17 23:15:22.195084338 +0100
++++ gtk+-2.14.7/gdk/directfb/gdkwindow-directfb.c	2009-02-18 13:47:16.162587960 +0100
 @@ -33,6 +33,7 @@
  
  #include "config.h"
@@ -276,7 +276,7 @@
  _gdk_directfb_move_resize_child (GdkWindow *window,
                                   gint       x,
                                   gint       y,
-@@ -1439,12 +1370,13 @@ _gdk_directfb_move_resize_child (GdkWind
+@@ -1439,12 +1370,58 @@ _gdk_directfb_move_resize_child (GdkWind
      }
  }
  
@@ -286,6 +286,51 @@
 -                        gint       y,
 -                        gint       width,
 -                        gint       height)
++static  void
++gdk_directfb_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);
++        }
++    }
++}
++
 +static void
 +gdk_directfb_window_move_resize (GdkWindow *window,
 +                                 gboolean   with_move,
@@ -296,7 +341,55 @@
  {
    GdkWindowObject       *private;
    GdkWindowImplDirectFB *impl;
-@@ -1510,11 +1442,11 @@ gdk_window_move_resize (GdkWindow *windo
+@@ -1478,26 +1455,38 @@ gdk_window_move_resize (GdkWindow *windo
+ 
+   if (impl->drawable.width == width  &&  impl->drawable.height == height)
+     {
+-      gdk_window_move (window, x, y);
++      if (with_move)
++        gdk_directfb_window_move (window, x, y);
+     }
+   else if (impl->window)
+     {
+-  	  private->x = x;
+-  	  private->y = y;
+-      impl->window->MoveTo (impl->window, x, y);
++      private->x = x;
++      private->y = y;
++      impl->drawable.width = width;
++      impl->drawable.height = height;
++
++      if (with_move)
++        impl->window->MoveTo (impl->window, x, y);
+       impl->window->Resize (impl->window, width, height);
+     }
+   else
+     {
+-      GdkRectangle  old =
+-      { private->x, private->y, impl->drawable.width, impl->drawable.height };
+-      _gdk_directfb_move_resize_child (window, x, y, width, height);
++      GdkRectangle old = { private->x, private->y, impl->drawable.width, impl->drawable.height };
++      GdkRectangle new = { x, y, width, height };
++
++      if (! with_move)
++        {
++          new.x = private->x;
++          new.y = private->y;
++        }
++
++      _gdk_directfb_move_resize_child (window,
++                                       new.x, new.y, new.width, new.height);
+       _gdk_directfb_calc_abs (window);
+ 
+       if (GDK_WINDOW_IS_MAPPED (private))
+         {
+-          GdkWindow    *mousewin;
+-          GdkRectangle  new = { x, y, width, height };
++          GdkWindow *mousewin;
+ 
+           gdk_rectangle_union (&new, &old, &new);
+           gdk_window_invalidate_rect (GDK_WINDOW (private->parent), &new,TRUE);
+@@ -1510,11 +1499,11 @@ gdk_window_move_resize (GdkWindow *windo
      }
  }
  
@@ -313,7 +406,7 @@
  {
    GdkWindowObject *window_private;
    GdkWindowObject *parent_private;
-@@ -1523,10 +1455,10 @@ _gdk_window_reparent (GdkWindow *window,
+@@ -1523,10 +1512,10 @@ _gdk_window_reparent (GdkWindow *window,
    GdkWindowImplDirectFB *parent_impl;
    GdkVisual             *visual;
  
@@ -326,7 +419,7 @@
  
    if (!new_parent)
      new_parent = _gdk_parent_root;
-@@ -1539,7 +1471,7 @@ _gdk_window_reparent (GdkWindow *window,
+@@ -1539,7 +1528,7 @@ _gdk_window_reparent (GdkWindow *window,
  
    /* already parented */
    if( window_private->parent == (GdkWindowObject *)new_parent )
@@ -335,7 +428,7 @@
  
    window_private->parent = (GdkWindowObject *) new_parent;
  
-@@ -1593,7 +1525,7 @@ _gdk_window_reparent (GdkWindow *window,
+@@ -1593,7 +1582,7 @@ _gdk_window_reparent (GdkWindow *window,
          {
  		  g_assert(0);
            _gdk_window_destroy (window, FALSE);
@@ -344,7 +437,7 @@
          }
          /* we hold a reference count on ourselves */
          g_object_ref (window);
-@@ -1609,14 +1541,17 @@ _gdk_window_reparent (GdkWindow *window,
+@@ -1609,14 +1598,17 @@ _gdk_window_reparent (GdkWindow *window,
                            &rect,
                            &impl->drawable.surface);
     }
@@ -368,7 +461,7 @@
  {
    GdkWindowObject         *private;
    GdkDrawableImplDirectFB *impl;
-@@ -1700,51 +1635,8 @@ _gdk_windowing_window_clear_area (GdkWin
+@@ -1700,51 +1692,8 @@ _gdk_windowing_window_clear_area (GdkWin
      g_object_unref (gc);
  }
  
@@ -422,7 +515,7 @@
  {
    GdkWindowImplDirectFB *impl;
  
-@@ -1774,8 +1666,8 @@ gdk_window_raise (GdkWindow *window)
+@@ -1774,8 +1723,8 @@ gdk_window_raise (GdkWindow *window)
      }
  }
  
@@ -433,7 +526,7 @@
  {
    GdkWindowImplDirectFB *impl;
  
-@@ -1875,9 +1767,9 @@ gdk_window_set_role (GdkWindow   *window
+@@ -1875,9 +1824,9 @@ gdk_window_set_role (GdkWindow   *window
   * Since: 2.12
   *
   **/
@@ -445,7 +538,7 @@
  {
  }
  
-@@ -1907,9 +1799,9 @@ gdk_window_set_transient_for (GdkWindow 
+@@ -1907,9 +1856,9 @@ gdk_window_set_transient_for (GdkWindow 
      root->children = g_list_insert (root->children, window, i);
  }
  
@@ -458,7 +551,7 @@
  {
    GdkWindowObject *private;
  
-@@ -1930,10 +1822,10 @@ gdk_window_set_background (GdkWindow *wi
+@@ -1930,10 +1879,10 @@ gdk_window_set_background (GdkWindow *wi
    private->bg_pixmap = NULL;
  }
  
@@ -473,7 +566,7 @@
  {
    GdkWindowObject *private;
    GdkPixmap       *old_pixmap;
-@@ -1972,9 +1864,9 @@ gdk_window_set_back_pixmap (GdkWindow *w
+@@ -1972,9 +1921,9 @@ gdk_window_set_back_pixmap (GdkWindow *w
      }
  }
  
@@ -486,7 +579,7 @@
  {
    GdkWindowImplDirectFB *impl;
    GdkCursor             *old_cursor;
-@@ -2011,13 +1903,13 @@ gdk_window_set_cursor (GdkWindow *window
+@@ -2011,13 +1960,13 @@ gdk_window_set_cursor (GdkWindow *window
      gdk_cursor_unref (old_cursor);
  }
  
@@ -507,7 +600,7 @@
  {
    GdkWindowObject         *private;
    GdkDrawableImplDirectFB *impl;
-@@ -2078,10 +1970,10 @@ _gdk_directfb_calc_abs (GdkWindow *windo
+@@ -2078,10 +2027,10 @@ _gdk_directfb_calc_abs (GdkWindow *windo
      }
  }
  
@@ -522,7 +615,7 @@
  {
    g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
  
-@@ -2215,8 +2107,8 @@ _gdk_windowing_window_get_pointer (displ
+@@ -2215,8 +2164,8 @@ _gdk_windowing_window_get_pointer (displ
  
  }
  
@@ -533,7 +626,7 @@
  {
    g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
  
-@@ -2226,9 +2118,9 @@ gdk_window_get_events (GdkWindow *window
+@@ -2226,9 +2175,9 @@ gdk_window_get_events (GdkWindow *window
      return GDK_WINDOW_OBJECT (window)->event_mask;
  }
  
@@ -546,7 +639,7 @@
  {
    g_return_if_fail (GDK_IS_WINDOW (window));
  
-@@ -2240,27 +2132,27 @@ gdk_window_set_events (GdkWindow    *win
+@@ -2240,27 +2189,27 @@ gdk_window_set_events (GdkWindow    *win
    GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
  }
  
@@ -587,7 +680,7 @@
  {
  }
  
-@@ -2584,13 +2476,13 @@ gdk_window_set_functions (GdkWindow     
+@@ -2584,13 +2533,13 @@ gdk_window_set_functions (GdkWindow     
    g_message("unimplemented %s", __FUNCTION__);
  }
  
@@ -605,7 +698,7 @@
  {
  }
  
-@@ -2604,9 +2496,9 @@ gdk_window_merge_child_input_shapes (Gdk
+@@ -2604,9 +2553,9 @@ gdk_window_merge_child_input_shapes (Gdk
  {
  }
  
@@ -618,7 +711,7 @@
  {
    g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
  
-@@ -3153,11 +3045,11 @@ gdk_window_impl_directfb_begin_paint_reg
+@@ -3153,11 +3102,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 ) );
  
@@ -635,7 +728,7 @@
      }
  }
  
-@@ -3281,6 +3173,33 @@ _gdk_windowing_window_set_composited (Gd
+@@ -3281,6 +3230,33 @@ _gdk_windowing_window_set_composited (Gd
  {
  }
  
@@ -671,8 +764,8 @@
  #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
+--- gtk+-2.14.7.orig/gdk/directfb/gdkprivate-directfb.h	2009-02-17 23:15:22.187084160 +0100
++++ gtk+-2.14.7/gdk/directfb/gdkprivate-directfb.h	2009-02-18 13:47:09.820439866 +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);




More information about the pkg-gnome-commits mailing list