diff options
Diffstat (limited to 'x11/gnomepanel/files/patch-temp')
-rw-r--r-- | x11/gnomepanel/files/patch-temp | 441 |
1 files changed, 0 insertions, 441 deletions
diff --git a/x11/gnomepanel/files/patch-temp b/x11/gnomepanel/files/patch-temp deleted file mode 100644 index a863cbbc8bd9..000000000000 --- a/x11/gnomepanel/files/patch-temp +++ /dev/null @@ -1,441 +0,0 @@ -This patch reverts fully rev.1.50 of xstuff.c and rev.1.22 of xstuff.h, as -well as partially rev.1.302 of session.c and rev.1.176 of basep-widget.c. -The goal is to make Nautilus recognizing presence of the panel on screen, -so that it doesn't put its icons under the panel(s). For some reason, -advertized in ChangeLog _NET_WM_WORKAREA isn't recognised by Nautilus-2.0.0 -available at this time. - ---- gnome-panel/xstuff.c.orig Sun Aug 4 18:30:21 2002 -+++ gnome-panel/xstuff.c Thu Aug 8 22:19:15 2002 -@@ -8,46 +8,97 @@ - * Mark McLoughlin <mark@skynet.ie> - */ - #include <config.h> --#include <string.h> -- --#include <gdk/gdk.h> - #include <gdk/gdkx.h> -+#include <string.h> - -+#include <X11/Xmd.h> - #include <X11/Xlib.h> - #include <X11/Xatom.h> - --#include "xstuff.h" -+/* Yes, yes I know, now bugger off ... */ -+#define WNCK_I_KNOW_THIS_IS_UNSTABLE -+#include <libwnck/libwnck.h> - -+#include "xstuff.h" -+#include "multiscreen-stuff.h" -+#include "basep-widget.h" -+#include "foobar-widget.h" - #include "global-keys.h" - --static Atom --panel_atom_get (Display *display, -- const char *atom_name) -+/*list of all panel widgets created*/ -+extern GSList *panel_list; -+ -+static void xstuff_setup_global_desktop_area (int left, int right, -+ int top, int bottom); -+ -+#define ATOM(name) xstuff_atom_intern(GDK_DISPLAY(),name) -+/* Once we have multiple display support we need to only use -+ * the below ones */ -+ -+#define ATOMD(display,name) xstuff_atom_intern(display,name) -+#define ATOMEV(event,name) xstuff_atom_intern(((XAnyEvent *)event)->display,name) -+#define ATOMGDK(win,name) xstuff_atom_intern(GDK_WINDOW_XDISPLAY(win),name) -+ -+Atom -+xstuff_atom_intern (Display *display, const char *name) - { -- static GHashTable *atom_hash; -- Atom retval; -+ static GHashTable *cache = NULL; -+ char *key; -+ Atom atom; - - g_return_val_if_fail (display != NULL, None); -- g_return_val_if_fail (atom_name != NULL, None); -+ g_return_val_if_fail (name != NULL, None); -+ -+ if (cache == 0) -+ cache = g_hash_table_new (g_str_hash, g_str_equal); - -- if (!atom_hash) -- atom_hash = g_hash_table_new_full ( -- g_str_hash, g_str_equal, g_free, NULL); -- -- retval = GPOINTER_TO_UINT (g_hash_table_lookup (atom_hash, atom_name)); -- if (!retval) { -- retval = XInternAtom (display, atom_name, FALSE); -- -- if (retval != None) -- g_hash_table_insert (atom_hash, g_strdup (atom_name), -- GUINT_TO_POINTER (retval)); -+ key = g_strdup_printf ("%p %s", display, name); -+ -+ atom = (Atom)g_hash_table_lookup (cache, key); -+ if (atom == 0) { -+ atom = XInternAtom (display, name, False); -+ g_hash_table_insert (cache, key, (gpointer)atom); -+ } else { -+ g_free (key); - } - -- return retval; -+ return atom; -+} -+ -+void -+xstuff_init (void) -+{ -+ /* setup the keys filter */ -+ gdk_window_add_filter (gdk_get_default_root_window (), -+ panel_global_keys_filter, -+ NULL); -+ -+ gdk_error_trap_push (); -+ -+ xstuff_setup_global_desktop_area (0, 0, 0, 0); -+ -+ gdk_error_trap_pop (); -+} -+ -+void -+xstuff_set_simple_hint (GdkWindow *w, const char *name, long val) -+{ -+ Atom atom = ATOMGDK (w, name); -+ -+ gdk_error_trap_push (); -+ -+ XChangeProperty (GDK_DISPLAY (), -+ GDK_WINDOW_XWINDOW (w), -+ atom, atom, -+ 32, PropModeReplace, -+ (unsigned char*)&val, 1); -+ -+ gdk_flush (); -+ gdk_error_trap_pop (); - } - - /* Stolen from deskguide */ --static gpointer -+gpointer - get_typed_property_data (Display *xdisplay, - Window xwindow, - Atom property, -@@ -156,7 +207,7 @@ - - data = get_typed_property_data (GDK_DISPLAY (), - GDK_ROOT_WINDOW (), -- panel_atom_get (GDK_DISPLAY (), "_NET_SUPPORTED"), -+ ATOM ("_NET_SUPPORTED"), - XA_ATOM, - &size, 32); - if (data != NULL) { -@@ -176,11 +227,9 @@ - - XDeleteProperty (GDK_WINDOW_XDISPLAY (win), - GDK_WINDOW_XWINDOW (win), -- panel_atom_get (GDK_WINDOW_XDISPLAY (win), -- "WM_CLIENT_LEADER")); -+ ATOMGDK (win, "WM_CLIENT_LEADER")); - -- old_wmhints = XGetWMHints (GDK_WINDOW_XDISPLAY (win), -- GDK_WINDOW_XWINDOW (win)); -+ old_wmhints = XGetWMHints (GDK_DISPLAY (), GDK_WINDOW_XWINDOW (win)); - /* General paranoia */ - if (old_wmhints != NULL) { - memcpy (&wmhints, old_wmhints, sizeof (XWMHints)); -@@ -197,16 +246,124 @@ - wmhints.input = False; - wmhints.initial_state = NormalState; - } -- -- XSetWMHints (GDK_WINDOW_XDISPLAY (win), -+ XSetWMHints (GDK_DISPLAY (), - GDK_WINDOW_XWINDOW (win), - &wmhints); - } - -+ -+static void -+xstuff_setup_global_desktop_area (int left, int right, int top, int bottom) -+{ -+ long vals[4]; -+ static int old_left = -1, old_right = -1, old_top = -1, old_bottom = -1;+ -+ left = left >= 0 ? left : old_left; -+ right = right >= 0 ? right : old_right; -+ top = top >= 0 ? top : old_top; -+ bottom = bottom >= 0 ? bottom : old_bottom; -+ -+ if (old_left == left && -+ old_right == right && -+ old_top == top && -+ old_bottom == bottom) -+ return; -+ -+ vals[0] = left; -+ vals[1] = right; -+ vals[2] = top; -+ vals[3] = bottom; -+ -+ XChangeProperty (GDK_DISPLAY (), -+ GDK_ROOT_WINDOW (), -+ ATOM ("GNOME_PANEL_DESKTOP_AREA"), -+ XA_CARDINAL, -+ 32, PropModeReplace, -+ (unsigned char *)vals, 4); -+ -+ old_left = left; -+ old_right = right; -+ old_top = top; -+ old_bottom = bottom; -+} -+ -+void -+xstuff_setup_desktop_area (int screen, int left, int right, int top, int bottom) -+{ -+ char *screen_atom; -+ long vals[4]; -+ static int screen_width = -1, screen_height = -1; -+ -+ if (screen_width < 0) -+ screen_width = gdk_screen_width (); -+ if (screen_height < 0) -+ screen_height = gdk_screen_height (); -+ -+ vals[0] = left; -+ vals[1] = right; -+ vals[2] = top; -+ vals[3] = bottom; -+ -+ gdk_error_trap_push (); -+ -+ /* Note, when we do standard multihead and we have per screen -+ * root window, this should just set the GNOME_PANEL_DESKTOP_AREA */ -+ screen_atom = g_strdup_printf ("GNOME_PANEL_DESKTOP_AREA_%d", -+ screen); -+ XChangeProperty (GDK_DISPLAY (), -+ GDK_ROOT_WINDOW (), -+ ATOM (screen_atom), -+ XA_CARDINAL, -+ 32, PropModeReplace, -+ (unsigned char *)vals, 4); -+ -+ g_free (screen_atom); -+ -+ xstuff_setup_global_desktop_area -+ ((multiscreen_x (screen) == 0) ? left : -1, -+ (multiscreen_x (screen) + -+ multiscreen_width (screen) == screen_width) ? right : -1, -+ (multiscreen_y (screen) == 0) ? top : -1, -+ (multiscreen_y (screen) + -+ multiscreen_height (screen) == screen_height) ? bottom : -1); -+ -+ gdk_flush (); -+ gdk_error_trap_pop (); -+} -+ -+void -+xstuff_unsetup_desktop_area (void) -+{ -+ int i; -+ char *screen_atom; -+ -+ gdk_error_trap_push (); -+ -+ XDeleteProperty (GDK_DISPLAY (), -+ GDK_ROOT_WINDOW (), -+ ATOM ("GNOME_PANEL_DESKTOP_AREA")); -+ -+ for (i = 0; i < multiscreen_screens (); i++) { -+ screen_atom = -+ g_strdup_printf ("GNOME_PANEL_DESKTOP_AREA_%d", i); -+ -+ XDeleteProperty (GDK_DISPLAY (), -+ GDK_ROOT_WINDOW (), -+ ATOM (screen_atom)); -+ -+ g_free (screen_atom); -+ } -+ -+ gdk_flush (); -+ gdk_error_trap_pop (); -+} -+ -+ -+ - /* This is such a broken stupid function. */ - void - xstuff_set_pos_size (GdkWindow *window, int x, int y, int w, int h) - { -+ Window win = GDK_WINDOW_XWINDOW (window); - XSizeHints size_hints; - int old_x, old_y, old_w, old_h; - -@@ -231,9 +388,7 @@ - - gdk_error_trap_push (); - -- XSetWMNormalHints (GDK_WINDOW_XDISPLAY (window), -- GDK_WINDOW_XWINDOW (window), -- &size_hints); -+ XSetWMNormalHints (GDK_DISPLAY (), win, &size_hints); - - gdk_window_move_resize (window, x, y, w, h); - -@@ -250,33 +405,29 @@ - xstuff_set_wmspec_dock_hints (GdkWindow *window, - gboolean autohide) - { -- Atom atoms [2] = { None, None }; -+ Atom atoms[2] = { None, None }; - -- if (!autohide) -- atoms [0] = panel_atom_get (GDK_WINDOW_XDISPLAY (window), -- "_NET_WM_WINDOW_TYPE_DOCK"); -- else { -- atoms [0] = panel_atom_get (GDK_WINDOW_XDISPLAY (window), -- "_GNOME_WINDOW_TYPE_AUTOHIDE_PANEL"); -- atoms [1] = panel_atom_get (GDK_WINDOW_XDISPLAY (window), -- "_NET_WM_WINDOW_TYPE_DOCK"); -+ if (autohide) { -+ atoms[0] = ATOMGDK (window, "_GNOME_WINDOW_TYPE_AUTOHIDE_PANEL"); -+ atoms[1] = ATOMGDK (window, "_NET_WM_WINDOW_TYPE_DOCK"); -+ } else { -+ atoms[0] = ATOMGDK (window, "_NET_WM_WINDOW_TYPE_DOCK"); - } - - XChangeProperty (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XWINDOW (window), -- panel_atom_get (GDK_WINDOW_XDISPLAY (window), -- "_NET_WM_WINDOW_TYPE"), -+ ATOMGDK (window, "_NET_WM_WINDOW_TYPE"), - XA_ATOM, 32, PropModeReplace, -- (unsigned char *) atoms, -+ (guchar *)atoms, - autohide ? 2 : 1); - } - - void - xstuff_set_wmspec_strut (GdkWindow *window, -- int left, -- int right, -- int top, -- int bottom) -+ int left, -+ int right, -+ int top, -+ int bottom) - { - long vals [4]; - -@@ -287,25 +438,15 @@ - - XChangeProperty (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XWINDOW (window), -- panel_atom_get (GDK_WINDOW_XDISPLAY (window), -- "_NET_WM_STRUT"), -+ ATOMGDK (window, "_NET_WM_STRUT"), - XA_CARDINAL, 32, PropModeReplace, -- (unsigned char *) vals, 4); -+ (guchar *)vals, 4); - } - - void - xstuff_delete_property (GdkWindow *window, const char *name) - { -- Display *xdisplay = GDK_WINDOW_XDISPLAY (window); -- Window xwindow = GDK_WINDOW_XWINDOW (window); -- -- XDeleteProperty (xdisplay, xwindow, -- panel_atom_get (xdisplay, name)); --} -- --void --xstuff_init (void) --{ -- gdk_window_add_filter (gdk_get_default_root_window (), -- panel_global_keys_filter, NULL); -+ XDeleteProperty (GDK_WINDOW_XDISPLAY (window), -+ GDK_WINDOW_XWINDOW (window), -+ ATOMGDK (window, name)); - } ---- gnome-panel/xstuff.h.orig Fri Jun 21 02:07:59 2002 -+++ gnome-panel/xstuff.h Thu Aug 8 22:11:31 2002 -@@ -1,15 +1,36 @@ --#ifndef __XSTUFF_H__ --#define __XSTUFF_H__ -+#ifndef XSTUFF_H - --#include <gdk/gdk.h> -+#include <gdk/gdkx.h> -+ -+#include <X11/Xmd.h> -+#include <X11/Xlib.h> -+#include <X11/Xatom.h> - - void xstuff_init (void); -+Atom xstuff_atom_intern (Display *display, -+ const char *name); -+void xstuff_set_simple_hint (GdkWindow *w, -+ const char *name, -+ long val); - void xstuff_delete_property (GdkWindow *window, - const char *name); - gboolean xstuff_is_compliant_wm (void); - -+gpointer get_typed_property_data (Display *xdisplay, -+ Window xwindow, -+ Atom property, -+ Atom requested_type, -+ gint *size_p, -+ guint expected_format); -+ - void xstuff_set_no_group_and_no_input (GdkWindow *win); - -+void xstuff_setup_desktop_area (int screen, -+ int left, -+ int right, -+ int top, -+ int bottom); -+ - void xstuff_unsetup_desktop_area (void); - void xstuff_set_pos_size (GdkWindow *window, - int x, int y, -@@ -22,4 +43,4 @@ - int top, - int bottom); - --#endif /* __XSTUFF_H__ */ -+#endif ---- gnome-panel/basep-widget.c.orig Sun Aug 4 18:29:17 2002 -+++ gnome-panel/basep-widget.c Thu Aug 8 22:11:37 2002 -@@ -2508,6 +2508,11 @@ - BASEP_WIDGET (panel)->screen == screen) - gtk_widget_queue_resize (panel); - } -+ xstuff_setup_desktop_area (screen, -+ sb->left, -+ sb->right, -+ sb->top, -+ sb->bottom); - } - - static guint queue_recalc_id = 0; ---- gnome-panel/session.c.orig Wed Jul 31 20:02:15 2002 -+++ gnome-panel/session.c Thu Aug 8 22:11:41 2002 -@@ -242,6 +242,8 @@ - - gnome_config_sync (); - -+ xstuff_unsetup_desktop_area (); -+ - panel_shell_unregister (); - - gtk_main_quit(); |