Use G_TYPE_INSTANCE_GET_PRIVATE() instead
In the process, convert to using G_DEFINE_TYPE, too.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=609195
Signed-off-by: Javier Jardón <jjardon@gnome.org>
Either g_type_register_static_simple (used by G_DEFINE_TYPE_EXTENDED)
and G_IMPLEMENT_INTERFACE use automatic variables for GTypeInfo and
GInterfaceInfo structs, while tutorials and source code often use
static variables. This commit consistently adopts the former method.
https://bugzilla.gnome.org/show_bug.cgi?id=600158
This has two advantages:
1) In many backends, this is faster as we can terminate the window
hierarchy traversal earlier
2) When used in gdkdisplay.c::get_current_toplevel() to get the
current toplevel that has the pointer we now correctly return
a toplevel with the pointer in it where the pointer is inside
some foreign subwindow of a toplevel window.
The second advantage fixes some bugs in client side event generation
when the pointer is inside such a foreign child window.
The X11 queue_translation operation uses NextRequest to get the serial
of the XCopyArea operation where the translation should end. However,
if the gc passed to gdk_draw_drawable has a non-flushed clip region
(which it commonly has now for the window clipping) then the next
operation will be the GC flush, not the XCopyArea.
To handle this right we now pass in the GC to be used to
queue_translation and ensure that it is flushed before calling
NextRequest().
2009-02-19 Sven Neumann <sven@gimp.org>
* gdk/directfb/gdkwindow-directfb.c
(gdk_directfb_window_move_resize): looks like being called with
negative width and height should be interpreted as a move. Fixes
scrolling and makes popups work to some extent.
(_gdk_directfb_move_resize_child): formatting.
svn path=/trunk/; revision=22384
2009-02-19 Sven Neumann <sven@gimp.org>
* gdk/directfb/gdkdisplay-directfb.c (gdk_display_open): move
the
call to _gdk_windowing_window_init() up a little. Fixes a crash
when running on pseudo-color visuals. Thanks to Masse Nicolas
for
pointing this out.
svn path=/trunk/; revision=22382
2009-02-19 Sven Neumann <sven@gimp.org>
* gdk/directfb/gdkwindow-directfb.c
(gdk_window_foreign_new_for_display, gdk_directfb_window_new):
initialize private->impl. Thanks to Masse Nicolas for pointing
this out.
svn path=/trunk/; revision=22380
2009-02-18 Sven Neumann <sven@gimp.org>
Bug 533456 – Memory leak when window is destroyed
* gdk/directfb/gdkdirectfb.h
* gdk/directfb/gdkprivate-directfb.h
* gdk/directfb/gdkcursor-directfb.c
* gdk/directfb/gdkevents-directfb.c
* gdk/directfb/gdkwindow-directfb.c: removed all #ifdef checks
for
DIRECTFB_MAJOR_VERSION >= 1. We depend on DirectFB >= 1.0.0 now.
Fixes a potential build issue that would lead to a memory leak
as
described in bug #533456.
svn path=/trunk/; revision=22367
2009-02-18 Sven Neumann <sven@gimp.org>
Bug 513422 – Unknown meaning of translatable messages
* gdk/directfb/gdkdisplay-directfb.c: removed broken and
commented
code and the translatable messages that belonged to it.
svn path=/trunk/; revision=22365
2009-02-18 Sven Neumann <sven@gimp.org>
Bug 560671 – the client_message API doesn't work in DirectFB
* gdk/directfb/gdkevents-directfb.c: applied a slightly cleaned
up
patch from Steve Lhomme that adds this functionality using
DirectFB's DFBUserEvent.
svn path=/trunk/; revision=22363
2009-02-18 Sven Neumann <sven@gimp.org>
Bug 543710 – Dead keys do not work anymore with DirectFB
* gdk/directfb/gdkkeys-directfb.c (gdk_directfb_translate_key):
applied patch from Josselin Mouette that removes special
handling
of dead keys as that is done by DirectFB for a long time
already.
svn path=/trunk/; revision=22361
2009-02-18 Sven Neumann <sven@gimp.org>
Bug 554407 – directfb backend does not implement GdkWindowImpl
* gdk/directfb/gdkgeometry-directfb.c
* gdk/directfb/gdkprivate-directfb.h
* gdk/directfb/gdkwindow-directfb.c: fix the build of the
DirectFB
backend and resurrect basic functionality. Based on a patch from
the Ubuntu bug-tracker and work by Masse Nicolas.
svn path=/trunk/; revision=22357
2008-05-06 Richard Hult <richard@imendio.com>
* gdk/gdkevents.c: (gdk_event_copy), (gdk_event_free):
* gdk/gdkinternals.h: Add private backend data to events, and
handle it when copying/freeing events. Currently only needed in
the quartz backend.
* gdk/directfb/gdkevents-directfb.c:
* gdk/quartz/gdkevents-quartz.c:
* gdk/win32/gdkevents-win32.c:
* gdk/x11/gdkevents-x11.c: (_gdk_windowing_event_data_copy)
(_gdk_windowing_event_data_free): Add stubs for X11, win32 and
directfb. Implement for quartz. Part of fixing bug #473822.
svn path=/trunk/; revision=20078
2008-01-15 Michael Natterer <mitch@imendio.com>
* gdk/gdkdisplay.h
* gdk/gdkdrawable.h
* gdk/gdkevents.h
* gdk/gdkpango.h
* gdk/gdkregion.h
* gdk/gdkrgb.h
* gdk/gdkwindow.h: made more struct pointer and array parameters
const. GDK should now be constified as far as possible without
breaking source compatibility. Includes some minor cleanup like
indentation and s/nfoo/n_foo/ (bug #508544).
* gdk/gdkdisplay.c
* gdk/gdkdraw.c
* gdk/gdkevents.c
* gdk/gdkpango.c
* gdk/gdkregion-generic.c
* gdk/gdkrgb.c
* gdk/directfb/gdkdisplay-directfb.c
* gdk/directfb/gdkwindow-directfb.c
* gdk/quartz/gdkdisplay-quartz.c
* gdk/quartz/gdkwindow-quartz.c
* gdk/win32/gdkdisplay-win32.c
* gdk/win32/gdkwindow-win32.c
* gdk/x11/gdkdisplay-x11.c
* gdk/x11/gdkwindow-x11.c: changed accordingly.
svn path=/trunk/; revision=19372
2008-01-10 Michael Natterer <mitch@imendio.com>
* gdk/directfb/gdkscreen-directfb.c
(gdk_screen_get_monitor_width_mm)
(gdk_screen_get_monitor_height_mm)
(gdk_screen_get_monitor_plug_name): add these functions to make
it build again.
svn path=/trunk/; revision=19340
* gdk/directfb/gdkcursor-directfb.c: (gdk_cursor_new_for_display):
Use u32 instead of __u32 and u8 instead of __u8 as the other types
are deprecated since DirectFB 1.0.0. If compiling with an older
version define the new type name to the old types. Fixes bug #503190.
svn path=/trunk/; revision=19182