[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r99493: xterm.c (XTflash): Use Gdk-ro
From: |
Jan D. |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r99493: xterm.c (XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get |
Date: |
Sat, 13 Feb 2010 14:28:09 +0100 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 99493 [merge]
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Sat 2010-02-13 14:28:09 +0100
message:
xterm.c (XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get
overdrawn.
modified:
src/ChangeLog
src/xterm.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2010-02-13 12:54:50 +0000
+++ b/src/ChangeLog 2010-02-13 13:27:32 +0000
@@ -1,7 +1,9 @@
2010-02-13 Jan Djärv <address@hidden>
- * 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.
+ (XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get
+ overdrawn.
2010-02-10 Jan Djärv <address@hidden>
=== modified file 'src/xterm.c'
--- a/src/xterm.c 2010-02-13 12:54:50 +0000
+++ b/src/xterm.c 2010-02-13 13:27:32 +0000
@@ -3015,6 +3015,21 @@
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;
/* Create a GC that will use the GXxor function to flip foreground
@@ -3029,7 +3044,7 @@
gc = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
GCFunction | GCForeground, &values);
}
-
+#endif
{
/* Get the height not including a menu bar widget. */
int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f));
@@ -3072,6 +3087,7 @@
(height - flash_height
- FRAME_INTERNAL_BORDER_WIDTH (f)),
width, flash_height);
+
}
else
/* If it is short, flash it all. */
@@ -3133,7 +3149,12 @@
flash_left, 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);
+#endif
x_flush (f);
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r99493: xterm.c (XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get,
Jan D. <=