Use CSS padding for overlay
This commit is contained in:
parent
dd2568a2b4
commit
b2c8f77be6
@ -33,7 +33,6 @@
|
|||||||
|
|
||||||
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
|
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
|
||||||
|
|
||||||
#define PADDING 8
|
|
||||||
#define SCREEN_MARGIN_PERCENT 0.02
|
#define SCREEN_MARGIN_PERCENT 0.02
|
||||||
|
|
||||||
static void layer_surface_configure(void *data,
|
static void layer_surface_configure(void *data,
|
||||||
@ -102,15 +101,14 @@ static void resize(struct wd_output *output) {
|
|||||||
pango_layout_get_pixel_size(layout, &width, &height);
|
pango_layout_get_pixel_size(layout, &width, &height);
|
||||||
g_object_unref(layout);
|
g_object_unref(layout);
|
||||||
|
|
||||||
// broken upstream in GTK
|
|
||||||
/*
|
|
||||||
GtkBorder padding;
|
|
||||||
gtk_style_context_get(style_ctx, GTK_STATE_FLAG_NORMAL,
|
|
||||||
GTK_STYLE_PROPERTY_PADDING, padding, NULL);
|
|
||||||
*/
|
|
||||||
|
|
||||||
width = min(width, screen_width - margin * 2) + PADDING * 2;
|
GtkBorder padding;
|
||||||
height = min(height, screen_height - margin * 2) + PADDING * 2;
|
gtk_style_context_get_padding(style_ctx, GTK_STATE_FLAG_NORMAL, &padding);
|
||||||
|
|
||||||
|
width = min(width, screen_width - margin * 2)
|
||||||
|
+ padding.left + padding.right;
|
||||||
|
height = min(height, screen_height - margin * 2)
|
||||||
|
+ padding.top + padding.bottom;
|
||||||
|
|
||||||
zwlr_layer_surface_v1_set_margin(output->overlay_layer_surface,
|
zwlr_layer_surface_v1_set_margin(output->overlay_layer_surface,
|
||||||
margin, margin, margin, margin);
|
margin, margin, margin, margin);
|
||||||
@ -177,11 +175,13 @@ gboolean window_draw(GtkWidget *widget, cairo_t *cr, gpointer data) {
|
|||||||
int height = gtk_widget_get_allocated_height(widget);
|
int height = gtk_widget_get_allocated_height(widget);
|
||||||
gtk_render_background(style_ctx, cr, 0, 0, width, height);
|
gtk_render_background(style_ctx, cr, 0, 0, width, height);
|
||||||
|
|
||||||
|
GtkBorder padding;
|
||||||
|
gtk_style_context_get_padding(style_ctx, GTK_STATE_FLAG_NORMAL, &padding);
|
||||||
PangoContext *pango = gtk_widget_get_pango_context(widget);
|
PangoContext *pango = gtk_widget_get_pango_context(widget);
|
||||||
PangoLayout *layout = create_text_layout(head, pango, style_ctx);
|
PangoLayout *layout = create_text_layout(head, pango, style_ctx);
|
||||||
|
|
||||||
gdk_cairo_set_source_rgba(cr, &fg);
|
gdk_cairo_set_source_rgba(cr, &fg);
|
||||||
cairo_move_to(cr, PADDING, PADDING);
|
cairo_move_to(cr, padding.left, padding.top);
|
||||||
pango_cairo_show_layout(cr, layout);
|
pango_cairo_show_layout(cr, layout);
|
||||||
g_object_unref(layout);
|
g_object_unref(layout);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Loading…
Reference in New Issue
Block a user