]> Pileus Git - ~andy/gtk/commitdiff
gdk/directfb/gdkdirectfb.h gdk/directfb/gdkdisplay-directfb.c
authorSven Neumann <sven@gimp.org>
Wed, 30 Jan 2008 19:43:16 +0000 (19:43 +0000)
committerSven Neumann <neo@src.gnome.org>
Wed, 30 Jan 2008 19:43:16 +0000 (19:43 +0000)
2008-01-30  Sven Neumann  <sven@gimp.org>

* gdk/directfb/gdkdirectfb.h
* gdk/directfb/gdkdisplay-directfb.c
* gdk/directfb/gdkdrawable-directfb.c
* gdk/directfb/gdkim-directfb.c
* gdk/directfb/gdkimage-directfb.c
* gdk/directfb/gdkinput-directfb.c
* gdk/directfb/gdkmain-directfb.c
* gdk/directfb/gdkpixmap-directfb.c
* gdk/directfb/gdktestutils-directfb.c
* gdk/directfb/gdkvisual-directfb.c
* gdk/directfb/gdkwindow-directfb.c: applied patch from Denis
Oliver Kropp <dok@directfb.org>. Fixes various warnings, some
errors and has some cleanups.

svn path=/trunk/; revision=19432

12 files changed:
ChangeLog
gdk/directfb/gdkdirectfb.h
gdk/directfb/gdkdisplay-directfb.c
gdk/directfb/gdkdrawable-directfb.c
gdk/directfb/gdkim-directfb.c
gdk/directfb/gdkimage-directfb.c
gdk/directfb/gdkinput-directfb.c
gdk/directfb/gdkmain-directfb.c
gdk/directfb/gdkpixmap-directfb.c
gdk/directfb/gdktestutils-directfb.c
gdk/directfb/gdkvisual-directfb.c
gdk/directfb/gdkwindow-directfb.c

index 04464d574cf01f445aa2a13028fd6d9ce1eb81e9..b8e7cce684be9187b58aacdc6c08e31b7b321458 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2008-01-30  Sven Neumann  <sven@gimp.org>
+
+       * gdk/directfb/gdkdirectfb.h
+       * gdk/directfb/gdkdisplay-directfb.c
+       * gdk/directfb/gdkdrawable-directfb.c
+       * gdk/directfb/gdkim-directfb.c
+       * gdk/directfb/gdkimage-directfb.c
+       * gdk/directfb/gdkinput-directfb.c
+       * gdk/directfb/gdkmain-directfb.c
+       * gdk/directfb/gdkpixmap-directfb.c
+       * gdk/directfb/gdktestutils-directfb.c
+       * gdk/directfb/gdkvisual-directfb.c
+       * gdk/directfb/gdkwindow-directfb.c: applied patch from Denis
+       Oliver Kropp <dok@directfb.org>. Fixes various warnings, some
+       errors and has some cleanups.
+
 2008-01-30  Michael Natterer  <mitch@imendio.com>
 
        * gtk/gtkbuilderparser.c (parse_custom): use the right type for
index 275bcbf5035827151c1f2bcae3ad3ad81a8fbb17..9fb0d5ddfc00a1e966d0ade9c3a5f4733fe75d3b 100644 (file)
 #include <directfb.h>
 #include "gdk/gdkprivate.h"
 
-/* macro for a safe call to DirectFB functions */
-#define DFBCHECK(x...) \
-     {                                                                \
-          int err = x;                                                    \
-          if (err != DFB_OK) {                                        \
-               fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
-               DirectFBErrorFatal( #x, err );                         \
-          }                                                           \
-     }
-
 
 extern GdkWindow * _gdk_parent_root;
 
index 3ea40032dddfb3cc457f7b9413b0c84b17879fe9..f13e37915b13ebbf338e6e39a8af2cfc205dce3a 100644 (file)
@@ -195,6 +195,9 @@ IDirectFBSurface * gdk_display_dfb_create_surface (GdkDisplayDFB *display,int fo
 }
 
 
+/*************************************************************************************************
+ * Displays and Screens
+ */
 
 void
 _gdk_windowing_set_default_display (GdkDisplay *display)
@@ -227,6 +230,30 @@ gdk_display_get_default_screen (GdkDisplay *display)
   return _gdk_screen;
 }
 
