aboutsummaryrefslogtreecommitdiffstats
path: root/x11-fm
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2002-07-25 04:04:28 +0800
committersobomax <sobomax@FreeBSD.org>2002-07-25 04:04:28 +0800
commit7ca1cff514df56155c61e569c1f16c54f55083b5 (patch)
tree3a3685d8f01a31374a1cd6cea4fc0b19a2df3e1c /x11-fm
parentee9f366c070d8f6fff6232c8cff88c3f045f4214 (diff)
downloadfreebsd-ports-gnome-7ca1cff514df56155c61e569c1f16c54f55083b5.tar.gz
freebsd-ports-gnome-7ca1cff514df56155c61e569c1f16c54f55083b5.tar.zst
freebsd-ports-gnome-7ca1cff514df56155c61e569c1f16c54f55083b5.zip
Fix the problem with Nautilus not sensing available desktop area properly
and therefore allowing to place icons under the panel. This will go away when gnomepanel is teached to set _NET_WORKAREA properly (it doesn't do it yet). More details are on the very top of the patch. Bump PORTREVISION.
Diffstat (limited to 'x11-fm')
-rw-r--r--x11-fm/nautilus2/Makefile1
-rw-r--r--x11-fm/nautilus2/files/patch-temp121
2 files changed, 122 insertions, 0 deletions
diff --git a/x11-fm/nautilus2/Makefile b/x11-fm/nautilus2/Makefile
index 766316dbe736..aabdc80b2d30 100644
--- a/x11-fm/nautilus2/Makefile
+++ b/x11-fm/nautilus2/Makefile
@@ -7,6 +7,7 @@
PORTNAME= nautilus2
PORTVERSION= 2.0.1
+PORTREVISION= 1
CATEGORIES= x11-fm gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= 2.0.0/sources/${PORTNAME:S/2$//}
diff --git a/x11-fm/nautilus2/files/patch-temp b/x11-fm/nautilus2/files/patch-temp
new file mode 100644
index 000000000000..35155bcfd86b
--- /dev/null
+++ b/x11-fm/nautilus2/files/patch-temp
@@ -0,0 +1,121 @@
+
+Fixes problem with Nautilus not sensing available desktop space and therefore
+placing icons under the panel. Reverses rev.179-1.180 of
+src/file-manager/fm-desktop-icon-view.c. Will go away when gnomepanel is
+teached to set _NET_WORKAREA properly.
+
+--- src/file-manager/fm-desktop-icon-view.c.orig Mon Jul 22 21:03:46 2002
++++ src/file-manager/fm-desktop-icon-view.c Wed Jul 24 22:47:32 2002
+@@ -148,39 +148,9 @@
+ }
+
+ static void
+-icon_container_set_workarea (NautilusIconContainer *icon_container,
+- long *workareas,
+- int n_items)
+-{
+- int left, right, top, bottom;
+- int screen_width, screen_height;
+- int i;
+-
+- left = right = top = bottom = 0;
+-
+- screen_width = gdk_screen_width ();
+- screen_height = gdk_screen_height ();
+-
+- for (i = 0; i < n_items; i += 4) {
+- int x = workareas [i];
+- int y = workareas [i + 1];
+- int width = workareas [i + 2];
+- int height = workareas [i + 3];
+-
+- left = MAX (left, x);
+- right = MAX (right, screen_width - width - x);
+- top = MAX (top, y);
+- bottom = MAX (bottom, screen_height - height - y);
+- }
+-
+- nautilus_icon_container_set_margins (icon_container,
+- left, right, top, bottom);
+-}
+-
+-static void
+ net_workarea_changed (FMDesktopIconView *icon_view)
+ {
+- long *workareas = NULL;
++ long *borders = NULL;
+ Atom type_returned;
+ int format_returned;
+ unsigned long items_returned;
+@@ -194,33 +164,38 @@
+ gdk_error_trap_push ();
+ if (XGetWindowProperty (GDK_DISPLAY (),
+ GDK_ROOT_WINDOW (),
+- gdk_x11_get_xatom_by_name ("_NET_WORKAREA"),
+- 0, G_MAXLONG, False,
++ gdk_x11_get_xatom_by_name ("GNOME_PANEL_DESKTOP_AREA"),
++ 0 /* long_offset */,
++ 4 /* long_length */,
++ False /* delete */,
+ XA_CARDINAL,
+ &type_returned,
+ &format_returned,
+ &items_returned,
+ &bytes_after_return,
+- (unsigned char **)&workareas) != Success) {
+- if (workareas != NULL)
+- XFree (workareas);
+- workareas = NULL;
++ (unsigned char **)&borders) != Success) {
++ if (borders != NULL)
++ XFree (borders);
++ borders = NULL;
+ }
+
+ if (gdk_error_trap_pop ()
+- || workareas == NULL
++ || borders == NULL
+ || type_returned != XA_CARDINAL
+- || (items_returned % 4) != 0
++ || items_returned != 4
+ || format_returned != 32) {
+ nautilus_icon_container_set_margins (icon_container,
+ 0, 0, 0, 0);
+ } else {
+- icon_container_set_workarea (
+- icon_container, workareas, items_returned);
++ nautilus_icon_container_set_margins (icon_container,
++ borders[0 /* left */],
++ borders[1 /* right */],
++ borders[2 /* top */],
++ borders[3 /* bottom */]);
+ }
+
+- if (workareas != NULL)
+- XFree (workareas);
++ if (borders != NULL)
++ XFree (borders);
+ }
+
+ static GdkFilterReturn
+@@ -235,8 +210,9 @@
+
+ switch (xevent->type) {
+ case PropertyNotify:
+- if (xevent->xproperty.atom == gdk_x11_get_xatom_by_name ("_NET_WORKAREA"))
++ if (xevent->xproperty.atom == gdk_x11_get_xatom_by_name ("GNOME_PANEL_DESKTOP_AREA")) {
+ net_workarea_changed (icon_view);
++ }
+ break;
+ default:
+ break;
+@@ -708,7 +684,8 @@
+ default_zoom_level_changed (desktop_icon_view);
+ fm_desktop_icon_view_update_icon_container_fonts (desktop_icon_view);
+
+- /* Read out the workarea geometry and update the icon container accordingly */
++ /* Read out the panel desktop area and update the icon container
++ * accordingly */
+ net_workarea_changed (desktop_icon_view);
+
+ /* Setup the property filter */