summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/frames.c16
-rw-r--r--src/ui/frames.h12
-rw-r--r--src/ui/ui.c13
3 files changed, 24 insertions, 17 deletions
diff --git a/src/ui/frames.c b/src/ui/frames.c
index d65dac82..ad7e10c8 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -37,6 +37,7 @@
#include "theme.h"
#include "prefs.h"
#include "ui.h"
+#include "display.h"
#ifdef HAVE_SHAPE
#include <X11/extensions/shape.h>
@@ -1063,11 +1064,12 @@ get_frame_region (int window_width,
#endif /* HAVE_SHAPE */
void
-meta_frames_apply_shapes (MetaFrames *frames,
- Window xwindow,
- int new_window_width,
- int new_window_height,
- gboolean window_has_shape)
+meta_frames_apply_shapes (MetaFrames *frames,
+ MetaDisplay *meta_display,
+ Window xwindow,
+ int new_window_width,
+ int new_window_height,
+ gboolean window_has_shape)
{
#ifdef HAVE_SHAPE
/* Apply shapes as if window had new_window_width, new_window_height */
@@ -1095,7 +1097,9 @@ meta_frames_apply_shapes (MetaFrames *frames,
meta_frames_calc_geometry (frames, frame, &fgeom);
- compositing_manager = meta_prefs_get_compositing_manager ();
+ compositing_manager = meta_prefs_get_compositing_manager () &&
+ meta_display &&
+ !!(meta_display_get_compositor (meta_display));
if (!window_has_shape && compositing_manager)
return;
diff --git a/src/ui/frames.h b/src/ui/frames.h
index ad86ee44..f4821e43 100644
--- a/src/ui/frames.h
+++ b/src/ui/frames.h
@@ -28,6 +28,7 @@
#include <gdk/gdkx.h>
#include "common.h"
#include "theme.h"
+#include "types.h"
typedef enum
{
@@ -135,11 +136,12 @@ void meta_frames_get_borders (MetaFrames *frames,
Window xwindow,
MetaFrameBorders *borders);
-void meta_frames_apply_shapes (MetaFrames *frames,
- Window xwindow,
- int new_window_width,
- int new_window_height,
- gboolean window_has_shape);
+void meta_frames_apply_shapes (MetaFrames *frames,
+ MetaDisplay *meta_display,
+ Window xwindow,
+ int new_window_width,
+ int new_window_height,
+ gboolean window_has_shape);
cairo_region_t *meta_frames_get_frame_bounds (MetaFrames *frames,
Window xwindow,
int window_width,
diff --git a/src/ui/ui.c b/src/ui/ui.c
index 9976c701..2b15cc82 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -458,13 +458,14 @@ meta_ui_repaint_frame (MetaUI *ui,
}
void
-meta_ui_apply_frame_shape (MetaUI *ui,
- Window xwindow,
- int new_window_width,
- int new_window_height,
- gboolean window_has_shape)
+meta_ui_apply_frame_shape (MetaUI *ui,
+ MetaDisplay *display,
+ Window xwindow,
+ int new_window_width,
+ int new_window_height,
+ gboolean window_has_shape)
{
- meta_frames_apply_shapes (ui->frames, xwindow,
+ meta_frames_apply_shapes (ui->frames, display, xwindow,
new_window_width, new_window_height,
window_has_shape);
}