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.
This commit is contained in:
parent
f13df77066
commit
5edeb94a4a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=63493
2 changed files with 122 additions and 0 deletions
|
@ -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$//}
|
||||
|
|
121
x11-fm/nautilus2/files/patch-temp
Normal file
121
x11-fm/nautilus2/files/patch-temp
Normal file
|
@ -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 */
|
Loading…
Reference in a new issue