summaryrefslogtreecommitdiff
path: root/community/mate-utils/422504e251442ca9921c4218151cffb6548280e6.diff
blob: fd71dbb575f53925e6ba5ce1f5d98c51ee0f79f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
diff --git a/mate-screenshot/mate-screenshot.c b/mate-screenshot/mate-screenshot.c
index 63ec5d9..6510f7f 100644
--- a/mate-screenshot/mate-screenshot.c
+++ b/mate-screenshot/mate-screenshot.c
@@ -809,13 +809,14 @@ enum
 finish_prepare_screenshot (char *initial_uri, GdkWindow *window, GdkRectangle *rectangle)
 {  
   ScreenshotDialog *dialog;
+  gboolean include_mask = (!take_window_shot && !take_area_shot);
 
   /* always disable window border for full-desktop or selected-area screenshots */
   if (!take_window_shot)
-    screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, FALSE);
+    screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, FALSE, include_mask);
   else
     {
-      screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, include_border);
+      screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, include_border, include_mask);
 
       switch (border_effect[0])
         {
diff --git a/mate-screenshot/screenshot-utils.c b/mate-screenshot/screenshot-utils.c
index b41ae4b..faed676 100644
--- a/mate-screenshot/screenshot-utils.c
+++ b/mate-screenshot/screenshot-utils.c
@@ -670,7 +670,8 @@
 screenshot_get_pixbuf (GdkWindow    *window,
                        GdkRectangle *rectangle,
                        gboolean      include_pointer,
-                       gboolean      include_border)
+                       gboolean      include_border,
+                       gboolean      include_mask)
 {
   GdkWindow *root;
   GdkPixbuf *screenshot;
@@ -738,7 +739,11 @@
                                              x_orig, y_orig, 0, 0,
                                              width, height);
 
-  mask_monitors (screenshot, root);
+  /*
+   * Masking currently only works properly with full-screen shots
+   */
+  if (include_mask)
+      mask_monitors (screenshot, root);
 
 #ifdef HAVE_X11_EXTENSIONS_SHAPE_H
   if (include_border)
diff --git a/mate-screenshot/screenshot-utils.h b/mate-screenshot/screenshot-utils.h
index 0af2ba3..5404bde 100644
--- a/mate-screenshot/screenshot-utils.h
+++ b/mate-screenshot/screenshot-utils.h
@@ -36,7 +36,8 @@ gboolean   screenshot_select_area         (int *px,
 GdkPixbuf *screenshot_get_pixbuf          (GdkWindow *win,
                                            GdkRectangle *rectangle,
                                            gboolean include_pointer,
-                                           gboolean include_border);
+                                           gboolean include_border,
+                                           gboolean include_mask);
 
 void       screenshot_show_error_dialog   (GtkWindow   *parent,
                                            const gchar *message,