Page 3 of 3

Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated Jan 11,

Posted: 20 Apr 2014, 16:26
by dimx
ok another update.
real progress this time.
I was able to locate the culprit of "submenu delay" bug. Its gtk3... Not sure how I missed it before, since it was my no1 suspect since the beginning, and the first thing I did was test versions >3.8.2. After rebuilding and downgrading to 3.4.4 (which was in Slackware 14.0) I'm finally convinced its gtk's fault. Also confirming in latest gtk 3.12 the bug wasnt there. It seems it was fixed along the way, since there were some major structural changes, since 3.10. That also somewhat explains why version 3.10 was working ok on Manjaro - even though 3.10 on Slackware still had the bug, it could be due to not playing well with earlier versions of glib and gobject-introspection.
- bisect gtk versions 3.4.4 through 3.8.2 to find offending commit(s)
- generate a patch for v.3.8.2 and possibly provide it to Slackware
- rebuild/overhaul the UI pack -- rebuild caches of icon themes and update gtk-immodules too (should have done it since the beginning)
- release.

P.S. @Fanthom: if u r reading this, no need to post mesa slackbuilds, since the bug is in gtk. Sorry for the inconvenience.

Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated Jan 11,

Posted: 22 Apr 2014, 20:29
by dimx
I've finally resolved the GTK3 bug above!
Having performed regression testing (git bisect) as well as reverse regression testing, I was left with 2 options. Either:
A. Revert the commit:
[645b5f398d2d50c361600f4f8a089488a66eed99] Reimplement _NET_WM_SYNC_REQUEST inside X11 backend
B. Backport the commit:
[ed447eba08afc13103c4f269c47bddfaecfe528d] widget: emit synthesized crossing event with correct device position
I chose B, as its very straight forward, as opposed to A. The only change I made was is to use the methods for getting position in int instead of double, since the latter aren't implemented until GTK 3.10.
The change to the patch was gdk_device_get_position_double ----> gdk_device_get_position.
Should not make any difference, since method signatures are basically the same and glib2 should handle conversion (I bet it even wont be happening here, but in the (gdouble) methods introduced in 3.10).
Resulting patch derived from this:

Code: Select all

backport to gtk+3.8 of commit ed447eba08afc13103c4f269c47bddfaecfe528d
Author: dimx
Date:   Tue Apr 22 23:11:33 2014 +0100

    widget: emit synthesized crossing event with correct device position

diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index f4246ac..0b2aac3 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -11893,8 +11893,15 @@ synth_crossing (GtkWidget       *widget,
   event->crossing.send_event = TRUE;
   event->crossing.subwindow = g_object_ref (window);
   event->crossing.time = GDK_CURRENT_TIME;
-  event->crossing.x = event->crossing.y = 0;
-  event->crossing.x_root = event->crossing.y_root = 0;
+  gdk_device_get_position (device,
+                                  NULL,
+                                  &event->crossing.x_root,
+                                  &event->crossing.y_root);
+  gdk_window_get_device_position (window,
+                                         device,
+                                         &event->crossing.x,
+                                         &event->crossing.y,
+                                         NULL);
   event->crossing.mode = mode;
   event->crossing.detail = detail;
   event->crossing.focus = FALSE;

Worked like a charm!
Now I need to kindly ask Ahau to provide his gtk+3 slackbuild, so I wont need to include the whole gtk+3 to override his package, but only the file(s) that will differ due to the patch.

Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated Jan 11,

Posted: 23 Apr 2014, 03:44
by brokenman
Nice job. Anything special about Ahau's gtk3 slackbuild? Did he modify it somehow?

I havn't heard from Ahau for some time. He got very busy at work and hasn't been around lately.

Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated Jan 11,

Posted: 23 Apr 2014, 17:37
by dimx
brokenman wrote:Nice job. Anything special about Ahau's gtk3 slackbuild? Did he modify it somehow?

I havn't heard from Ahau for some time. He got very busy at work and hasn't been around lately.
If I dont have the exact same build options as Ahau, chances are there will be lots of differences between compiled libs. This is cause the linker will link different sets of objects, depending on build configuration. And that, assuming that gcc flags are the same (its more probable that they are). In case they differ, then *all* so's will different.
I saw in package log that list of installed files was different (smaller) from default Slackware.
That being said, the weight of my gtk3 xzm is 10mb, unpacked it's 57mb. I dont mind including the whole gtk3 module in the pack, and just override everything from Ahau, but it just feels kinda silly to have same package twice.
Any advice appreciated. Cheers!

Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated Jan 11,

Posted: 23 Apr 2014, 20:59
by brokenman
I can't think of any build options that would change for gtk3. Ahau would have built it on top of a basic LXDE. After creating the lxde module we have cleanup scripts that remove unrequired files (some test files for example) that take up space. In any case you can wait for him to reply to be sure.

Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated Jan 11,

Posted: 24 Apr 2014, 11:18
by dimx
I also think there would be no need for different build options, and I was rather surprised to see Ahau's signature on the package.
For now I will include the full patched gtk3 module in the pack and if later Ahau shows up, I will ask him for Slackbuild.
Thank you for your help,brokenman!

Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated Jan 11,

Posted: 13 May 2014, 14:42
by dimx
Finally managed to have some free time to finish the pack for Porteus 3.0.Lots of optimizations, extensive testing, bug fixes took place.
Currently posting only 32bit pack, as my laptop doesnt support 64bit extensions.
The following days I will have access to my 64bit desktop, and will provide this pack for 64bit. Most of the needed work/bugfixes is already done.
Enjoy and stay tuned for 64bit pack! :Yahoo!:

P.S. Check out the changelog for details ... 847#p19848


Re: [Porteus-LXDE] UI-Productivity-SuperPack.Updated May 13,

Posted: 15 May 2014, 23:05
by dimx
UI pack for Porteus-LXDE 3.0 x86_64 (64 bit) posted under downloads (3rd post).
Known issue:
with both Porteus-LXDE 32bit and 64bit. Unrelated to this pack. When logging out using the regular logout menu, and re-logging in, lxpanel may be missing some tray application indicators (aka tray_icons), and .xsession-errors file (under ~/) shows lots of BadGC errors. Most likely this is lxpanel's fault or lxdm's. Need some more testing.
Killing/restarting X server solves this issue until next logoff.
Suggested workaround: after logging out -> Alt+Ctrl+Backspace to restart X and lxdm, then relogin.
Unrelated to the above issue:
I have also uploaded a special module - same for all Porteus editions and architectures - to avoid manually rebuilding icon caches, if any broken icons appear after installing new apps.

Update on the known issue: it appears when lxpanel's background is set to single color, but not when it's set to use an image (as per default). More research needed. The same behavior I observed on Slackware 14.1, but not on Arch.