diff options
author | Carlos Eduardo Rodrigues DiĆ³genes <carlosd@src.gnome.org> | 2007-10-04 01:38:29 +0000 |
---|---|---|
committer | Carlos Eduardo Rodrigues DiĆ³genes <carlosd@src.gnome.org> | 2007-10-04 01:38:29 +0000 |
commit | f69b008dbcd675e3aaa3733ad208a04616b9d3f9 (patch) | |
tree | c6f206f26b65dc63c45daddd728a3529058c523e /magnifier | |
parent | a6599e371cb53e5c5449d743b7d9d48345830261 (diff) |
corrected wrong syntax
svn path=/trunk/; revision=629
Diffstat (limited to 'magnifier')
-rw-r--r-- | magnifier/magnifier.c | 10 | ||||
-rw-r--r-- | magnifier/x11/gmag-damage.c | 27 | ||||
-rw-r--r-- | magnifier/x11/gmag-damage.h | 1 | ||||
-rw-r--r-- | magnifier/x11/gmag-graphical-server.c | 12 |
4 files changed, 49 insertions, 1 deletions
diff --git a/magnifier/magnifier.c b/magnifier/magnifier.c index 0d3899d..2956ee2 100644 --- a/magnifier/magnifier.c +++ b/magnifier/magnifier.c @@ -26,6 +26,7 @@ #include "zoom-region.h" #include "zoom-region-private.h" #include "gmag-cursor.h" +#include "gmag-damage.h" #include "gmag-graphical-server.h" #include "GNOME_Magnifier.h" @@ -1388,6 +1389,14 @@ impl_magnifier_dispose (PortableServer_Servant servant, } static void +impl_magnifier_reference_fetched (PortableServer_Servant servant, + const CORBA_boolean value, + CORBA_Environment *ev) +{ + gmag_damage_can_exit ((gboolean) value); +} + +static void magnifier_class_init (MagnifierClass *klass) { GObjectClass * object_class = (GObjectClass *) klass; @@ -1405,6 +1414,7 @@ magnifier_class_init (MagnifierClass *klass) epv->createZoomRegion = impl_magnifier_create_zoom_region; epv->addZoomRegion = impl_magnifier_add_zoom_region; epv->clearAllZoomRegions = impl_magnifier_clear_all_zoom_regions; + epv->referenceFetched = impl_magnifier_reference_fetched; epv->dispose = impl_magnifier_dispose; } diff --git a/magnifier/x11/gmag-damage.c b/magnifier/x11/gmag-damage.c index 86165e4..58e92b8 100644 --- a/magnifier/x11/gmag-damage.c +++ b/magnifier/x11/gmag-damage.c @@ -27,6 +27,9 @@ #include <X11/Xlib.h> #include <X11/extensions/Xdamage.h> +#include <sys/ipc.h> +#include <sys/shm.h> +#include <X11/extensions/XShm.h> #include <gdk/gdkx.h> @@ -39,6 +42,7 @@ static Window root_window; static Damage root_damage; static XserverRegion tmp_region; static DamageHandlerFunc gmag_damage_notify_handler; +static gboolean can_exit = FALSE; static void gmag_damage_notify_handler (XEvent *ev) @@ -74,9 +78,17 @@ gmag_damage_notify_handler (XEvent *ev) } void +gmag_damage_can_exit (gboolean value) +{ + can_exit = value; +} + +void gmag_damage_init (Magnifier *magnifier, Display *dpy_conn) { gint event, error; + gint scr = 0, root_w, root_h; + FILE *f; if (!XDamageQueryExtension (dpy_conn, &event, &error)) { g_warning ("Damage extension not currently active.\n"); @@ -86,7 +98,14 @@ gmag_damage_init (Magnifier *magnifier, Display *dpy_conn) dpy = dpy_conn; mag_ref = magnifier; tmp_region = XFixesCreateRegion (dpy, 0, 0); - root_window = GDK_WINDOW_XWINDOW (mag_ref->priv->root); + + gdk_drawable_get_size (magnifier->priv->root, &root_w, + &root_h); + magnifier->priv->source_drawable = gdk_pixmap_new ( + magnifier->priv->root, root_w, root_h, -1); + gdk_flush (); + + root_window = GDK_WINDOW_XWINDOW (mag_ref->priv->source_drawable); root_damage = XDamageCreate (dpy, root_window, XDamageReportDeltaRectangles); /* I don't know why, but without this XDamageSubtract @@ -97,6 +116,12 @@ gmag_damage_init (Magnifier *magnifier, Display *dpy_conn) XDamageSubtract (dpy, root_damage, None, None); gmag_gs_set_damage_handler_func (gmag_damage_notify_handler); + f = fopen ("/tmp/source-drawable.txt", "w"); + fprintf (f, "%d\n", (int) GDK_WINDOW_XWINDOW (mag_ref->priv->source_drawable)); + fclose (f); + g_message ("added event source to damage connection"); + + while (!can_exit); } } diff --git a/magnifier/x11/gmag-damage.h b/magnifier/x11/gmag-damage.h index c246d8f..1c95719 100644 --- a/magnifier/x11/gmag-damage.h +++ b/magnifier/x11/gmag-damage.h @@ -29,6 +29,7 @@ #include <X11/Xlib.h> void gmag_damage_init (Magnifier *magnifier, Display *dpy_conn); +void gmag_damage_can_exit (gboolean value); #endif /* GMAG_DAMAGE_H_ */ diff --git a/magnifier/x11/gmag-graphical-server.c b/magnifier/x11/gmag-graphical-server.c index 6761aed..de89dc5 100644 --- a/magnifier/x11/gmag-graphical-server.c +++ b/magnifier/x11/gmag-graphical-server.c @@ -317,6 +317,12 @@ gmag_gs_magnifier_realize (GtkWidget *widget) Atom wm_type_atoms[1]; Atom net_wm_window_type; GdkDisplay *target_display = gdk_drawable_get_display (widget->window); + + FILE *f; + + f = fopen ("/tmp/magnifier-window.txt", "w"); + fprintf (f, "%d\n", (int) GDK_WINDOW_XWINDOW (widget->window)); + fclose (f); static gboolean initialized = FALSE; @@ -532,6 +538,12 @@ gmag_gs_client_init (Magnifier *magnifier) * damage notify handler, more suitable to the composite task. I think * that this leave the logic more simple. */ + + gmag_damage_init (magnifier, dpy); + g_setenv ("MAGNIFIER_IGNORE_COMPOSITE", "1", FALSE); + + return; + if (!use_compositor) { gmag_damage_init (magnifier, dpy); g_setenv ("MAGNIFIER_IGNORE_COMPOSITE", "1", FALSE); |