Subject: Re: bug#22000: Patch addressing the menu-bar frame-resize interaction

From: martin rudalics <[email-masked]>
Date: Sat, 13 Oct 2018 10:20:50 +0200

>>> I might be able to fix it with a style change, if I can defeat the gtk3
 >> docs
 >>> and figure out if/how to set a style property on a widget.
 >>
 >> Let's postpone that for the moment.
 >
 > It's done, see latest patchset.

Commented below.

 >> Anyway, the primary warning I see is the following:
 >>
 >> (emacs:4182): Gtk-WARNING **: gtk_scrolled_window_add(): cannot add non scrollable widget use gtk_scrolled_window_add_with_viewport() instead
 >
 > Aha! I think I know what's happening. You used to have to add the viewport
 > manually for widgets that weren't inherently scrollable. I'll add
 > some #if guarded code for the earlier GTK versions.

With that code it works with the non-compact series without warnings
and error messages under GTK 3.4.2.  However with the compact series I
can't compile because GTK_POLICY_EXTERNAL is undefined for versions
less than 3.16.0.  If, to fix that, I do

+  switch (scroll_policy)
+    {
+#if GTK_CHECK_VERSION (3, 16, 0)
+    case GTK_POLICY_EXTERNAL:
+#endif
+    case GTK_POLICY_NEVER:
+      gtk_style_context_remove_class (style, "mbscroll");
+      gtk_style_context_add_class (style, "mbtrunc");
+      break;
+    default:
+      gtk_style_context_remove_class (style, "mbtrunc");
+      gtk_style_context_add_class (style, "mbscroll");
+    }

then there is no compaction - at least by default.  Is there a
parameter I would have to set via 'default-frame-alist' here?

Thanks, martin