summaryrefslogtreecommitdiffstats
path: root/redhat/applications/gtk-qt-engine
diff options
context:
space:
mode:
authorFrançois Andriot <albator78@libertysurf.fr>2014-02-01 14:53:56 +0100
committerFrançois Andriot <albator78@libertysurf.fr>2014-02-01 14:53:56 +0100
commit07059c25f17d89004174a0e1555a017f270374f7 (patch)
treeac9a889d674dc61a4ff5485133ad18e94d99f9f0 /redhat/applications/gtk-qt-engine
parentcb8f9519d87272d7eb32636836e37087761ec288 (diff)
downloadtde-packaging-07059c25f17d89004174a0e1555a017f270374f7.tar.gz
tde-packaging-07059c25f17d89004174a0e1555a017f270374f7.zip
RPM Packaging: update 3.5.13.2 packages
Diffstat (limited to 'redhat/applications/gtk-qt-engine')
-rw-r--r--redhat/applications/gtk-qt-engine/1383169502:f181fbbb337a75257089e64afabd04dac2e1d466.diff50
-rw-r--r--redhat/applications/gtk-qt-engine/1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff553
-rw-r--r--redhat/applications/gtk-qt-engine/1387757695:a90aa09722d47f5f4009b089d8d874354899bdb8.diff435
-rw-r--r--redhat/applications/gtk-qt-engine/1387965535:0330b848db129b3dc4daa2a57272ec3b2fb7984c.diff138
-rw-r--r--redhat/applications/gtk-qt-engine/gtk-qt-engine-3.5.13.2.spec21
5 files changed, 1196 insertions, 1 deletions
diff --git a/redhat/applications/gtk-qt-engine/1383169502:f181fbbb337a75257089e64afabd04dac2e1d466.diff b/redhat/applications/gtk-qt-engine/1383169502:f181fbbb337a75257089e64afabd04dac2e1d466.diff
new file mode 100644
index 000000000..8548d545c
--- /dev/null
+++ b/redhat/applications/gtk-qt-engine/1383169502:f181fbbb337a75257089e64afabd04dac2e1d466.diff
@@ -0,0 +1,50 @@
+commit f181fbbb337a75257089e64afabd04dac2e1d466
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1383169502 -0500
+
+ Fix severe iceweasel/icedove tab bar corruption
+ Clean up minor build warnings
+
+diff --git a/src/qt_qt_wrapper.cpp b/src/qt_qt_wrapper.cpp
+index 067cf24..d3e13bb 100644
+--- a/src/qt_qt_wrapper.cpp
++++ b/src/qt_qt_wrapper.cpp
+@@ -337,7 +337,7 @@ void createTQApp()
+ #endif // USE_FREEBSD
+ #endif // USE_SOLARIS
+
+- mozillaFix = (cmdLine.contains("mozilla") || cmdLine.contains("firefox") || cmdLine.contains("thunderbird"));
++ mozillaFix = (cmdLine.contains("mozilla") || cmdLine.contains("firefox") || cmdLine.contains("iceweasel") || cmdLine.contains("thunderbird") || cmdLine.contains("icedove"));
+
+ openOfficeFix = (cmdLine.endsWith("soffice.bin"))
+ | (cmdLine.endsWith("swriter.bin"))
+@@ -692,10 +692,9 @@ void drawButton(GdkWindow* window, GtkStyle* style, GtkStateType state, int defa
+ TQPushButton button(meepWidget);
+ button.setBackgroundOrigin(TQWidget::ParentOrigin);
+ button.setGeometry(x, y, w, h);
+- if (style->rc_style->bg[GTK_STATE_NORMAL].pixel != 0)
++ if (style->rc_style->bg[GTK_STATE_NORMAL].pixel != 0) {
+ button.setPaletteBackgroundColor(gdkColorToTQColor(&style->rc_style->bg[GTK_STATE_NORMAL]));
+- TQPoint p = button.backgroundOffset();
+- TQPoint pos = button.pos();
++ }
+
+ TQStyle::SFlags sflags = stateToSFlags(state);
+
+@@ -730,8 +729,6 @@ void drawButton(GdkWindow* window, GtkStyle* style, GtkStateType state, int defa
+ button.setGeometry(x, y, w, h);
+ if (style->rc_style->bg[GTK_STATE_NORMAL].pixel != 0)
+ button.setPaletteBackgroundColor(gdkColorToTQColor(&style->rc_style->bg[GTK_STATE_NORMAL]));
+- TQPoint p = button.backgroundOffset();
+- TQPoint pos = button.pos();
+
+ TQStyle::SFlags sflags = stateToSFlags(state);
+
+@@ -1802,6 +1799,7 @@ void drawArrow(GdkWindow* window, GtkStyle* style, GtkStateType state, GtkArrowT
+ case GTK_ARROW_LEFT: element = TQStyle::PE_ArrowLeft; break;
+ case GTK_ARROW_RIGHT: element = TQStyle::PE_ArrowRight; break;
+ case GTK_ARROW_NONE: return;
++ default: return;
+ }
+
+
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;
+ }
+
diff --git a/redhat/applications/gtk-qt-engine/1387757695:a90aa09722d47f5f4009b089d8d874354899bdb8.diff b/redhat/applications/gtk-qt-engine/1387757695:a90aa09722d47f5f4009b089d8d874354899bdb8.diff
new file mode 100644
index 000000000..2985283a6
--- /dev/null
+++ b/redhat/applications/gtk-qt-engine/1387757695:a90aa09722d47f5f4009b089d8d874354899bdb8.diff
@@ -0,0 +1,435 @@
+commit a90aa09722d47f5f4009b089d8d874354899bdb8
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1387757695 -0600
+
+ Fix Firefox scrollbars
+
+diff --git a/kcm_gtk/kcmgtk.cpp b/kcm_gtk/kcmgtk.cpp
+index 28faded..ccd18c1 100644
+--- a/kcm_gtk/kcmgtk.cpp
++++ b/kcm_gtk/kcmgtk.cpp
+@@ -185,6 +185,5 @@ KcmGtk::KcmGtk(TQWidget *parent, const char *name, const TQStringList&)
+ widget->styleIcon->setPixmap(iconLoader.loadIcon("style", KIcon::Desktop));
+ widget->fontIcon->setPixmap(iconLoader.loadIcon("fonts", KIcon::Desktop));
+- widget->firefoxIcon->setPixmap(iconLoader.loadIcon("firefox", KIcon::Desktop));
+ widget->keyboardIcon->setPixmap(iconLoader.loadIcon("keyboard", KIcon::Desktop));
+
+ getInstalledThemes();
+@@ -199,5 +198,4 @@ KcmGtk::KcmGtk(TQWidget *parent, const char *name, const TQStringList&)
+ connect(widget->emacsBox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(itemChanged()));
+ connect(widget->fontChange, TQT_SIGNAL(clicked()), TQT_SLOT(fontChangeClicked()));
+- connect(widget->firefoxFix, TQT_SIGNAL(clicked()), TQT_SLOT(firefoxFixClicked()));
+ connect(widget->emacsDetails, TQT_SIGNAL(clicked()), TQT_SLOT(emacsDetailsClicked()));
+ connect(widget->warning3, TQT_SIGNAL(clicked()), TQT_SLOT(searchPathsClicked()));
+@@ -453,190 +451,6 @@ TQString KcmGtk::quickHelp() const
+ return i18n("");
+ }
+
+-
+-void KcmGtk::firefoxFixClicked()
+-{
+- profiles.clear();
+- getProfiles(TQDir::homeDirPath() + "/.mozilla/firefox/", 0);
+- getProfiles(TQDir::homeDirPath() + "/.thunderbird/", 1);
+-
+- TQString profilePath;
+- if (profiles.count() == 0)
+- {
+- KMessageBox::error(this, i18n("No Mozilla profiles found"), i18n("Could not load Mozilla profiles"));
+- return;
+- }
+- else if (profiles.count() == 1)
+- {
+- fixProfile(profiles.begin().data());
+- }
+- else
+- {
+- KDialogBase* dialog = new KDialogBase(this, "", true, i18n("Mozilla profile"), KDialogBase::Ok | KDialogBase::Cancel);
+- MozillaProfileWidget* w = new MozillaProfileWidget(dialog);
+- w->profilesList->header()->hide();
+- w->profilesList->hideColumn(1);
+-
+- TQPixmap icon = KGlobal::iconLoader()->loadIcon("kuser", KIcon::Small);
+-
+- for ( TQMapIterator<TQString,TQString> it = profiles.begin(); it != profiles.end(); ++it )
+- {
+- KListViewItem* i = new KListViewItem(w->profilesList);
+- i->setPixmap(0, icon);
+- i->setText(0, it.key());
+- i->setText(1, it.data());
+- }
+-
+- dialog->setMainWidget(w);
+- if (dialog->exec() == TQDialog::Rejected)
+- {
+- delete dialog;
+- return;
+- }
+-
+- TQListViewItemIterator it2(w->profilesList, TQListViewItemIterator::Selected);
+- while (it2.current())
+- {
+- KListViewItem* i = (KListViewItem*) it2.current();
+- ++it2;
+-
+- fixProfile(i->text(1));
+- }
+- delete dialog;
+- }
+-
+- KMessageBox::information(this, i18n("Your Mozilla profile was updated sucessfully. You must close and restart all Firefox and Thunderbird windows for the changes to take effect"), i18n("Mozilla profile"));
+-}
+-
+-void KcmGtk::getProfiles(const TQString& basePath, int type)
+-{
+- TQString fileName = basePath + "/profiles.ini";
+- if (TQFile::exists(fileName))
+- {
+- KConfig config(fileName, true, false);
+- TQStringList groups = config.groupList();
+-
+- for ( TQStringList::Iterator it = groups.begin(); it != groups.end(); ++it )
+- {
+- if (!(*it).lower().startsWith("profile"))
+- continue;
+-
+- config.setGroup(*it);
+- TQString name = (type ? i18n("Thunderbird") : i18n("Firefox")) + " - " + config.readEntry("Name");
+- TQString path = config.readEntry("Path");
+- if (!path.startsWith("/"))
+- path = basePath + path;
+- profiles.insert(name, path);
+- }
+- }
+-}
+-
+-void KcmGtk::fixProfile(const TQString& path)
+-{
+- if (!TQFile::exists(path + "/chrome"))
+- {
+- TQDir dir(path);
+- dir.mkdir("chrome");
+- }
+-
+- TQString data = scrollBarCSS();
+- writeFirefoxCSS(path + "/chrome/userChrome.css", data);
+- writeFirefoxCSS(path + "/chrome/userContent.css", data);
+-}
+-
+-TQString KcmGtk::scrollBarCSS()
+-{
+- // The following code determines how many buttons are on a scrollbar
+- // It works by looking at each pixel of the scrollbar's area not taken up by the groove,
+- // and asking the style which subcontrol is at that location.
+- TQScrollBar sbar(NULL);
+- sbar.setOrientation(Qt::Horizontal);
+- sbar.setValue(1);
+- sbar.resize(200,25);
+-
+- TQRect rect = tqApp->style().querySubControlMetrics(TQStyle::CC_ScrollBar, &sbar, TQStyle::SC_ScrollBarGroove);
+-
+- bool back1 = false;
+- bool forward1 = false;
+- bool back2 = false;
+- bool forward2 = false;
+-
+- TQStyle::SubControl sc = TQStyle::SC_None;
+- for (TQPoint pos(0,7) ; pos.x()<rect.x() ; pos.setX(pos.x()+1))
+- {
+- TQStyle::SubControl sc2 = tqApp->style().querySubControl(TQStyle::CC_ScrollBar, &sbar, pos);
+- if (sc != sc2)
+- {
+- if (sc2 == TQStyle::SC_ScrollBarAddLine) forward1 = true;
+- if (sc2 == TQStyle::SC_ScrollBarSubLine) back1 = true;
+- sc = sc2;
+- }
+- }
+- sc = TQStyle::SC_None;
+- for (TQPoint pos(rect.x()+rect.width(),7) ; pos.x()<200 ; pos.setX(pos.x()+1))
+- {
+- TQStyle::SubControl sc2 = tqApp->style().querySubControl(TQStyle::CC_ScrollBar, &sbar, pos);
+- if (sc != sc2)
+- {
+- if (sc2 == TQStyle::SC_ScrollBarAddLine) forward2 = true;
+- if (sc2 == TQStyle::SC_ScrollBarSubLine) back2 = true;
+- sc = sc2;
+- }
+- }
+-
+- TQString upTop = (back1 ? "-moz-box" : "none");
+- TQString downTop = (forward1 ? "-moz-box" : "none");
+- TQString upBottom = (back2 ? "-moz-box" : "none");
+- TQString downBottom = (forward2 ? "-moz-box" : "none");
+-
+- TQString data;
+- data += "/* The following four lines were added by KDE */\n";
+- data += "scrollbarbutton[sbattr=\"scrollbar-up-top\"] { display: " + upTop + " !important; }\n";
+- data += "scrollbarbutton[sbattr=\"scrollbar-down-top\"] { display: " + downTop + " !important; }\n";
+- data += "scrollbarbutton[sbattr=\"scrollbar-up-bottom\"] { display: " + upBottom + " !important; }\n";
+- data += "scrollbarbutton[sbattr=\"scrollbar-down-bottom\"] { display: " + downBottom + " !important; }\n";
+-
+- return data;
+-}
+-
+-void KcmGtk::writeFirefoxCSS(const TQString& path, const TQString& data)
+-{
+- TQString fileData;
+- TQFile file(path);
+- if (file.open(IO_ReadOnly))
+- {
+- TQTextStream stream(&file);
+- for (;;)
+- {
+- TQString line = stream.readLine();
+- if (line.isNull())
+- break;
+-
+- if ((line == "# The following four lines were added by KDE") ||
+- (line == "/* The following four lines were added by KDE */"))
+- {
+- for (int i=0 ; i<4 ; i++)
+- stream.readLine();
+- continue;
+- }
+-
+- fileData += line + "\n";
+- }
+- file.close();
+- }
+-
+- if (!file.open(IO_WriteOnly | IO_Truncate))
+- {
+- KMessageBox::error(this, i18n("Could not write to %1").arg(path), i18n("Mozilla profile"));
+- return;
+- }
+- TQTextStream stream(&file);
+- stream << fileData << data;
+- file.close();
+-
+- return;
+-}
+-
+ void KcmGtk::emacsDetailsClicked()
+ {
+ if (emacsDetailsDialog == NULL)
+diff --git a/kcm_gtk/kcmgtk.h b/kcm_gtk/kcmgtk.h
+index 542a043..2c04919 100644
+--- a/kcm_gtk/kcmgtk.h
++++ b/kcm_gtk/kcmgtk.h
+@@ -71,7 +71,6 @@ public slots:
+ void styleChanged();
+ void fontChangeClicked();
+ void itemChanged();
+- void firefoxFixClicked();
+ void emacsDetailsClicked();
+ void searchPathsClicked();
+ void searchPathsOk();
+@@ -82,10 +81,6 @@ public slots:
+
+ private:
+ void updateFontPreview();
+- void getProfiles(const TQString& basePath, int type);
+- void fixProfile(const TQString& path);
+- TQString scrollBarCSS();
+- void writeFirefoxCSS(const TQString& path, const TQString& data);
+ void getInstalledThemes();
+
+ TQString env(TQString key);
+diff --git a/kcm_gtk/kcmgtkwidget.ui b/kcm_gtk/kcmgtkwidget.ui
+index 512a610..705655b 100644
+--- a/kcm_gtk/kcmgtkwidget.ui
++++ b/kcm_gtk/kcmgtkwidget.ui
+@@ -481,118 +481,6 @@
+ </widget>
+ </hbox>
+ </widget>
+- <widget class="TQGroupBox">
+- <property name="name">
+- <cstring>groupBox1</cstring>
+- </property>
+- <property name="sizePolicy">
+- <sizepolicy>
+- <hsizetype>5</hsizetype>
+- <vsizetype>4</vsizetype>
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="title">
+- <string>Firefox and Thunderbird</string>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="TQLayoutWidget">
+- <property name="name">
+- <cstring>layout7_2_2</cstring>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="TQLabel">
+- <property name="name">
+- <cstring>firefoxIcon</cstring>
+- </property>
+- <property name="scaledContents">
+- <bool>true</bool>
+- </property>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer3_2_2</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Vertical</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>20</width>
+- <height>31</height>
+- </size>
+- </property>
+- </spacer>
+- </vbox>
+- </widget>
+- <widget class="TQLayoutWidget">
+- <property name="name">
+- <cstring>layout12</cstring>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="TQLabel">
+- <property name="name">
+- <cstring>textLabel1</cstring>
+- </property>
+- <property name="text">
+- <string>Scrollbar buttons may sometimes be displayed incorrectly in Firefox and Thunderbird. This can be fixed by installing some files into your Mozilla profile.</string>
+- </property>
+- <property name="alignment">
+- <set>WordBreak|AlignVCenter</set>
+- </property>
+- </widget>
+- <widget class="TQLayoutWidget">
+- <property name="name">
+- <cstring>layout11</cstring>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="TQPushButton">
+- <property name="name">
+- <cstring>firefoxFix</cstring>
+- </property>
+- <property name="text">
+- <string>I&amp;nstall scrollbar fix...</string>
+- </property>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer11</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>101</width>
+- <height>21</height>
+- </size>
+- </property>
+- </spacer>
+- </hbox>
+- </widget>
+- </vbox>
+- </widget>
+- </hbox>
+- </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+@@ -634,7 +522,6 @@
+ <tabstop>fontChange</tabstop>
+ <tabstop>emacsBox</tabstop>
+ <tabstop>emacsDetails</tabstop>
+- <tabstop>firefoxFix</tabstop>
+ </tabstops>
+ <layoutdefaults spacing="6" margin="11"/>
+ <includehints>
+diff --git a/src/qt_qt_wrapper.cpp b/src/qt_qt_wrapper.cpp
+index 928aef3..eebcc93 100644
+--- a/src/qt_qt_wrapper.cpp
++++ b/src/qt_qt_wrapper.cpp
+@@ -2085,7 +2085,7 @@ void setRcProperties(GtkRcStyle* rc_style, int forceRecreate)
+ stream << parse_rc_string("GtkScrollbar::stepper-size = " + TQString::number(tqApp->style().querySubControlMetrics(TQStyle::CC_ScrollBar, &sbar, TQStyle::SC_ScrollBarSubLine).width() - 1), "*");
+
+ stream << parse_rc_string("GtkScrollbar::min-slider-length = " + TQString::number(tqApp->style().pixelMetric(TQStyle::PM_ScrollBarSliderMin)), "*");
+- stream << parse_rc_string("GtkScrollbar::slider-width = " + TQString::number(tqApp->style().pixelMetric(TQStyle::PM_ScrollBarExtent)-2), "*");
++ stream << parse_rc_string("GtkScrollbar::slider-width = " + TQString::number(tqApp->style().pixelMetric(TQStyle::PM_ScrollBarExtent)), "*");
+
+ stream << parse_rc_string("GtkButton::child-displacement-x = " + TQString::number(tqApp->style().pixelMetric(TQStyle::PM_ButtonShiftHorizontal)), "*");
+ stream << parse_rc_string("GtkButton::child-displacement-y = " + TQString::number(tqApp->style().pixelMetric(TQStyle::PM_ButtonShiftVertical)), "*");
+diff --git a/src/qt_theme_draw.c b/src/qt_theme_draw.c
+index e84c4f7..4a2ee12 100644
+--- a/src/qt_theme_draw.c
++++ b/src/qt_theme_draw.c
+@@ -506,13 +506,16 @@ draw_arrow(GtkStyle* style,
+ {
+ sanitize_size(window, &width, &height);
+
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("Arrow (%d,%d,%d,%d) Widget: %s Detail: %s\n", x, y, width, height,gtk_widget_get_name(widget),detail);
+-
+- if (DETAIL("hscrollbar") || DETAIL("vscrollbar"))
++ }
++
++ if (DETAIL("hscrollbar") || DETAIL("vscrollbar")) {
+ return;
+- if (DETAIL("spinbutton"))
++ }
++ if (DETAIL("spinbutton")) {
+ return;
++ }
+ if (DETAIL("notebook"))
+ {
+ drawArrow(window, style, state_type, arrow_type, x, y, width, height);
+@@ -688,7 +691,12 @@ draw_box(GtkStyle * style,
+ 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 (orientation == GTK_ORIENTATION_VERTICAL) {
++ drawScrollBar(window, style, state_type, orientation, adj, x+1, y, width, height);
++ }
++ else {
++ drawScrollBar(window, style, state_type, orientation, adj, x, y+1, width, height);
++ }
+ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ return;
+@@ -1363,12 +1371,12 @@ draw_slider(GtkStyle * style,
+
+ 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);
++ drawScrollBarSlider(window, style, state_type, orientation, adj, x, y, width, height, y-widgetY, widget->allocation.height);
+ 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);
++ drawScrollBarSlider(window, style, state_type, orientation, adj, x, y, width, height, x-widgetX, widget->allocation.width);
+ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+ return;
diff --git a/redhat/applications/gtk-qt-engine/1387965535:0330b848db129b3dc4daa2a57272ec3b2fb7984c.diff b/redhat/applications/gtk-qt-engine/1387965535:0330b848db129b3dc4daa2a57272ec3b2fb7984c.diff
new file mode 100644
index 000000000..66b206591
--- /dev/null
+++ b/redhat/applications/gtk-qt-engine/1387965535:0330b848db129b3dc4daa2a57272ec3b2fb7984c.diff
@@ -0,0 +1,138 @@
+commit 0330b848db129b3dc4daa2a57272ec3b2fb7984c
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1387965535 -0600
+
+ Fix Firefox text edit widget glitches
+ Clean up minor build warnings
+
+diff --git a/src/qt_theme_draw.c b/src/qt_theme_draw.c
+index 4a2ee12..c7992d5 100644
+--- a/src/qt_theme_draw.c
++++ b/src/qt_theme_draw.c
+@@ -29,7 +29,7 @@
+ extern gboolean tde_showIconsOnPushButtons;
+
+ static GdkPixbuf * (*stockRenderIcon)() = NULL;
+-static void * (*stockDrawString)() = NULL;
++// static void * (*stockDrawString)() = NULL;
+
+ static void qtengine_style_init (QtEngineStyle *style);
+ static void qtengine_style_class_init (QtEngineStyleClass *klass);
+@@ -128,13 +128,17 @@ draw_hline(GtkStyle* style,
+ gint x2,
+ gint y)
+ {
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("HLINE (%d,%p,%d) Widget: %s Detail: %s\n",x1,y1,y,gtk_widget_get_name(widget),detail);
++ }
+
+- if (DETAIL("vscale"))
++ if (DETAIL("vscale")) {
+ return;
++ }
+
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawHLine(window,style,state_type,y,x1,x2);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+
+
+@@ -149,13 +153,17 @@ draw_vline(GtkStyle* style,
+ gint yDest,
+ gint x)
+ {
+- if (gtkQtDebug)
++ if (gtkQtDebug) {
+ printf("VLINE (%d,%d,%d) Widget: %s Detail: %s\n",ySource ,yDest ,x,gtk_widget_get_name(widget),detail);
++ }
+
+
+- if (DETAIL("hscale"))
++ if (DETAIL("hscale")) {
+ return;
++ }
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawVLine(window,style,state_type,x,ySource,yDest);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ }
+
+ static void
+@@ -192,7 +200,9 @@ draw_shadow(GtkStyle *style,
+ return;
+ if (DETAIL("entry"))
+ {
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], area);
+ drawLineEdit(window,style,state_type,gtk_widget_is_focus(widget),x,y,width,height);
++ if (area) gdk_gc_set_clip_rectangle(style->bg_gc[state_type], NULL);
+ return;
+ }
+ if (DETAIL("frame") || DETAIL("trough") || DETAIL("viewport"))
+@@ -200,7 +210,9 @@ draw_shadow(GtkStyle *style,
+ if (!GTK_IS_SCALE(widget))
+ {
+ /*printf("Frame (%d,%d) %dx%d %d %d\n", x,y,width,height,state_type, shadow_type);*/
++ 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);
+ return;
+ }
+ }
+@@ -644,20 +656,20 @@ draw_diamond(GtkStyle * style,
+ {
+ }
+
+-static void
+-draw_string(GtkStyle *style,
+- GdkWindow *window,
+- GtkStateType state_type,
+- GdkRectangle *area,
+- GtkWidget *widget,
+- const gchar *detail,
+- gint x,
+- gint y,
+- const gchar *string)
+-{
+- if (gtkQtDebug)
+- printf("STRING Widget: %s Detail: %s\n",gtk_widget_get_name(widget),detail);
+-}
++// static void
++// draw_string(GtkStyle *style,
++// GdkWindow *window,
++// GtkStateType state_type,
++// GdkRectangle *area,
++// GtkWidget *widget,
++// const gchar *detail,
++// gint x,
++// gint y,
++// const gchar *string)
++// {
++// if (gtkQtDebug)
++// printf("STRING Widget: %s Detail: %s\n",gtk_widget_get_name(widget),detail);
++// }
+
+ static void
+ draw_box(GtkStyle * style,
+@@ -1464,13 +1476,11 @@ void draw_layout (GtkStyle *style,
+ PangoAttrList *layoutattr;
+
+ const gchar *text;
+- gint text_length = 0;
+ gint text_bytelen = 0;
+ text = pango_layout_get_text (layout);
+ if (text != 0)
+ {
+ PangoAttribute *textcolorattr;
+- text_length = g_utf8_strlen (text, -1);
+ text_bytelen = strlen (text);
+
+ textcolorattr = pango_attr_foreground_new(color.red, color.green, color.blue);
+@@ -2040,7 +2050,7 @@ qtengine_style_class_init (QtEngineStyleClass *klass)
+ parent_class = g_type_class_peek_parent (klass);
+
+ stockRenderIcon = style_class->render_icon;
+- stockDrawString = style_class->draw_string;
++// stockDrawString = style_class->draw_string;
+
+ style_class->render_icon = draw_icon;
+
diff --git a/redhat/applications/gtk-qt-engine/gtk-qt-engine-3.5.13.2.spec b/redhat/applications/gtk-qt-engine/gtk-qt-engine-3.5.13.2.spec
index 351439d2d..cde2e6341 100644
--- a/redhat/applications/gtk-qt-engine/gtk-qt-engine-3.5.13.2.spec
+++ b/redhat/applications/gtk-qt-engine/gtk-qt-engine-3.5.13.2.spec
@@ -27,7 +27,7 @@
Name: trinity-%{tde_pkg}
Summary: theme engine using Qt for GTK+ 2.x and Trinity
Version: 0.8
-Release: %{?!preversion:6}%{?preversion:5_%{preversion}}%{?dist}%{?_variant}
+Release: %{?!preversion:7}%{?preversion:6_%{preversion}}%{?dist}%{?_variant}
License: GPLv2+
Group: Applications/Utilities
@@ -44,6 +44,17 @@ Source1: gtk-qt-engine.rc.sh
Source2: gtkrc-2.0-kde4
Source3: gtkrc-2.0-kde-kde4
+# Fix severe iceweasel/icedove tab bar corruption
+# Clean up minor build warnings
+Patch1: 1383169502:f181fbbb337a75257089e64afabd04dac2e1d466.diff
+# Fix numerous drawing glitches in Firefox
+Patch2: 1387752298:6e6dbb068e03a8bb818a76ba774d6f94ade7389f.diff
+# Fix Firefox scrollbars
+Patch3: 1387757695:a90aa09722d47f5f4009b089d8d874354899bdb8.diff
+# Fix Firefox text edit widget glitches
+# Clean up minor build warnings
+Patch4: 1387965535:0330b848db129b3dc4daa2a57272ec3b2fb7984c.diff
+
BuildRequires: trinity-tqtinterface-devel >= %{tde_version}
BuildRequires: trinity-arts-devel >= 1:1.5.10
BuildRequires: trinity-tdelibs-devel >= %{tde_version}
@@ -71,6 +82,11 @@ a way to configure it from within KControl.
%prep
%setup -q -n %{name}-3.5.13.2%{?preversion:~%{preversion}}
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
%build
unset QTDIR QTINC QTLIB
@@ -133,6 +149,9 @@ export PATH="%{tde_bindir}:${PATH}"
%changelog
+* Mon Jan 06 2014 Francois Andriot <francois.andriot@free.fr> - 0.8-7
+- Backport fixes from R14
+
* Fri Aug 16 2013 Francois Andriot <francois.andriot@free.fr> - 0.8-6
- Build for Fedora 19