ciaro fixes

This commit is contained in:
2026-01-17 16:19:56 -07:00
parent 5ea424d0e8
commit 136e63a6cd

View File

@@ -22,6 +22,7 @@
#include <ctype.h>
#include <gdk/gdkkeysyms.h>
#include <gdk/gdkcairo.h>
#include "../common/zoitechat.h"
#include "../common/fe.h"
@@ -4115,9 +4116,8 @@ mg_drag_drop_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, guint
gboolean
mg_drag_motion_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, guint time, gpointer scbar)
{
GdkGC *gc;
GdkColor col;
GdkGCValues val;
cairo_t *cr;
int half, width, height;
int ox, oy;
GdkDrawable *draw;
@@ -4144,16 +4144,13 @@ mg_drag_motion_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, gui
draw = gtk_widget_get_window (widget);
}
val.subwindow_mode = GDK_INCLUDE_INFERIORS;
val.graphics_exposures = 0;
val.function = GDK_XOR;
gc = gdk_gc_new_with_values (gtk_widget_get_window (widget), &val, GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW | GDK_GC_FUNCTION);
col.red = rand() % 0xffff;
col.green = rand() % 0xffff;
col.blue = rand() % 0xffff;
gdk_colormap_alloc_color (gtk_widget_get_colormap (widget), &col, FALSE, TRUE);
gdk_gc_set_foreground (gc, &col);
cr = gdk_cairo_create (draw);
cairo_set_operator (cr, CAIRO_OPERATOR_XOR);
gdk_cairo_set_source_color (cr, &col);
cairo_set_line_width (cr, 1.0);
half = height / 2;
@@ -4171,18 +4168,20 @@ mg_drag_motion_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, gui
if (y < half)
{
gdk_draw_rectangle (draw, gc, FALSE, 1 + ox, 2 + oy, width - 3, half - 4);
gdk_draw_rectangle (draw, gc, FALSE, 0 + ox, 1 + oy, width - 1, half - 2);
cairo_rectangle (cr, 1 + ox, 2 + oy, width - 3, half - 4);
cairo_rectangle (cr, 0 + ox, 1 + oy, width - 1, half - 2);
cairo_stroke (cr);
gtk_widget_queue_draw_area (widget, ox, half + oy, width, height - half);
}
else
{
gdk_draw_rectangle (draw, gc, FALSE, 0 + ox, half + 1 + oy, width - 1, half - 2);
gdk_draw_rectangle (draw, gc, FALSE, 1 + ox, half + 2 + oy, width - 3, half - 4);
cairo_rectangle (cr, 0 + ox, half + 1 + oy, width - 1, half - 2);
cairo_rectangle (cr, 1 + ox, half + 2 + oy, width - 3, half - 4);
cairo_stroke (cr);
gtk_widget_queue_draw_area (widget, ox, oy, width, half);
}
g_object_unref (gc);
cairo_destroy (cr);
return TRUE;
}