+gboolean
+gdk_display_supports_shapes (GdkDisplay *display)
+{
+       return FALSE;
+}
+
+gboolean
+gdk_display_supports_input_shapes (GdkDisplay *display)
+{
+       return FALSE;
+}
+
+
+GdkWindow *gdk_display_get_default_group (GdkDisplay *display)
+{
+  g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
+  return  _gdk_parent_root;
+}
+
+
+/*************************************************************************************************
+ * Selection and Clipboard
+ */
+
 gboolean
 gdk_display_supports_selection_notification (GdkDisplay *display)
 {
@@ -262,28 +289,9 @@ gdk_display_store_clipboard (GdkDisplay    *display,
 }
 
 
-gboolean
-gdk_display_supports_shapes (GdkDisplay *display)
-{
-       return FALSE;
-}
-
-
-gboolean
-gdk_display_supports_input_shapes (GdkDisplay *display)
-{
-       return FALSE;
-}
-
-
-GdkWindow *gdk_display_get_default_group (GdkDisplay *display)
-{
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
-  return  _gdk_parent_root;
-}
-
-
-
+/*************************************************************************************************
+ * Pointer
+ */
 
 static gboolean _gdk_directfb_pointer_implicit_grab = FALSE;
 
@@ -338,9 +346,6 @@ gdk_directfb_pointer_grab (GdkWindow    *window,
   return GDK_GRAB_SUCCESS;
 }
 
-
-
-
 void
 gdk_directfb_pointer_ungrab (guint32  time,
                              gboolean implicit_grab)
@@ -387,8 +392,69 @@ gdk_directfb_pointer_ungrab (guint32  time,
   g_object_unref (old_grab_window);
 }
 
+gint
+gdk_display_pointer_is_grabbed (GdkDisplay *display)
+{
+  return _gdk_directfb_pointer_grab_window != NULL;
+}
+
+void
+gdk_display_pointer_ungrab (GdkDisplay *display,guint32 time)
+{
+  gdk_directfb_pointer_ungrab (time, _gdk_directfb_pointer_implicit_grab);
+}
+
+
+/*************************************************************************************************
+ * Keyboard
+ */
+
+GdkGrabStatus
+gdk_directfb_keyboard_grab (GdkDisplay *display,GdkWindow *window,
+                            gint       owner_events,
+                            guint32    time)
+{
+  GdkWindow             *toplevel;
+  GdkWindowImplDirectFB *impl;
+
+  g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
+
+  if (_gdk_directfb_keyboard_grab_window)
+    gdk_keyboard_ungrab (time);
+
+  toplevel = gdk_directfb_window_find_toplevel (window);
+  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (toplevel)->impl);
+
+  if (impl->window)
+    {
+      if (impl->window->GrabKeyboard (impl->window) == DFB_LOCKED)
+        return GDK_GRAB_ALREADY_GRABBED;
+    }
+
+  _gdk_directfb_keyboard_grab_window = g_object_ref (window);
+  _gdk_directfb_keyboard_grab_owner_events = owner_events;
+  return GDK_GRAB_SUCCESS;
+}
+
+void
+gdk_directfb_keyboard_ungrab (GdkDisplay *display,guint32 time)
+{
+  GdkWindow             *toplevel;
+  GdkWindowImplDirectFB *impl;
+
+  if (!_gdk_directfb_keyboard_grab_window)
+    return;
 
+  toplevel =
+    gdk_directfb_window_find_toplevel (_gdk_directfb_keyboard_grab_window);
+  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (toplevel)->impl);
 
