I’ve been digging around a LOT in gtk3 lately.
Here’s some code to try in your app.open event. It fixes most things, but textareas and textfields (and in turn comboboxes) are clipped unless the width is >300 or so. Big improvement though. (some themes may still clip buttons slightly)
#if TargetLinux
const style="GtkButton, GtkEntry, button, entry, .button, .entry " _
+"{padding:0px;margin:1px;margin-top:0px; min-height:14px;min-width:14px} " _
+"scrollbar.horizontal slider{min-height:8px} scrollbar.vertical slider(min-width:8px;}" _
+"progressbar trough{min-width:10px; min-height:10px;}"
const klibgtk = "libgtk-3"
declare Function gdk_display_get_default lib klibgtk () as ptr
declare Function gdk_display_get_default_screen lib klibgtk (display as ptr) as ptr
declare Function gtk_css_provider_new lib klibgtk () as ptr
declare Function gtk_css_provider_load_from_data lib klibgtk (obj as ptr,data as CString,length as uint32,error as ptr) as Boolean
declare sub gtk_style_context_add_provider_for_screen lib klibgtk (screen as ptr, provider as ptr, priority as int32)
dim screen as ptr=gdk_display_get_default_screen(gdk_display_get_default)
dim provider as ptr=gtk_css_provider_new
call gtk_css_provider_load_from_data(provider,style,-1,nil)
gtk_style_context_add_provider_for_screen(screen,provider,900)
#endif