B00merang-Project / Windows-XP

Windows XP themes
http://b00merang.weebly.com/windows-xp-themes.html
GNU General Public License v3.0
332 stars 27 forks source link

Issues with scrollbar in Eclipse (Mint 20) #29

Closed AidFTech closed 3 years ago

AidFTech commented 3 years ago

Both versions 3.0 and 3.1 of the XP theme have a scrollbar graphics bug. The scrollbars are, for the most part, normal, except in Eclipse (see the attached photo). It seems to occur on all Eclipse windows with scrollbars, and if I switch to a different theme, even another version of Windows, the scrollbars are displayed normally. (if I switch to a different version of XP, the bug remains)

Additionally, in any LibreOffice program, the horizontal scrollbar "backdrop" seems to be a duplicated version of the vertical graphic; it goes back to normal with any other theme, as with Eclipse.

Any idea what's causing this? It started after I upgraded from Mint 19.3 to 20 (with Cinnamon 4.6.7 desktop).

Scrollbar Bug

Elbullazul commented 3 years ago

if you launch eclipse from the terminal, does it show any warnings or errors??

AidFTech commented 3 years ago

Yes, it does! Check it:

aidan@Aidan-PC:~$ /home/aidan/Downloads/eclipse/eclipse org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will retry after the state location is initialized. org.eclipse.m2e.logback.configuration: Logback config file: /media/aidan/B270D88170D84E2B/Users/Aiden/eclipse-workspace-Java/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.16.0.20200318-1040.xml org.eclipse.m2e.logback.configuration: Initializing logback

(Eclipse:59553): Gtk-CRITICAL **: 15:15:19.705: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:19.705: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.069: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.408: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.411: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.411: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.412: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.412: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.426: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-CRITICAL **: 15:15:20.635: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar

(Eclipse:59553): Gtk-WARNING **: 15:15:20.640: Negative content width -8 (allocation 2, extents 5x5) while allocating gadget (node trough, owner GtkProgressBar)

(Eclipse:59553): Gtk-WARNING **: 15:15:20.640: Negative content width -8 (allocation 2, extents 5x5) while allocating gadget (node trough, owner GtkProgressBar)

(Eclipse:59553): Gtk-WARNING **: 15:15:20.640: Negative content width -8 (allocation 2, extents 5x5) while allocating gadget (node trough, owner GtkProgressBar)

(Eclipse:59553): Gtk-WARNING **: 15:15:20.640: Negative content width -8 (allocation 2, extents 5x5) while allocating gadget (node trough, owner GtkProgressBar)

Elbullazul commented 3 years ago

In Help > About > Installation Details > Configuration, do you see a GTK version, kind of like this?

 org.eclipse.swt.internal.gtk.version=3.14.12

AidFTech commented 3 years ago

Something like this? Eclipse Version

AidFTech commented 3 years ago

Oops - here it is with a wider version column. Eclipse Version 2

Elbullazul commented 3 years ago

the info I'm looking for isn't here.

can you tell me if this command works? If not, can you post the result?

GTK_DEBUG=interactive eclipse

AidFTech commented 3 years ago

In the terminal, correct?

The command result was: aidan@Aidan-PC:~$ GTK_DEBUG=interactive eclipse

eclipse: command not found

(with single newline)

Elbullazul commented 3 years ago

how did you install eclipse? I'm going to have to test it by myself

AidFTech commented 3 years ago

I downloaded a .tar.gz file from here: https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2020-09/R/eclipse-java-2020-09-R-linux-gtk-x86_64.tar.gz

I extracted the "eclipse" folder into my "downloads" folder. Opening that and clicking "eclipse" starts the program (no formal installation required).

I had 19.3 when I did this.

Elbullazul commented 3 years ago

on 19 it looks ok on my side: Linux Mint 19 2 Cinnamon-2020-10-25-12-38-08

I'm upgrading to 20 and see if it pops

Elbullazul commented 3 years ago

managed to reproduce it, it seems like the code originally written for GTK 3.20 is now incompatible. However, the windows 7 theme isn't affected.

I'll have to adapt Windows 7's scrollbars to reproduce the look of Windows XP. It may take a while, but once one is completed, the rest should come easily

AidFTech commented 3 years ago

Sounds good- thanks! Keep me posted!

Elbullazul commented 3 years ago

sorry for the delay, but I keep finding more minor stuff to fix on other themes. I should be addressing this issue in the coming days

AidFTech commented 3 years ago

No worries. Thanks!

The latest version of Angry IP Scanner (which is also in Java) has the bug as well.

Elbullazul commented 3 years ago

So, I found the cause of the bug. When loading a Java app, the CSS parser includes some rules from Adwaita and other integrated themes, and one of those rules is to add some padding to scrollbar buttons. Unfortunately, there's nothing I can do on my side to fix this, as I don't know how to prevent that behaviour from happening. I originally planned to port the scrollbar portion to a working code base, but found that it affected other themes as well, and some of those have features incompatible with the new approach.

I also noticed that themes with scrollbar buttons disabled are not affected, but those who have them enabled will be affected by this bug. So, for example, the macOS theme will not be affected.

There is a fix, however. By creating the following file and adding the code snippet, it will override the ruleset from root themes and fix the issue:

The file is named gtk.css and has to be located in ~/.config/gtk-3.0/gtk.css.

Inside, paste this snippet of code:

scrollbar button { padding: 0px; }

Result: image

Remind to rename or remove the file if it affects other themes.

AidFTech commented 3 years ago

That did the trick! Thank you!