summaryrefslogtreecommitdiffstats
path: root/redhat/applications
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/applications')
-rw-r--r--redhat/applications/bibletime/bibletime-3.5.13.2.spec5
-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
-rw-r--r--redhat/applications/kaffeine/kaffeine-3.5.13.2.spec5
-rw-r--r--redhat/applications/kopete-otr/kopete-otr-3.5.13.2.spec4
8 files changed, 1204 insertions, 7 deletions
diff --git a/redhat/applications/bibletime/bibletime-3.5.13.2.spec b/redhat/applications/bibletime/bibletime-3.5.13.2.spec
index 16ee7e1c7..95521dbc6 100644
--- a/redhat/applications/bibletime/bibletime-3.5.13.2.spec
+++ b/redhat/applications/bibletime/bibletime-3.5.13.2.spec
@@ -62,7 +62,7 @@ Requires: sword
%description
BibleTime is a free and easy to use bible study tool for UNIX systems.
-It requires a working KDE environment and the SWORD library.
+It requires a working TDE environment and the SWORD library.
BibleTime provides easy handling of digitized texts (Bibles, commentaries
and lexicons) and powerful features to work with these texts (search in
texts, write own notes, save, print etc.).
@@ -82,7 +82,8 @@ texts, write own notes, save, print etc.).
%build
-unset QTDIR; . /etc/profile.d/qt3.sh
+unset QTDIR QTINC QTLIB
+. /etc/profile.d/qt3.sh
export PATH="%{tde_bindir}:${PATH}"
%configure \
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
diff --git a/redhat/applications/kaffeine/kaffeine-3.5.13.2.spec b/redhat/applications/kaffeine/kaffeine-3.5.13.2.spec
index 020bf801c..79a14f4df 100644
--- a/redhat/applications/kaffeine/kaffeine-3.5.13.2.spec
+++ b/redhat/applications/kaffeine/kaffeine-3.5.13.2.spec
@@ -56,7 +56,7 @@ BuildRequires: libcdda-devel
BuildRequires: cdparanoia
BuildRequires: cdparanoia-devel
%endif
-%if 0%{?suse_version} >= 1220 || 0%{?fedora} >= 19
+%if 0%{?suse_version} >= 1210 || 0%{?fedora} >= 19
BuildRequires: libcdio-paranoia-devel
%endif
@@ -228,7 +228,8 @@ Requires: %{name} = %{version}-%{release}
%__make -f "admin/Makefile.common"
%build
-unset QTDIR || : ; source /etc/profile.d/qt3.sh
+unset QTDIR QTINC QTLIB
+. /etc/profile.d/qt3.sh
export PATH="%{tde_bindir}:${PATH}"
export KDEDIR=%{tde_prefix}
diff --git a/redhat/applications/kopete-otr/kopete-otr-3.5.13.2.spec b/redhat/applications/kopete-otr/kopete-otr-3.5.13.2.spec
index f90d74100..3cdc837e8 100644
--- a/redhat/applications/kopete-otr/kopete-otr-3.5.13.2.spec
+++ b/redhat/applications/kopete-otr/kopete-otr-3.5.13.2.spec
@@ -84,9 +84,9 @@ users with IM-Cients supporting the OTR encryption method.
%build
-unset QTDIR QTINC QTLIB; . /etc/profile.d/qt3.sh
+unset QTDIR QTINC QTLIB
+. /etc/profile.d/qt3.sh
export PATH="%{tde_bindir}:${PATH}"
-export
%configure \
--prefix=%{tde_prefix} \