This is an automated email from the git hooks/post-receive script. o c h o s i p u s h e d a c o m m i t t o b r a n c h x f c e - 4 . 1 2 in repository xfce/xfce4-settings.
commit f5a51959574642aa3993ddcdb0e83fc5beb7949f Author: Florian Schüller <[email protected]> Date: Sun Feb 25 10:47:40 2018 +0100 Fixed screenshot around the "origin" --- dialogs/accessibility-settings/find-cursor.c | 31 ++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/dialogs/accessibility-settings/find-cursor.c b/dialogs/accessibility-settings/find-cursor.c index 6908f65..af29968 100644 --- a/dialogs/accessibility-settings/find-cursor.c +++ b/dialogs/accessibility-settings/find-cursor.c @@ -53,19 +53,31 @@ gboolean timeout (gpointer data) static GdkPixbuf -*get_rectangle_screenshot (gint x, gint y, GtkWidget *widget) +*get_rectangle_screenshot (gint x, gint y) { GdkPixbuf *screenshot = NULL; GdkWindow *root_window = gdk_get_default_root_window (); GdkColormap *colormap = gdk_colormap_get_system(); + gint width = circle_size + workaround_offset; + gint height = circle_size + workaround_offset; + /* cut down screenshot if it's out of bounds */ + if (x < 0) { + width += x; + x = 0; + } + if (y < 0) { + height += y; + y = 0; + } + screenshot = gdk_pixbuf_get_from_drawable (NULL, root_window, colormap, x, y, 0, 0, - circle_size + workaround_offset, - circle_size + workaround_offset); + width, + height); return screenshot; } @@ -105,6 +117,7 @@ find_cursor_window_composited (GtkWidget *widget) { } GdkPixbuf *pixbuf = NULL; +gint screenshot_offset_x, screenshot_offset_y; static gboolean find_cursor_window_expose (GtkWidget *widget, @@ -130,14 +143,20 @@ find_cursor_window_expose (GtkWidget *widget, else { /* only take a screenshot once in the first iteration */ if (px == 1) { - pixbuf = get_rectangle_screenshot (root_x + x - (circle_size / 2) - workaround_offset, root_y + y - (circle_size / 2) - workaround_offset, widget); + /* this offset has to match the screenshot */ + screenshot_offset_x = root_x + x - (circle_size / 2) - workaround_offset; + screenshot_offset_y = root_y + y - (circle_size / 2) - workaround_offset; + + pixbuf = get_rectangle_screenshot (screenshot_offset_x, screenshot_offset_y); if (!pixbuf) g_warning("Getting screenshot failed"); } if (pixbuf) { - /* FIXME: use 0,0 as coordinates */ - gdk_cairo_set_source_pixbuf (cr, pixbuf, 0 - workaround_offset, 0 - workaround_offset); + if (screenshot_offset_x > 0) screenshot_offset_x = 0; + if (screenshot_offset_y > 0) screenshot_offset_y = 0; + + gdk_cairo_set_source_pixbuf (cr, pixbuf, 0 - screenshot_offset_x - workaround_offset, 0 - screenshot_offset_y - workaround_offset); } } -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
