summaryrefslogtreecommitdiffstats
path: root/redhat/applications/gtk-qt-engine/1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/applications/gtk-qt-engine/1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff')
-rw-r--r--redhat/applications/gtk-qt-engine/1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff553
1 files changed, 553 insertions, 0 deletions
diff --git a/redhat/applications/gtk-qt-engine/1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff b/redhat/applications/gtk-qt-engine/1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff
new file mode 100644
index 000000000..fadce37cf
--- /dev/null
+++ b/redhat/applications/gtk-qt-engine/1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff
@@ -0,0 +1,553 @@
+commit 6e6dbb068e03a8bb818a76ba774d6f94ade7389f
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1387752298 -0600
+
+ Fix numerous drawing glitches in Firefox
+
+diff --git a/src/qt_qt_wrapper.cpp b/src/qt_qt_wrapper.cpp
+index d3e13bb..928aef3 100644
+--- a/src/qt_qt_wrapper.cpp
++++ b/src/qt_qt_wrapper.cpp
+@@ -640,7 +640,7 @@ void drawButton(GdkWindow* window, GtkStyle* style, GtkStateType state, int defa
+ }
+
+ if (gwidget) {
+- TQString gwLabel(gtk_button_get_label(gwidget));
++ TQString gwLabel(gtk_button_get_label(gwidget));
+ if (gtk_button_get_use_stock(gwidget)) {
+ GtkStockItem stockData;
+ gtk_stock_lookup(gwLabel.ascii(), &stockData);
+@@ -649,8 +649,8 @@ void drawButton(GdkWindow* window, GtkStyle* style, GtkStateType state, int defa
+ gwLabel.replace("&", "&&");
+ gwLabel.replace("_", "&");
+
+- TQPixmap buttonicon;
+- TQBitmap buttonicon_mask;
++ TQPixmap buttonicon;
++ TQBitmap buttonicon_mask;
+
+ GtkWidget* giconwidget = gtk_button_get_image(gwidget);
+ if (giconwidget) {
+@@ -735,9 +735,9 @@ void drawButton(GdkWindow* window, GtkStyle* style, GtkStateType state, int defa
+ if (defaultButton)
+ sflags |= TQStyle::Style_ButtonDefault;
+ button.setDefault(defaultButton);
+-
++
+ painter.fillRect(0, 0, w, h, tqApp->palette().active().background());
+-
++
+ tqApp->style().drawControl(TQStyle::CE_PushButton, &painter, &button,
+ TQRect(0,0,w,h), button.palette().active(), sflags);
+
+diff --git a/src/qt_theme_draw.c b/src/qt_theme_draw.c
+index 20d8c87..e84c4f7 100644
+--- a/src/qt_theme_draw.c
++++ b/src/qt_theme_draw.c
+@@ -676,8 +676,9 @@ draw_box(GtkStyle * style,
+ int nbpages;
+ sanitize_size(window, &width, &height);
+
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Box (%d,%d,%d,%d) Widget: %s Detail: %s\n",x,y,width,height,gtk_widget_get_name(widget),detail);
++ }
+
+ if (GTK_IS_SCROLLBAR(widget))
+ {
+@@ -685,38 +686,54 @@ draw_box(GtkStyle * style,
+ {
+ GtkAdjustment* adj = (GtkAdjustment*)gtk_range_get_adjustment(GTK_RANGE(widget));
+ int orientation = ((width>height) ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
+-
++
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawScrollBar(window, style, state_type, orientation, adj, x, y, width, height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ return;
+ }
+ if (DETAIL("menuitem"))
+ {
+ /* Crude way of checking if it's a menu item, or a menubar item */
+- if (x != 0)
++ if (x != 0) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawMenuBarItem(window,style,state_type,x,y,width,height);
+- else
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
++ else {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawMenuItem(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
+ return;
+ }
+ if (DETAIL("menubar"))
+ {
+- if (openOfficeFix == 1)
++ if (openOfficeFix == 1) {
+ parent_class->draw_box (style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
+- else if (mozillaFix == 1)
++ }
++ else if (mozillaFix == 1) {
+ parent_class->draw_box (style, window, state_type, GTK_SHADOW_NONE, area, widget, detail, x, y, width, height);
+- else
++ }
++ else {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawMenubar(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
+ return;
+ }
+ if (DETAIL("menu"))
+ {
+- if (openOfficeFix == 1)
++ if (openOfficeFix == 1) {
+ parent_class->draw_box (style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
+- else
+- {
+- if ((x >= 0) && (y >= 0)) /* Work around weirdness in firefox */
++ }
++ else {
++ if ((x >= 0) && (y >= 0)) { /* Work around weirdness in firefox */
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawMenu(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
+ }
+ return;
+ }
+@@ -724,16 +741,15 @@ draw_box(GtkStyle * style,
+ {
+ double fraction = gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(widget));
+ GtkProgressBarOrientation orientation = gtk_progress_bar_get_orientation(GTK_PROGRESS_BAR(widget));
+-
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawProgressBar(window,style,state_type,orientation,fraction,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+ if (GTK_IS_PROGRESS(widget) && DETAIL("bar"))
+ {
+ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+-
+ drawProgressChunk(window,style,state_type,x,y,width,height);
+-
+ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+@@ -742,8 +758,7 @@ draw_box(GtkStyle * style,
+ GtkAdjustment* adj;
+ int inverted;
+ GValue *val = (GValue*)g_malloc( sizeof(GValue) );
+- if (gdk_window_is_viewable(gtk_widget_get_parent_window(widget)))
+- {
++ if (gdk_window_is_viewable(gtk_widget_get_parent_window(widget))) {
+ GdkPixbuf *gpix;
+ gpix = gdk_pixbuf_get_from_drawable(NULL, gtk_widget_get_parent_window(widget),NULL, x, y, 0, 0, width, height);
+ setFillPixmap(gpix);
+@@ -758,7 +773,9 @@ draw_box(GtkStyle * style,
+ g_free(val);
+
+ adj = gtk_range_get_adjustment((GtkRange *) widget);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawSlider(window,style,state_type,adj,x,y,width,height, (GTK_RANGE(widget))->orientation, inverted);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+ if (DETAIL("button"))
+@@ -767,18 +784,15 @@ draw_box(GtkStyle * style,
+ int toolbutton = 0;
+ parent = gtk_widget_get_parent(widget);
+
+- if (parent && (GTK_IS_CLIST(parent) || GTK_IS_LIST(parent) || GTK_IS_TREE_VIEW(parent)))
+- {
++ if (parent && (GTK_IS_CLIST(parent) || GTK_IS_LIST(parent) || GTK_IS_TREE_VIEW(parent))) {
+ drawListHeader(window,style,state_type,x,y,width,height);
+ return;
+ }
+
+ /* this is a very very bad hack but there seems to be no way to find if a button is on a
+ * toolbar in gtk */
+- while (1)
+- {
+- if (GTK_IS_WIDGET(parent))
+- {
++ while (1) {
++ if (GTK_IS_WIDGET(parent)) {
+ #ifdef HAVE_BONOBO
+ if (GTK_IS_TOOLBAR(parent) || BONOBO_IS_UI_TOOLBAR(parent))
+ #else
+@@ -789,17 +803,20 @@ draw_box(GtkStyle * style,
+ break;
+ }
+ }
+- else
++ else {
+ break;
++ }
+ parent = gtk_widget_get_parent(parent);
+ }
+
+ parent = gtk_widget_get_parent(widget);
+
+- if (toolbutton)
++ if (toolbutton) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawToolButton(window,style,state_type,x,y,width,height);
+- else
+- {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
++ else {
+ /* Baghira hack -- rounded buttons really ugly when they are small like
+ on a dropdown entry box -- eg. search/replace in gedit */
+ /* Draw square buttons only if number of children in the hbox is 2 and
+@@ -807,31 +824,35 @@ draw_box(GtkStyle * style,
+ int defaultButton = gtk_widget_has_focus(widget);
+ GtkWindow* toplevel;
+
+- if (isBaghira && GTK_IS_BOX(parent) && (g_list_length(GTK_BOX(parent)->children) == 2))
+- {
++ if (isBaghira && GTK_IS_BOX(parent) && (g_list_length(GTK_BOX(parent)->children) == 2)) {
+ child_list = g_list_first((GTK_BOX(parent)->children));
+ child = (GtkWidget *)child_list->data;
+- if (GTK_IS_ENTRY(child))
+- {
++ if (GTK_IS_ENTRY(child)) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawSquareButton(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+
+ child_list = g_list_last((GTK_BOX(parent)->children));
+ child = ((GtkBoxChild *)child_list->data)->widget;
+- if (GTK_IS_ENTRY(child))
+- {
++ if (GTK_IS_ENTRY(child)) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawSquareButton(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+
+ }
+
+ toplevel = GTK_WINDOW(gtk_widget_get_toplevel(widget));
+- if (toplevel && toplevel->default_widget == widget)
++ if (toplevel && toplevel->default_widget == widget) {
+ defaultButton = 1;
+-
++ }
++
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawButton(window,style,state_type,defaultButton,x,y,width,height,GTK_BUTTON(widget));
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ return;
+ }
+@@ -860,43 +881,55 @@ draw_box(GtkStyle * style,
+
+ /* Now draw the tab -- tab position is also calculated in this function
+ checkout drawTabFrame() for drawing tabbarbase. */
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawTabNG(window,style,state_type,x, y, width/*-2*/, height, nb );
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ else {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawTab(window,style,state_type,x,y,width/*-2*/,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ return;
+ }
+- if (DETAIL("optionmenu"))
+- {
++ if (DETAIL("optionmenu")) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawComboBox(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+- if (DETAIL("toolbar"))
+- {
++ if (DETAIL("toolbar")) {
+ if (openOfficeFix == 1)
+ parent_class->draw_box (style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
+ else
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawToolbar(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+- if (DETAIL("spinbutton_up"))
+- {
++ if (DETAIL("spinbutton_up")) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawSpinButton(window, style, state_type, 0, x, y, width, height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+- if (DETAIL("spinbutton_down"))
+- {
++ if (DETAIL("spinbutton_down")) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawSpinButton(window, style, state_type, 1, x, y, width, height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+- if (DETAIL("spinbutton"))
++ if (DETAIL("spinbutton")) {
+ return;
++ }
+
+- if (DETAIL("optionmenutab") || DETAIL("buttondefault"))
++ if (DETAIL("optionmenutab") || DETAIL("buttondefault")) {
+ return;
+-
++ }
++
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawFrame(window,style,state_type,shadow_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+
+
+@@ -916,11 +949,11 @@ draw_flat_box(GtkStyle * style,
+ {
+ sanitize_size(window, &width, &height);
+
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Flat Box (%d,%d,%d,%d) Widget: %s Detail: %s %d %d\n",x,y,width,height,gtk_widget_get_name(widget),detail, state_type, GTK_STATE_SELECTED);
++ }
+
+- if (DETAIL("tooltip"))
+- {
++ if (DETAIL("tooltip")) {
+ GdkColor tooltipColor;
+ GdkGCValues gc_values;
+ GdkGCValuesMask gc_values_mask;
+@@ -940,21 +973,25 @@ draw_flat_box(GtkStyle * style,
+ gtk_gc_release(tooltipGc);
+ }
+
+- if ((DETAILHAS("cell_even") || DETAILHAS("cell_odd")) && (state_type == GTK_STATE_SELECTED))
+- {
++ if ((DETAILHAS("cell_even") || DETAILHAS("cell_odd")) && (state_type == GTK_STATE_SELECTED)) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawListViewItem(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+- else if (DETAIL("listitem"))
+- {
++ else if (DETAIL("listitem")) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawListViewItem(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+- else if (DETAILHAS("cell_even"))
+- {
++ else if (DETAILHAS("cell_even")) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ gdk_draw_rectangle(window, style->base_gc[GTK_STATE_NORMAL], TRUE, x, y, width, height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+- else if (DETAILHAS("cell_odd"))
+- {
++ else if (DETAILHAS("cell_odd")) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ gdk_draw_rectangle(window, alternateBackgroundGc(style), TRUE, x, y, width, height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ }
+
+@@ -972,26 +1009,28 @@ draw_check(GtkStyle * style,
+ gint width,
+ gint height)
+ {
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Check (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
++ }
+
+- if (GTK_IS_MENU_ITEM(widget))
+- {
+- if (shadow_type == GTK_SHADOW_IN)
+- {
+- if (gdk_window_is_viewable(gtk_widget_get_parent_window(widget)))
+- {
++ if (GTK_IS_MENU_ITEM(widget)) {
++ if (shadow_type == GTK_SHADOW_IN) {
++ if (gdk_window_is_viewable(gtk_widget_get_parent_window(widget))) {
+ GdkPixbuf *gpix;
+ gpix = gdk_pixbuf_get_from_drawable(NULL, gtk_widget_get_parent_window(widget), NULL, x, y, 0, 0, width, height);
+ setFillPixmap(gpix);
+ g_object_unref(gpix);
+ }
+-
++
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawMenuCheck(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ return;
+ }
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawCheckBox(window,style,state_type,(shadow_type==GTK_SHADOW_IN),x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+
+
+@@ -1009,11 +1048,11 @@ draw_option(GtkStyle * style,
+ gint width,
+ gint height)
+ {
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Option (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
++ }
+
+- if (gdk_window_is_viewable(gtk_widget_get_parent_window(widget)))
+- {
++ if (gdk_window_is_viewable(gtk_widget_get_parent_window(widget))) {
+ GdkPixbuf *gpix;
+ gpix = gdk_pixbuf_get_from_drawable(NULL, gtk_widget_get_parent_window(widget),NULL, x, y, 0, 0, width, height);
+ setFillPixmap(gpix);
+@@ -1022,11 +1061,16 @@ draw_option(GtkStyle * style,
+
+ if (GTK_IS_MENU_ITEM(widget))
+ {
+- if (shadow_type == GTK_SHADOW_IN)
++ if (shadow_type == GTK_SHADOW_IN) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawMenuCheck(window,style,state_type,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
+ return;
+ }
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawRadioButton(window,style,state_type,(shadow_type==GTK_SHADOW_IN),x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+
+
+@@ -1043,8 +1087,9 @@ draw_tab(GtkStyle * style,
+ gint width,
+ gint height)
+ {
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Tab (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
++ }
+
+ gtk_paint_box(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
+ }
+@@ -1218,11 +1263,15 @@ draw_box_gap(GtkStyle* style,
+
+ if (width<0 || height<0) return; /* Eclipse really can be this stupid! */
+
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Box_gap (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
++ }
+
+- if (DETAIL("notebook"))
++ if (DETAIL("notebook")) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawTabFrame(window,style,state_type,x,y-2,width,height+2, gtk_notebook_get_tab_pos((GtkNotebook *)widget));
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
+ }
+
+
+@@ -1245,8 +1294,9 @@ draw_extension(GtkStyle * style,
+
+ sanitize_size (window, &width, &height);
+
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Extension (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
++ }
+
+ gtk_paint_box(style, window, state_type, shadow_type, area, widget, detail,
+ x, y, width, height);
+@@ -1265,8 +1315,9 @@ draw_focus (GtkStyle *style,
+ gint width,
+ gint height)
+ {
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Focus Rect (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
++ }
+
+ GtkWidget* parent = gtk_widget_get_parent(widget);
+
+@@ -1274,7 +1325,9 @@ draw_focus (GtkStyle *style,
+ GTK_IS_RADIO_BUTTON(widget) ||
+ (parent && (GTK_IS_CLIST(parent) || GTK_IS_LIST(parent) || GTK_IS_TREE_VIEW(parent))))
+ {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawFocusRect(window, style, x, y, width, height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ return;
+ }
+@@ -1293,24 +1346,31 @@ draw_slider(GtkStyle * style,
+ gint height,
+ GtkOrientation orientation)
+ {
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Slider (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
++ }
+
+- if (DETAIL("slider"))
+- {
++ if (DETAIL("slider")) {
+ GtkAdjustment* adj = gtk_range_get_adjustment(GTK_RANGE(widget));
+ int widgetX, widgetY;
+
+ GtkWidget* parent = widget;
+- while (gtk_widget_get_parent(parent) != NULL)
++ while (gtk_widget_get_parent(parent) != NULL) {
+ parent = gtk_widget_get_parent(parent);
++ }
+
+ gtk_widget_translate_coordinates(widget, parent, 0, 0, &widgetX, &widgetY);
+
+- if (orientation == GTK_ORIENTATION_VERTICAL)
++ if (orientation == GTK_ORIENTATION_VERTICAL) {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawScrollBarSlider(window, style, state_type, orientation, adj, x-1, y, width+2, height, y-widgetY, widget->allocation.height);
+- else
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
++ else {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawScrollBarSlider(window, style, state_type, orientation, adj, x, y-1, width, height+2, x-widgetX, widget->allocation.width);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
++ }
+ return;
+ }
+ }
+@@ -1334,10 +1394,13 @@ draw_handle(GtkStyle * style,
+
+ sanitize_size(window, &width, &height);
+
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Handle (%d,%d,%d,%d) Widget: %s Detail: %s State Type: %d\n",x,y,width,height,gtk_widget_get_name(widget),detail, state_type);
+-
++ }
++
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawSplitter(window,style,state_type,orientation,x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+