From 68ac211222556935b11aec2613e4966388ae53b1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Aug 28 2006 03:38:43 +0000 Subject: fix some redraw issues --- diff --git a/gnome-applets.spec b/gnome-applets.spec index d49dc4b..ca4a2b9 100644 --- a/gnome-applets.spec +++ b/gnome-applets.spec @@ -32,7 +32,7 @@ Summary: Small applications for the GNOME panel Name: gnome-applets Version: 2.15.90 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 1 License: GPL Group: User Interface/Desktops @@ -54,6 +54,8 @@ Patch17: keyboard-drawing-label-color.patch Patch18: keyboard-drawing-primary.patch # http://bugzilla.gnome.org/show_bug.cgi?id=352781 Patch19: keyboard-drawing-corner.patch +# http://bugzilla.gnome.org/show_bug.cgi?id=353163 +Patch20: keyboard-drawing-redraw.patch URL: http://www.gnome.org/ @@ -139,7 +141,7 @@ small utilities for the GNOME panel. %patch17 -p1 -b .label-color %patch18 -p1 -b .primary %patch19 -p1 -b .corner - +%patch20 -p1 -b .redraw cp gswitchit/gswitchit-applet.png gswitchit/gswitchit-properties-capplet.png @@ -307,6 +309,9 @@ fi %{_libdir}/pkgconfig/gweather.pc %changelog +* Sun Aug 27 2006 Matthias Clasen - 1:2.15.90-4.fc6 +- Fix some redraw issues in the keyboard capplet + * Sun Aug 27 2006 Matthias Clasen - 1:2.15.90-3.fc6 - More keyboard drawing improvements diff --git a/keyboard-drawing-redraw.patch b/keyboard-drawing-redraw.patch new file mode 100644 index 0000000..4637c29 --- /dev/null +++ b/keyboard-drawing-redraw.patch @@ -0,0 +1,48 @@ +--- control-center-2.15.92/libkbdraw/keyboard-drawing.c.redraw 2006-08-27 22:42:37.000000000 -0400 ++++ control-center-2.15.92/libkbdraw/keyboard-drawing.c 2006-08-27 22:54:18.000000000 -0400 +@@ -1176,6 +1176,26 @@ + } + + static void ++redraw_overlapping_doodads ( ++ KeyboardDrawing * drawing, ++ KeyboardDrawingKey * key) ++{ ++ GList *list; ++ gboolean do_draw = FALSE; ++ ++ for (list = drawing->keyboard_items; list; list = list->next) ++ { ++ KeyboardDrawingItem * item = list->data; ++ ++ if (do_draw && item->type == KEYBOARD_DRAWING_ITEM_TYPE_DOODAD) ++ draw_doodad (drawing, (KeyboardDrawingDoodad *) item); ++ ++ if (list->data == key) ++ do_draw = TRUE; ++ } ++} ++ ++static void + draw_keyboard_item ( + KeyboardDrawingItem * item, + KeyboardDrawing * drawing) +@@ -1340,7 +1360,7 @@ + key->pressed = (event->type == GDK_KEY_PRESS); + + draw_key (drawing, key); +- ++ redraw_overlapping_doodads (drawing, key); + invalidate_key_region (drawing, key); + + return TRUE; +@@ -1370,7 +1390,9 @@ + if (drawing->keys[i].pressed) + { + drawing->keys[i].pressed = FALSE; ++ + draw_key (drawing, drawing->keys + i); ++ redraw_overlapping_doodads (drawing, drawing->keys + i); + invalidate_key_region (drawing, drawing->keys + i); + } +