perf-helper: Add content for custom drawing
Drawing windows got a lot more involved with the advent of client-side decorations. Instead of accounting for visible and invisible borders, titlebar and shadows when necessary, just add an empty child for the custom drawing. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/887
This commit is contained in:
parent
2ba4108838
commit
3c4c37e4d0
@ -119,9 +119,9 @@ on_window_map_event (GtkWidget *window,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
on_window_draw (GtkWidget *window,
|
||||
cairo_t *cr,
|
||||
WindowInfo *info)
|
||||
on_child_draw (GtkWidget *window,
|
||||
cairo_t *cr,
|
||||
WindowInfo *info)
|
||||
{
|
||||
cairo_rectangle_int_t allocation;
|
||||
double x_offset, y_offset;
|
||||
@ -203,6 +203,7 @@ create_window (int width,
|
||||
gboolean redraws)
|
||||
{
|
||||
WindowInfo *info;
|
||||
GtkWidget *child;
|
||||
|
||||
info = g_new0 (WindowInfo, 1);
|
||||
info->width = width;
|
||||
@ -218,10 +219,13 @@ create_window (int width,
|
||||
info->pending = TRUE;
|
||||
info->start_time = -1;
|
||||
|
||||
child = g_object_new (GTK_TYPE_BOX, "visible", TRUE, "app-paintable", TRUE, NULL);
|
||||
gtk_container_add (GTK_CONTAINER (info->window), child);
|
||||
|
||||
gtk_widget_set_size_request (info->window, width, height);
|
||||
gtk_widget_set_app_paintable (info->window, TRUE);
|
||||
g_signal_connect (info->window, "map-event", G_CALLBACK (on_window_map_event), info);
|
||||
g_signal_connect (info->window, "draw", G_CALLBACK (on_window_draw), info);
|
||||
g_signal_connect (child, "draw", G_CALLBACK (on_child_draw), info);
|
||||
gtk_widget_show (info->window);
|
||||
|
||||
if (info->redraws)
|
||||
|
Loading…
Reference in New Issue
Block a user