Commit 471e4f04 authored by Jan Djärv's avatar Jan Djärv

xterm.c (XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get

overdrawn.
parent 98599f74
2010-02-13 Jan Djärv <jan.h.d@swipnet.se> 2010-02-13 Jan Djärv <jan.h.d@swipnet.se>
* xterm.c (x_clear_frame_area): Cal gtk_widget_queue_draw if USE_GTK, * xterm.c (x_clear_frame_area): Call gtk_widget_queue_draw if USE_GTK,
bug #5571. bug #5571.
(XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get
overdrawn.
2010-02-10 Jan Djärv <jan.h.d@swipnet.se> 2010-02-10 Jan Djärv <jan.h.d@swipnet.se>
......
...@@ -3015,6 +3015,21 @@ XTflash (f) ...@@ -3015,6 +3015,21 @@ XTflash (f)
BLOCK_INPUT; BLOCK_INPUT;
{ {
#ifdef USE_GTK
/* Use Gdk routines to draw. This way, we won't draw over scroll bars
when the scroll bars and the edit widget share the same X window. */
GdkGCValues vals;
vals.foreground.pixel = (FRAME_FOREGROUND_PIXEL (f)
^ FRAME_BACKGROUND_PIXEL (f));
vals.function = GDK_XOR;
GdkGC *gc = gdk_gc_new_with_values (FRAME_GTK_WIDGET (f)->window,
&vals,
GDK_GC_FUNCTION
| GDK_GC_FOREGROUND);
#define XFillRectangle(d, win, gc, x, y, w, h) \
gdk_draw_rectangle (FRAME_GTK_WIDGET (f)->window, \
gc, TRUE, x, y, w, h)
#else
GC gc; GC gc;
/* Create a GC that will use the GXxor function to flip foreground /* Create a GC that will use the GXxor function to flip foreground
...@@ -3029,7 +3044,7 @@ XTflash (f) ...@@ -3029,7 +3044,7 @@ XTflash (f)
gc = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
GCFunction | GCForeground, &values); GCFunction | GCForeground, &values);
} }
#endif
{ {
/* Get the height not including a menu bar widget. */ /* Get the height not including a menu bar widget. */
int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f)); int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f));
...@@ -3072,6 +3087,7 @@ XTflash (f) ...@@ -3072,6 +3087,7 @@ XTflash (f)
(height - flash_height (height - flash_height
- FRAME_INTERNAL_BORDER_WIDTH (f)), - FRAME_INTERNAL_BORDER_WIDTH (f)),
width, flash_height); width, flash_height);
} }
else else
/* If it is short, flash it all. */ /* If it is short, flash it all. */
...@@ -3133,7 +3149,12 @@ XTflash (f) ...@@ -3133,7 +3149,12 @@ XTflash (f)
flash_left, FRAME_INTERNAL_BORDER_WIDTH (f), flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
#ifdef USE_GTK
g_object_unref (G_OBJECT (gc));
#undef XFillRectangle
#else
XFreeGC (FRAME_X_DISPLAY (f), gc); XFreeGC (FRAME_X_DISPLAY (f), gc);
#endif
x_flush (f); x_flush (f);
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment