ROX-Filer: fix for focus bug

I described this problem here:

http://bkhome.org/blog/?viewDetailed=01387

I would like to thank 'perthie' who responded, informing me of a fix posted to the Dpup forum thread.

I found it:

http://www.murga-linux.com/puppy/viewtopic.php?t=50728&start=15

...thanks to 'rcrsn51' for the fix.

I have tested in pup 432 and the fix works. I have implemented this fix in Woof, adding this code to /etc/profile:

#100208 rox-filer needs this for GTK >= 2.18, fixes focus problem...

if [ `grep '^gtk+-2' /root/.packages/woof-installed-packages | head -n 1 | cut -f 2 -d '.'` -ge 18 ];then
export GDK_NATIVE_WINDOWS=true
fi



Posted on 8 Feb 2010, 8:19


Comments:

Posted on 8 Feb 2010, 8:56 by BarryK
Unofficial 432
Um, looking at my history, after I released the official Puppy 4.3.1, I did some more upgrading of packages in Woof for the 4.x series. GTK included, upgraded from 2.14.7 to 2.18.3.

So the 432 build I uploaded is not an error, that is the most recent GTK version for that series.

Now that I have a fix for ROX-Filer, I'll leave it at that, will now rebuild 432 and upload today.

For anyone reading this who has not been following my recent blog posts, this pup 4.3.2 is not intended as the next official Puppy release, it came about because I wanted to do a 4.x build for the Gecko Edubook.

Anyway, I'll upload pup 432 again today, and anyone will be welcome to play with it. Who knows, maybe it could be an official 4.3.2, a gap filler while other versions such as Dpup and 4.4CE are still coming along?

...dunno, just a thought. I'm not so interested if it turns out that my 432 build has lots of new problems. Seems pretty good though, I'm using it right now (but I'll be going back to Quirky soon).



Posted on 9 Feb 2010, 13:52 by giterdun
fixed my system
I had this same focus problem while running a version of rox from debian sqeeze in ubuntu 9.10. I used the information above and it fixed the problem!
So thanks for bringing the issue up. :)


Posted on 9 Feb 2010, 16:26 by BarryK
Another problem with GTK 2.18
When I was first developing Quirky, with GTK 2.18.x, the ROX-Filer focus problem wasn't the only thing that caused me to roll back to GTK 2.16.x.

In SeaMonkey, the window would suddenly redraw, for no apparent reason, causing a big flicker. Now that I am testing Puppy 4.3.2, which has GTK 2.18.3, this problem has come back. It only happens sometimes, but I find it annoying.

Earlier versions of GTK do not have this problem.



Posted on 12 Feb 2010, 22:24 by f00-
soon
Wonderful word :) Finally dl'd q005 in full so it won't be long. One of the nice things about Quirky is the name - hardly anyone thinks it's an official pup release (dang) ;)


Posted on 14 Feb 2010, 2:04 by amigo
Possible fix for ROX
Barry, I have maybe come up with a real fix for the rox-GDK_NATIVE_WINDOWS problem:
--- ./src/gui_support.c.01	2006-03-25 12:55:13.000000000 +0100

+++ ./src/gui_support.c 2010-02-13 15:33:04.000000000 +0100
@@ -1201,7 +1201,7 @@
xev.xclient.type = ClientMessage;
xev.xclient.serial = 0;
xev.xclient.send_event = True;
- xev.xclient.window = GDK_WINDOW_XID(window);
+ xev.xclient.window = gdk_x11_drawable_get_xid(window);
xev.xclient.message_type = gdk_x11_get_xatom_by_name_for_display(
display, "_NET_WM_STATE");
xev.xclient.format = 32;


This is kind of a stab in the dark as not too many projects have fixed their code yet, so there are not many examples of the proper way to fix things.

It would be nice if you'd try it out, though -the fix may come in handy later when other things need fixing.
From what I see, the workaround you posted above may cause problems with some apps, so you might consider exporting 'GDK_NATIVE_WINDOWS=true' from the 'rox' wrapper instead of doing it globally in /etc/profile. Also, some apps/systems seem to only work by using GDK_NATIVE_WINDOWS=1 instead of GDK_NATIVE_WINDOWS=true
I mention these things only because the info may come in handy later.
The patch above is against the rox-filer_puppy-2.6.1 sources - I don't know what you are using at the moment, but the patch will most likely apply to later versions as well.