+  if (impl->window)
+    impl->window->UngrabKeyboard (impl->window);
+
+  g_object_unref (_gdk_directfb_keyboard_grab_window);
+  _gdk_directfb_keyboard_grab_window = NULL;
+}
 
 /*
  *--------------------------------------------------------------
@@ -457,17 +523,10 @@ gdk_display_keyboard_ungrab (GdkDisplay *display,guint32 time)
   _gdk_directfb_keyboard_grab_window = NULL;
 }
 
-gint
-gdk_display_pointer_is_grabbed (GdkDisplay *display)
-{
-  return _gdk_directfb_pointer_grab_window != NULL;
-}
 
-void
-gdk_display_pointer_ungrab (GdkDisplay *display,guint32 time)
-{
-  gdk_directfb_pointer_ungrab (time, _gdk_directfb_pointer_implicit_grab);
-}
+/*************************************************************************************************
+ * Misc Stuff
+ */
 
 void
 gdk_display_beep (GdkDisplay *display)
@@ -486,6 +545,10 @@ gdk_display_flush (GdkDisplay *display)
 
 
 
+/*************************************************************************************************
+ * Notifications
+ */
+
 void
 gdk_notify_startup_complete (void)
 {
@@ -512,12 +575,17 @@ gdk_notify_startup_complete_with_id (const gchar* startup_id)
 }
 
 
+/*************************************************************************************************
+ * Compositing
+ */
+
 gboolean
 gdk_display_supports_composite (GdkDisplay *display)
 {
     return FALSE;
 }
 
+
 #define __GDK_DISPLAY_X11_C__
 #include "gdkaliasdef.c"
 
index 6e8304d01d8517cadc92f2e22873fbb10ffe4316..ef22b3d7daea6b8713c367da1567724996fbbe6b 100644 (file)
 
 #include "cairo-directfb.h"
 
-#define WARN_UNIMPLEMENTED(func)\
-{\
-  static gboolean first_call = TRUE;\
-  if (first_call)\
-    {\
-                        g_message ("unimplemented " func);\
-      first_call = FALSE;\
-    }\
-}
-
 
 /* From DirectFB's <gfx/generix/duffs_device.h> */
 #define DUFF_1() \
@@ -556,7 +546,7 @@ gdk_directfb_draw_arc (GdkDrawable *drawable,
                        gint         angle1,
                        gint         angle2)
 {
-  WARN_UNIMPLEMENTED (G_GNUC_FUNCTION);
+  D_UNIMPLEMENTED();
 }
 
 static void
@@ -640,7 +630,7 @@ gdk_directfb_draw_text (GdkDrawable *drawable,
                         const gchar *text,
                         gint         text_length)
 {
-  WARN_UNIMPLEMENTED (G_GNUC_FUNCTION);
+  D_UNIMPLEMENTED();
 }
 
 static void
@@ -652,7 +642,7 @@ gdk_directfb_draw_text_wc (GdkDrawable    *drawable,
                            const GdkWChar *text,
                            gint            text_length)
 {
-  WARN_UNIMPLEMENTED (G_GNUC_FUNCTION);
+  D_UNIMPLEMENTED();
 }
 
 static void
index f41ec9fcb2747c2c22bcdf7e76c3bb25c7562ee5..e27680c1d3a00a9953b4cc521f6a3a7dbdbc8b75 100644 (file)
@@ -151,7 +151,7 @@ gdk_wcstombs (const GdkWChar *src)
 
   *bp = 0;
 
-  return mbstr;
+  return (gchar*)mbstr;
 }
 
 
