summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/common/msd-osd-window.c103
1 files changed, 54 insertions, 49 deletions
diff --git a/plugins/common/msd-osd-window.c b/plugins/common/msd-osd-window.c
index 30ffd57..9df23e0 100644
--- a/plugins/common/msd-osd-window.c
+++ b/plugins/common/msd-osd-window.c
@@ -323,88 +323,92 @@ expose_when_composited (GtkWidget *widget, GdkEventExpose *event)
* either case (composited or non-composited), callers can assume that this works
* identically to a GtkWindow without any intermediate widgetry.
*/
-static void
#if GTK_CHECK_VERSION (3, 0, 0)
+static void
draw_when_not_composited (GtkWidget *widget, cairo_t *cr)
-#else
-expose_when_not_composited (GtkWidget *widget, GdkEventExpose *event)
-#endif
{
-#if GTK_CHECK_VERSION (3, 0, 0)
int width;
int height;
-#else
- GtkAllocation allocation;
-#endif
-
-#if GTK_CHECK_VERSION (3, 0, 0)
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_width (widget);
-#else
- gtk_widget_get_allocation (widget, &allocation);
-#endif
gtk_paint_shadow (gtk_widget_get_style (widget),
-#if GTK_CHECK_VERSION (3, 0, 0)
cr,
-#else
- gtk_widget_get_window (widget),
-#endif
gtk_widget_get_state (widget),
GTK_SHADOW_OUT,
-#if !GTK_CHECK_VERSION (3, 0, 0)
- &event->area,
-#endif
widget,
NULL, /* NULL detail -> themes should use the MsdOsdWindow widget name, probably */
0,
0,
-#if GTK_CHECK_VERSION (3, 0, 0)
width,
height);
+}
#else
+static void
+expose_when_not_composited (GtkWidget *widget, GdkEventExpose *event)
+{
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (widget, &allocation);
+
+ gtk_paint_shadow (gtk_widget_get_style (widget),
+ gtk_widget_get_window (widget),
+ gtk_widget_get_state (widget),
+ GTK_SHADOW_OUT,
+ &event->area,
+ widget,
+ NULL, /* NULL detail -> themes should use the MsdOsdWindow widget name, probably */
+ 0,
+ 0,
allocation.width,
allocation.height);
-#endif
}
+#endif
-static gboolean
#if GTK_CHECK_VERSION (3, 0, 0)
+static gboolean
msd_osd_window_draw (GtkWidget *widget,
- cairo_t *cr)
-#else
-msd_osd_window_expose_event (GtkWidget *widget,
- GdkEventExpose *event)
-#endif
+ cairo_t *cr)
{
MsdOsdWindow *window;
GtkWidget *child;
window = MSD_OSD_WINDOW (widget);
-#if GTK_CHECK_VERSION (3, 0, 0)
if (window->priv->is_composited)
draw_when_composited (widget, cr);
else
draw_when_not_composited (widget, cr);
+
+ child = gtk_bin_get_child (GTK_BIN (window));
+ if (child)
+ gtk_container_propagate_draw (GTK_CONTAINER (window), child, cr);
+
+ return FALSE;
+}
#else
+static gboolean
+msd_osd_window_expose_event (GtkWidget *widget,
+ GdkEventExpose *event)
+{
+ MsdOsdWindow *window;
+ GtkWidget *child;
+
+ window = MSD_OSD_WINDOW (widget);
+
if (window->priv->is_composited)
expose_when_composited (widget, event);
else
expose_when_not_composited (widget, event);
-#endif
child = gtk_bin_get_child (GTK_BIN (window));
if (child)
-#if GTK_CHECK_VERSION (3, 0, 0)
- gtk_container_propagate_draw (GTK_CONTAINER (window), child, cr);
-#else
gtk_container_propagate_expose (GTK_CONTAINER (window), child, event);
-#endif
- return FALSE;
+ return FALSE;
}
+#endif
static void
msd_osd_window_real_show (GtkWidget *widget)
@@ -440,39 +444,40 @@ msd_osd_window_real_realize (GtkWidget *widget)
GdkScreen *screen;
GdkVisual *visual;
cairo_region_t *region;
-#else
- GdkColormap *colormap;
- GtkAllocation allocation;
- GdkBitmap *mask;
- cairo_t *cr;
-#endif
-#if GTK_CHECK_VERSION (3, 0, 0)
screen = gtk_widget_get_screen (widget);
visual = gdk_screen_get_rgba_visual (screen);
if (visual == NULL) {
visual = gdk_screen_get_system_visual (screen);
}
+
gtk_widget_set_visual (widget, visual);
+
+ if (GTK_WIDGET_CLASS (msd_osd_window_parent_class)->realize) {
+ GTK_WIDGET_CLASS (msd_osd_window_parent_class)->realize (widget);
+ }
+
+ /* make the whole window ignore events */
+ region = cairo_region_create ();
+ gtk_widget_input_shape_combine_region (widget, region);
+ cairo_region_destroy (region);
#else
+ GdkColormap *colormap;
+ GtkAllocation allocation;
+ GdkBitmap *mask;
+ cairo_t *cr;
+
colormap = gdk_screen_get_rgba_colormap (gtk_widget_get_screen (widget));
if (colormap != NULL) {
gtk_widget_set_colormap (widget, colormap);
}
-#endif
if (GTK_WIDGET_CLASS (msd_osd_window_parent_class)->realize) {
GTK_WIDGET_CLASS (msd_osd_window_parent_class)->realize (widget);
}
-#if GTK_CHECK_VERSION (3, 0, 0)
- /* make the whole window ignore events */
- region = cairo_region_create ();
- gtk_widget_input_shape_combine_region (widget, region);
- cairo_region_destroy (region);
-#else
gtk_widget_get_allocation (widget, &allocation);
mask = gdk_pixmap_new (gtk_widget_get_window (widget),
allocation.width,