summaryrefslogtreecommitdiff
path: root/libwnck/xutils.c
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@gnu.org>2002-05-14 16:55:39 +0000
committerAnders Carlsson <andersca@src.gnome.org>2002-05-14 16:55:39 +0000
commitf0f1712e37c35f741b93417e7bad5585cbebfae5 (patch)
tree3679930a6b4ee5e11c8c45e93e2a760054881961 /libwnck/xutils.c
parent025b0bc7e19db8302e2d02496eb246c7e306ebb4 (diff)
downloadlibwnck-f0f1712e37c35f741b93417e7bad5585cbebfae5.tar.gz
The property that has the icon pixmap is called WM_HINTS, not
2002-05-14 Anders Carlsson <andersca@gnu.org> * libwnck/window.c (_wnck_window_process_property_notify): The property that has the icon pixmap is called WM_HINTS, not WM_NORMAL_HINTS. Fixes #81138, reported by Håvard Wigtil. 2002-05-14 Anders Carlsson <andersca@gnu.org> * configure.in: * libwnck/pager.c: (wnck_pager_size_request), (wnck_pager_draw_workspace), (wnck_pager_button_press), (wnck_pager_button_release): * libwnck/private.h: * libwnck/screen.c: (wnck_screen_get_default), (wnck_screen_get_workspace), (update_workspace_list), (update_active_workspace), (wnck_screen_get_height), (_wnck_screen_get_xscreen): * libwnck/screen.h: * libwnck/test-pager.c: (main): * libwnck/test-tasklist.c: (main): * libwnck/window.c: (_wnck_window_create), (wnck_window_close), (wnck_window_maximize), (wnck_window_unmaximize), (wnck_window_maximize_horizontally), (wnck_window_unmaximize_horizontally), (wnck_window_maximize_vertically), (wnck_window_unmaximize_vertically), (wnck_window_shade), (wnck_window_unshade), (wnck_window_stick), (wnck_window_unstick), (wnck_window_get_workspace), (wnck_window_move_to_workspace), (wnck_window_pin), (wnck_window_unpin), (wnck_window_activate), (_wnck_window_process_configure_notify): * libwnck/workspace.c: (wnck_workspace_activate), (_wnck_workspace_create): * libwnck/workspace.h: * libwnck/xutils.c: (_wnck_close), (_wnck_change_state), (_wnck_change_workspace), (_wnck_activate), (_wnck_activate_workspace), (_wnck_get_window_geometry), (_wnck_get_window_position): * libwnck/xutils.h: Add multi-screen support. Don't leak the created and deleted lists in update_workspace_list. Bump version to 0.11.
Diffstat (limited to 'libwnck/xutils.c')
-rw-r--r--libwnck/xutils.c51
1 files changed, 29 insertions, 22 deletions
diff --git a/libwnck/xutils.c b/libwnck/xutils.c
index 26f8392..6d167db 100644
--- a/libwnck/xutils.c
+++ b/libwnck/xutils.c
@@ -763,7 +763,8 @@ _wnck_deiconify (Window xwindow)
}
void
-_wnck_close (Window xwindow)
+_wnck_close (Screen *screen,
+ Window xwindow)
{
XEvent xev;
@@ -779,14 +780,15 @@ _wnck_close (Window xwindow)
xev.xclient.data.l[2] = 0;
XSendEvent (gdk_display,
- gdk_x11_get_default_root_xwindow (),
+ RootWindowOfScreen (screen),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
&xev);
}
void
-_wnck_change_state (Window xwindow,
+_wnck_change_state (Screen *screen,
+ Window xwindow,
gboolean add,
Atom state1,
Atom state2)
@@ -809,15 +811,16 @@ _wnck_change_state (Window xwindow,
xev.xclient.data.l[2] = state2;
XSendEvent (gdk_display,
- gdk_x11_get_default_root_xwindow (),
+ RootWindowOfScreen (screen),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
&xev);
}
void
-_wnck_change_workspace (Window xwindow,
- int new_space)
+_wnck_change_workspace (Screen *screen,
+ Window xwindow,
+ int new_space)
{
XEvent xev;
@@ -833,14 +836,15 @@ _wnck_change_workspace (Window xwindow,
xev.xclient.data.l[2] = 0;
XSendEvent (gdk_display,
- gdk_x11_get_default_root_xwindow (),
+ RootWindowOfScreen (screen),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
&xev);
}
void
-_wnck_activate (Window xwindow)
+_wnck_activate (Screen *screen,
+ Window xwindow)
{
XEvent xev;
@@ -856,14 +860,15 @@ _wnck_activate (Window xwindow)
xev.xclient.data.l[2] = 0;
XSendEvent (gdk_display,
- gdk_x11_get_default_root_xwindow (),
+ RootWindowOfScreen (screen),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
&xev);
}
void
-_wnck_activate_workspace (int new_active_space)
+_wnck_activate_workspace (Screen *screen,
+ int new_active_space)
{
XEvent xev;
@@ -871,7 +876,7 @@ _wnck_activate_workspace (int new_active_space)
xev.xclient.serial = 0;
xev.xclient.send_event = True;
xev.xclient.display = gdk_display;
- xev.xclient.window = gdk_x11_get_default_root_xwindow ();
+ xev.xclient.window = RootWindowOfScreen (screen);
xev.xclient.message_type = _wnck_atom_get ("_NET_CURRENT_DESKTOP");
xev.xclient.format = 32;
xev.xclient.data.l[0] = new_active_space;
@@ -879,7 +884,7 @@ _wnck_activate_workspace (int new_active_space)
xev.xclient.data.l[2] = 0;
XSendEvent (gdk_display,
- gdk_x11_get_default_root_xwindow (),
+ RootWindowOfScreen (screen),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
&xev);
@@ -2000,11 +2005,12 @@ _wnck_get_fallback_icons (GdkPixbuf **iconp,
void
-_wnck_get_window_geometry (Window xwindow,
- int *xp,
- int *yp,
- int *widthp,
- int *heightp)
+_wnck_get_window_geometry (Screen *screen,
+ Window xwindow,
+ int *xp,
+ int *yp,
+ int *widthp,
+ int *heightp)
{
int x, y, width, height, bw, depth;
Window root_window;
@@ -2021,7 +2027,7 @@ _wnck_get_window_geometry (Window xwindow,
_wnck_error_trap_pop ();
- _wnck_get_window_position (xwindow, xp, yp);
+ _wnck_get_window_position (screen, xwindow, xp, yp);
if (widthp)
*widthp = width;
@@ -2030,9 +2036,10 @@ _wnck_get_window_geometry (Window xwindow,
}
void
-_wnck_get_window_position (Window xwindow,
- int *xp,
- int *yp)
+_wnck_get_window_position (Screen *screen,
+ Window xwindow,
+ int *xp,
+ int *yp)
{
int x, y;
Window child;
@@ -2043,7 +2050,7 @@ _wnck_get_window_position (Window xwindow,
_wnck_error_trap_push ();
XTranslateCoordinates (gdk_display,
xwindow,
- gdk_x11_get_default_root_xwindow (),
+ RootWindowOfScreen (screen),
0, 0,
&x, &y, &child);
_wnck_error_trap_pop ();