index 9995ed2298dcc2f93842b722c1e5e9b86b800698..e6f6eda33a0089e09d49237537791acf66a550b4 100644 (file)
@@ -151,7 +151,7 @@ gdk_image_new_bitmap (GdkVisual *visual,
 
   GDK_NOTE (MISC, g_print ("gdk_image_new_bitmap: %dx%d\n", w, h));
 
-  g_message ("not fully implemented %s", G_GNUC_FUNCTION);
+  g_message ("not fully implemented %s", __FUNCTION__);
 
   image->bpl = (w + 7) / 8;
   image->mem = g_malloc (image->bpl * h);
@@ -209,7 +209,7 @@ _gdk_image_new_for_depth (GdkScreen    *screen,
       format = DSPF_ARGB;
       break;
     default:
-      g_message ("unimplemented %s for depth %d", G_GNUC_FUNCTION, depth);
+      g_message ("unimplemented %s for depth %d", __FUNCTION__, depth);
       return NULL;
     }
 
@@ -225,7 +225,13 @@ _gdk_image_new_for_depth (GdkScreen    *screen,
 
   private->surface = surface;
 
-  surface->Lock( surface, DSLF_WRITE, &image->mem, &pitch );
+  ret = surface->Lock( surface, DSLF_WRITE, &image->mem, &pitch );
+  if (ret)
+    {
+      DirectFBError( "IDirectFBSurface::Lock() for writing failed!\n", ret );
+      gdk_image_unref( image );
+      return NULL;
+    }
 
   image->type           = type;
   image->visual         = visual;
@@ -403,8 +409,8 @@ gdk_directfb_image_destroy (GdkImage *image)
   if (!private)
     return;
 
-  GDK_NOTE (MISC, g_print ("gdk_directfb_image_destroy: %#x\n",
-                           (guint) private->surface));
+  GDK_NOTE (MISC, g_print ("gdk_directfb_image_destroy: %#lx\n",
+                           (gulong) private->surface));
 
   private->surface->Unlock( private->surface );
   private->surface->Release( private->surface );
index 4188f3c03f196f30b24236b53bb008b34817db9b..b8a84195432881618c740206fe89ef892fe4efad 100644 (file)
@@ -228,7 +228,7 @@ gboolean
 gdk_device_set_mode (GdkDevice    *device,
                      GdkInputMode  mode)
 {
-  g_message ("unimplemented %s", G_GNUC_FUNCTION);
+  g_message ("unimplemented %s", __FUNCTION__);
 
   return FALSE;
 }
@@ -303,7 +303,7 @@ gdk_input_set_extension_events (GdkWindow        *window,
                                 gint              mask,
                                 GdkExtensionMode  mode)
 {
-  g_message ("unimplemented %s", G_GNUC_FUNCTION);
+  g_message ("unimplemented %s", __FUNCTION__);
 }
 
 GList *
index 56e000242e8d36e5fd40be6cbb8d163943615133..cbc72ab092f2c76162cca3deff171620ca7e3e70 100644 (file)
@@ -435,7 +435,7 @@ gdk_keyboard_grab (GdkWindow *window,
                    gint       owner_events,
                    guint32    time) 
 {
-       return gdk_display_keyboard_grab(gdk_display_get_default(),
+       return gdk_directfb_keyboard_grab(gdk_display_get_default(),
                        window,
                        owner_events,
                        time);
index 62b9627508ad18d12e3e59dbbabdceeef5161e7c..9f4115d56f3e2339d28f2baddc2174ccf44e9b8f 100644 (file)
@@ -109,8 +109,6 @@ gdk_pixmap_impl_directfb_class_init (GdkPixmapImplDirectFBClass *klass)
 static void
 gdk_pixmap_impl_directfb_finalize (GObject *object)
 {
-  GdkDrawableImplDirectFB *impl = GDK_DRAWABLE_IMPL_DIRECTFB (object);
-
   if (G_OBJECT_CLASS (parent_class)->finalize)
     G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -172,7 +170,7 @@ gdk_pixmap_new (GdkDrawable *drawable,
           format = DSPF_RGB32;
           break;
         default:
-          g_message ("unimplemented %s for depth %d", G_GNUC_FUNCTION, depth);
+          g_message ("unimplemented %s for depth %d", __FUNCTION__, depth);
           return NULL;
         }
     }
index 55f09c98b069b7263aa21877b5a5fc4367a23699..9f843fbaac697a2acb6cd2a6a219845e46a6e1fd 100644 (file)
@@ -83,7 +83,7 @@ _gdk_keyval_to_directfb (guint keyval)
     case GDK_Cancel:
       return DIKS_CANCEL;
       /* TODO: handle them all */
-    defualt:
+    default:
       break;
   }
 
index fb20f570f4f012131a540cedfe8f2aac6de59cf4..ae5800d01d4cd93849f4f76a2a78f80a4079c7d5 100644 (file)
@@ -112,7 +112,6 @@ gdk_visual_get_type (void)
 void
 _gdk_visual_init ()
 {
-  DFBResult              ret;
   DFBDisplayLayerConfig  dlc;
   DFBSurfaceDescription  desc;
   IDirectFBSurface      *dest;
index 25d8ecc72499625cbfd96c8ad590c3d9af0cb54d..6df697f5c2a87b93f8de191cace8f980a9690da6 100644 (file)
@@ -2453,7 +2453,7 @@ gdk_window_set_functions (GdkWindow     *window,
     return;
 
   /* N/A */
-  g_message("unimplemented %s", G_GNUC_FUNCTION);
+  g_message("unimplemented %s", __FUNCTION__);
 }
 
 void
@@ -2486,7 +2486,7 @@ gdk_window_set_static_gravities (GdkWindow *window,
     return FALSE;
 
   /* N/A */
-  g_message("unimplemented %s", G_GNUC_FUNCTION);
+  g_message("unimplemented %s", __FUNCTION__);
 
   return FALSE;
 }
@@ -2504,7 +2504,7 @@ gdk_window_begin_resize_drag (GdkWindow     *window,
   if (GDK_WINDOW_DESTROYED (window))
     return;
 
-  g_message("unimplemented %s", G_GNUC_FUNCTION);
+  g_message("unimplemented %s", __FUNCTION__);
 }
 
 void
@@ -2519,7 +2519,7 @@ gdk_window_begin_move_drag (GdkWindow *window,
   if (GDK_WINDOW_DESTROYED (window))
     return;
 
-  g_message("unimplemented %s", G_GNUC_FUNCTION);
+  g_message("unimplemented %s", __FUNCTION__);
 }
 
 /**
@@ -2818,10 +2818,10 @@ gdk_window_set_urgency_hint (GdkWindow *window,
 }
 
 static void
-gdk_window_impl_directfb_invalidate_maybe_recurse (GdkPaintable *paintable,
-                                                   GdkRegion    *region,
-                                                   gboolean    (*child_func) (GdkWindow *, gpointer),
-                                                   gpointer      user_data)
+gdk_window_impl_directfb_invalidate_maybe_recurse (GdkPaintable    *paintable,
+                                                   const GdkRegion *region,
+                                                   gboolean       (*child_func) (GdkWindow *, gpointer),
+                                                   gpointer         user_data)
 {
   GdkWindow *window;
   GdkWindowObject *private;
@@ -2866,14 +2866,11 @@ gdk_window_impl_directfb_invalidate_maybe_recurse (GdkPaintable *paintable,
           
           if (child_func && (*child_func) ((GdkWindow *)child, user_data))
             {
-              gdk_region_offset (region, - child->x, - child->y);
-              gdk_region_offset (&child_region, - child->x, - child->y);
               gdk_region_intersect (&child_region, region);
+              gdk_region_offset (&child_region, - child->x, - child->y);
               
               gdk_window_invalidate_maybe_recurse ((GdkWindow *)child,
                                                    &child_region, child_func, user_data);
-              
-              gdk_region_offset (region, child->x, child->y);
             }
 
           temp_region_deinit( &child_region );
@@ -2967,8 +2964,8 @@ gdk_window_impl_directfb_process_updates (GdkPaintable *paintable,
 
 
 static void
-gdk_window_impl_directfb_begin_paint_region (GdkPaintable *paintable,
-                                             GdkRegion    *region)
+gdk_window_impl_directfb_begin_paint_region (GdkPaintable    *paintable,
+                                             const GdkRegion *region)
 {
   GdkDrawableImplDirectFB *impl;
   GdkWindowImplDirectFB *wimpl;