parent
cb8f9519d8
commit
07059c25f1
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -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&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;
|
@ -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;
|
||||||
|
|
Loading…
Reference in new issue