summaryrefslogtreecommitdiff
path: root/geyes/src
diff options
context:
space:
mode:
Diffstat (limited to 'geyes/src')
-rw-r--r--geyes/src/Makefile.am23
-rw-r--r--geyes/src/geyes.c43
-rw-r--r--geyes/src/themes.c2
3 files changed, 47 insertions, 21 deletions
diff --git a/geyes/src/Makefile.am b/geyes/src/Makefile.am
index 22856564..912553cb 100644
--- a/geyes/src/Makefile.am
+++ b/geyes/src/Makefile.am
@@ -9,20 +9,31 @@ AM_CPPFLAGS = \
-DGEYES_RESOURCE_PATH=\""/org/mate/mate-applets/eyes/"\" \
${WARN_CFLAGS}
-libexec_PROGRAMS = mate-geyes-applet
-
BUILT_SOURCES = geyes-resources.c geyes-resources.h
-nodist_mate_geyes_applet_SOURCES = $(BUILT_SOURCES)
-mate_geyes_applet_SOURCES = \
+APPLET_SOURCES = \
geyes.c \
geyes.h \
themes.c \
$(NULL)
-
-mate_geyes_applet_LDADD = \
+APPLET_LIBS = \
$(MATE_APPLETS4_LIBS) \
-lm
+if ENABLE_IN_PROCESS
+pkglib_LTLIBRARIES = libmate-geyes-applet.la
+nodist_libmate_geyes_applet_la_SOURCES = $(BUILT_SOURCES)
+libmate_geyes_applet_la_SOURCES = $(APPLET_SOURCES)
+libmate_geyes_applet_la_CFLAGS = $(AM_CFLAGS)
+libmate_geyes_applet_la_LDFLAGS = -module -avoid-version
+libmate_geyes_applet_la_LIBADD = $(APPLET_LIBS)
+else !ENABLE_IN_PROCESS
+libexec_PROGRAMS = mate-geyes-applet
+nodist_mate_geyes_applet_SOURCES = $(BUILT_SOURCES)
+mate_geyes_applet_SOURCES = $(APPLET_SOURCES)
+mate_geyes_applet_CFLAGS = $(AM_CFLAGS)
+mate_geyes_applet_LDADD = $(APPLET_LIBS)
+endif !ENABLE_IN_PROCESS
+
geyes-resources.c: $(srcdir)/../data/geyes-resources.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/../data --generate-dependencies $(srcdir)/../data/geyes-resources.gresource.xml)
$(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/../data --generate --c-name eyes $<
diff --git a/geyes/src/geyes.c b/geyes/src/geyes.c
index 88486438..a8337447 100644
--- a/geyes/src/geyes.c
+++ b/geyes/src/geyes.c
@@ -132,19 +132,35 @@ timer_cb (EyesApplet *eyes_applet)
{
GdkDisplay *display;
GdkSeat *seat;
- gint x, y;
+ gint x, y, dx, dy;
gint pupil_x, pupil_y;
gsize i;
+ int applet_x,applet_y;
display = gtk_widget_get_display (GTK_WIDGET (eyes_applet->applet));
seat = gdk_display_get_default_seat (display);
- for (i = 0; i < eyes_applet->num_eyes; i++) {
- if (gtk_widget_get_realized (eyes_applet->eyes[i])) {
+ for (i = 0; i < eyes_applet->num_eyes; i++)
+ {
+ if (gtk_widget_get_realized (eyes_applet->eyes[i]))
+ {
gdk_window_get_device_position (gtk_widget_get_window (eyes_applet->eyes[i]),
gdk_seat_get_pointer (seat),
&x, &y, NULL);
+#ifdef ENABLE_IN_PROCESS
+ gdk_window_get_origin (gtk_widget_get_window (GTK_WIDGET(eyes_applet->applet)),
+ &applet_x, &applet_y);
+#else
+ applet_x = 0;
+ applet_y = 0;
+#endif
+ gtk_widget_translate_coordinates (eyes_applet->eyes[i],
+ gtk_widget_get_toplevel(eyes_applet->eyes[i]),
+ -applet_x, -applet_y, &dx, &dy);
+ x -= dx;
+ y -= dy;
+
if ((x != eyes_applet->pointer_last_x[i]) ||
(y != eyes_applet->pointer_last_y[i])) {
@@ -189,7 +205,7 @@ about_cb (GtkAction *action,
"comments", _("A goofy set of eyes for the MATE "
"panel. They follow your mouse."),
"copyright", _("Copyright \xC2\xA9 1999 Dave Camp\n"
- "Copyright \xc2\xa9 2012-2020 MATE developers"),
+ "Copyright \xc2\xa9 2012-2021 MATE developers"),
"authors", authors,
"documenters", documenters,
"translator-credits", _("translator-credits"),
@@ -253,8 +269,6 @@ setup_eyes (EyesApplet *eyes_applet)
gtk_widget_set_valign (eyes_applet->eyes[i], GTK_ALIGN_CENTER);
}
- gtk_widget_realize (eyes_applet->eyes[i]);
-
eyes_applet->pointer_last_x[i] = G_MAXINT;
eyes_applet->pointer_last_y[i] = G_MAXINT;
@@ -349,7 +363,7 @@ help_cb (GtkAction *action,
GTK_BUTTONS_CLOSE,
_("There was an error displaying help: %s"),
error->message);
- g_signal_connect (G_OBJECT (dialog), "response",
+ g_signal_connect (dialog, "response",
G_CALLBACK (gtk_widget_destroy),
NULL);
gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
@@ -393,7 +407,9 @@ geyes_applet_fill (MatePanelApplet *applet)
GtkActionGroup *action_group;
gboolean result;
+#ifndef ENABLE_IN_PROCESS
g_set_application_name (_("Eyes"));
+#endif
gtk_window_set_default_icon_name ("mate-eyes-applet");
mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR);
@@ -427,8 +443,7 @@ geyes_applet_fill (MatePanelApplet *applet)
set_atk_name_description (GTK_WIDGET (eyes_applet->applet), _("Eyes"),
_("The eyes look in the direction of the mouse pointer"));
- g_signal_connect (eyes_applet->vbox,
- "destroy",
+ g_signal_connect (eyes_applet->vbox, "destroy",
G_CALLBACK (destroy_cb),
eyes_applet);
@@ -462,8 +477,8 @@ geyes_applet_factory (MatePanelApplet *applet,
return retval;
}
-MATE_PANEL_APPLET_OUT_PROCESS_FACTORY ("GeyesAppletFactory",
- PANEL_TYPE_APPLET,
- "geyes",
- geyes_applet_factory,
- NULL)
+PANEL_APPLET_FACTORY ("GeyesAppletFactory",
+ PANEL_TYPE_APPLET,
+ "geyes",
+ geyes_applet_factory,
+ NULL)
diff --git a/geyes/src/themes.c b/geyes/src/themes.c
index 726af951..e9ebe24b 100644
--- a/geyes/src/themes.c
+++ b/geyes/src/themes.c
@@ -225,7 +225,7 @@ phelp_cb (GtkDialog *dialog)
GTK_BUTTONS_CLOSE,
_("There was an error displaying help: %s"),
error->message);
- g_signal_connect (G_OBJECT (error_dialog), "response",
+ g_signal_connect (error_dialog, "response",
G_CALLBACK (gtk_widget_destroy),
NULL);
gtk_window_set_resizable (GTK_WINDOW (error_dialog), FALSE);