A bug report to coordinate the switch to libwnck. I've Cc-ed all the people that own code that needs to be changed.
Created attachment 1323 Wnck patch for Xfdesktop This patch replaces all the netk code. The only problem is that wnck_screen_get_number is supported since 2.20, so need a way to detect if this function is available. I've #if 0 code to test it...
Created attachment 1324 Xfwm4 patch (only settings manager) This patch makes the settings manager code work with wnck.
Created attachment 1325 Xfce4 Session Patch for xfce4-session.
Created attachment 1326 Xfce4 panel patch. The only problem is that wnck does not support show/hide label, so this code has been disabled for now (in tasklist). Other thing is that wnck expands all buttons, so with 1 task the entire taskbar is used; not really Xfce style and we might want to remove the 'hide handle' option (trunk only) because of this behaviour. Other thing is that some options in tasklists right-click menu don't respond, it looks like this is a problem in xfwm4 since other window manager work fine (according to Stephan). (thanks to Stephan for most of this patch btw.)
Created attachment 1327 Libxfcegui4 without netk and xfce_clock This patch together with removing the following files: libxfcegui4/xfce_clock.*, libxfcegui4/netk-*, libxfcegui4/libnetk.h, libxfcegui4/default_icon.png Will cleanup all the netk parts and XfceClock (which has been moved to the panel plugin). I'm not really sure about the verinfo number, we can also only set AGE to 0 or CURRENT++ with REVISION = 0. Depends if we want to bump the number again with a release... Only problem is netk-trayicon, which is only used by xfce-mcs-plugins (mouse plugin), we can port this to GtkStatusIcon but then the Gtk version needs to be bumped to 2.10 or leave this code in gui4 of course ;).
Created attachment 1329 Xfce-mcs-plugins without netk and improved extension detection This patch removes the netk code from the mouse plugin and replaces it by a GtkStatusIcon. You can now click the icon which will open the mouse dialog in the accessibility tab (seems useful to me), also icon from icon theme instead of the embedded xpm. Gtk bump to 2.10. I've also changed the detection of the X extensions, because none of them was detected on my laptop. AC_CHECK_LIB seems to be a better way to to check for this kinda stuff.
'Xfce-mcs-plugins without mcs' should be 'Xfce-mcs-plugins without netk' ^_^.
Nick, this bug is too big in scope. Let's just deal with libnetk - don't let XfceTrayIcon or XfceClock patches creep in here. Did we decide that Xfce 4.6 will depend on gtk 2.10? If not, the GtkStatusIcon patches can't be merged. What are you doing with the mouse plugin and a status icon, and why is that patch here? *Please*, only netk/wnck-related stuff here. Regarding the xfdesktop patch, missing wnck_screen_get_number() is a showstopper for me. Without it, we can't place menus on the proper screen. I guess that can be worked around by getting the icon view widget from the XfdesktopIcon, and then getting the screen from that, but I'm not particularly happy with it.
Created attachment 1330 Wnck patch for Xfdesktop v2 This patch adds a check for wnck_screen_get_number and fallsback on the icon view widget screen.
(In reply to comment #8) > Nick, this bug is too big in scope. Let's just deal with libnetk - don't let > XfceTrayIcon or XfceClock patches creep in here. Well tray icon was called netk-trayicon, so after I removed it I discovered it was only used by the mouse plugin and because the whole idea of dropping netk because of a maintenance problem, why leave the tray icon code when gtk has a replacement. XfceClock is just 3 lines in the patch. (In reply to comment #8) > Did we decide that Xfce 4.6 will depend on gtk 2.10? If not, the tkStatusIcon > patches can't be merged. No, we have not decided yet, but that will most likely take ages... (In reply to comment #8) > What are you doing with the mouse plugin and a status icon, and why is that > patch here? Remove the status icon code and make compilation work. But I agree, that patch is a bit overkill for the wnck switch, will be moved to a new bug.
Comment on attachment 1329 Xfce-mcs-plugins without netk and improved extension detection Obsolute patch and move to bug #3489.
(In reply to comment #10) > (In reply to comment #8) > > Did we decide that Xfce 4.6 will depend on gtk 2.10? If not, the tkStatusIcon > > patches can't be merged. > > No, we have not decided yet, but that will most likely take ages... Afaik, Thunar will depend on 2.10, your mousepad branch does, when squeeze and ristretto hit 1.0, they will depend on gtk 2.10 (both for recent-document-support and printing for ristretto). However, iirc Olivier prefers to depend on 2.8 for the core components.
(In reply to comment #12) > (In reply to comment #10) > > (In reply to comment #8) > > > Did we decide that Xfce 4.6 will depend on gtk 2.10? If not, the tkStatusIcon > > > patches can't be merged. > > > > No, we have not decided yet, but that will most likely take ages... > > Afaik, Thunar will depend on 2.10, your mousepad branch does, when squeeze and > ristretto hit 1.0, they will depend on gtk 2.10 (both for > recent-document-support and printing for ristretto). > > However, iirc Olivier prefers to depend on 2.8 for the core components. > Which is fine with me, but why don't we discuss the gtk-dep too? I mean, like Nick said, we are trying to reduce the maintenance of xfce. And when 4.6 hits BETA most distro's have switched to 2.12*, and even Debian lenny is equipped with 2.10. * Ubuntu and SuSE are working on getting their repo's to run with 2.11 already, we have already received several bugreports from them ourselves.
I do believe that we should merge what we have in trunk (trunk is made for developpment, these patches do work and we already decided that was the way to go anyway). If that means depending on gtk+2.10, then so be it. But I really think we should get the libwnck bits merged into trunk.
BTW xfce4-panel patch doesn't apply because there is no plugins/systray/systray.c in SVN trunk: http://svn.xfce.org/listing.php?repname=xfce4&path=%2Fxfce4-panel%2Ftrunk%2Fplugins%2Fsystray%2F&rev=0&sc=0#/xfce4-panel/trunk/plugins/systray/
The Gtk 2.10 dependency is not _really_ needed, only if we drop our own status icon code and use GtkStatusIcon. Which is only used by xfce-mcs-plugin only atm.
Created attachment 1363 Xfce4 panel patch v2 Updated panel patch. This one doesn't stretch the tasklist buttons, but makes them look like the old one. The width option doesn't work perfect yet.
Created attachment 1379 Xfce4 panel patch v3 New patch against xfce4-panel trunk. Also fix a bug in the windowlist.
(In reply to comment #18) > Created an attachment (id=1379) [details] > Xfce4 panel patch v3 > > New patch against xfce4-panel trunk. Also fix a bug in the windowlist. > Ok, let's just make the switch and make the panel our guinea pig for using libwnck. If we can get it to work for the panel, it should work for everyone else, I guess.
Created attachment 1472 Wnck patch for Xfdesktop v3 Updated the patch for xfdesktop. It fixes the issue with an empty window list on the first middle click on desktop (wnck_screen_force_update). And removed the 2.20 check, since that piece of code has been changed (xfdesktop_window_icon_populate_context_menu). Libxfcegui4 and panel patch have also been obsoleted since they are not needed or already applied.
Created attachment 1473 Wnck patch for Xfdesktop v3.1 Sorry, was not the lastest patch from my trunk.
Nick, can you filter whitespace changes out of your patch (I think -b option to diff will do that)? I don't really want to commit ws changes, and they make reading the patch kinda annoying.
Created attachment 1476 Patch 3.1 without white spaces There you go (FYI: svn diff -x -w).
This is long overdue, but finally committed the xfdesktop patch, with some minor changes.
Olivier also committed the patch, so only xfce4-session has not switched. Assigning the bug to Benny, also set the bug as blocking 4.6.
I committed the patch for xfce4-session.
Then we're done with this bug.