Compare commits

...

7 Commits

Author SHA1 Message Date
Matthias Clasen
ab08566844 Drop the shape window example in testgtk for now
Not sure this can be rescued without root window coordinates.
It is also somewhat inherently X11-specific.
2017-08-08 21:05:19 -04:00
Matthias Clasen
b7c09e6abb Remove root window getters from public API
These are now just used internally in GDK.
2017-08-08 20:31:44 -04:00
Matthias Clasen
26cf06da8d Make the xim module build without root getters
This is X specific code anyway, so no need to use
generic GDK api for this.
2017-08-08 20:31:44 -04:00
Matthias Clasen
89cfc027f2 Stop passing root window to gdk_device_query_state
The backends do the right thing now.
2017-08-08 19:56:25 -04:00
Matthias Clasen
3fbd86aaae Allow passing a NULL window to gdk_device_query_state
Interpret NULL as "root window" here - we only have one
screen nowadays, so there is no choice involved, and this
will let us avoid dealing with the root window in the
fontend code.
2017-08-08 19:56:17 -04:00
Matthias Clasen
44ec2fd543 Drop root windows from some internal apis
_gdk_device_query_state was needlessly shuffling
root windows around.
2017-08-08 19:56:10 -04:00
Matthias Clasen
8621943552 Drop keynav for dnd
This is very much an easter egg, and it is the last place where
we use the root window in libgtk.
2017-08-08 19:56:04 -04:00
24 changed files with 59 additions and 163 deletions

View File

@@ -42,7 +42,6 @@ static void gdk_broadway_device_warp (GdkDevice *device,
gdouble y);
static void gdk_broadway_device_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -143,7 +142,6 @@ gdk_broadway_device_warp (GdkDevice *device,
static void
gdk_broadway_device_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -151,14 +149,10 @@ gdk_broadway_device_query_state (GdkDevice *device,
gdouble *win_y,
GdkModifierType *mask)
{
GdkWindow *toplevel;
GdkWindowImplBroadway *impl;
GdkDisplay *display;
GdkBroadwayDisplay *broadway_display;
GdkScreen *screen;
gint32 device_root_x, device_root_y;
guint32 mouse_toplevel_id;
GdkWindow *mouse_toplevel;
guint32 mask32;
if (gdk_device_get_source (device) != GDK_SOURCE_MOUSE)
@@ -167,21 +161,11 @@ gdk_broadway_device_query_state (GdkDevice *device,
display = gdk_device_get_display (device);
broadway_display = GDK_BROADWAY_DISPLAY (display);
impl = GDK_WINDOW_IMPL_BROADWAY (window->impl);
toplevel = impl->wrapper;
if (root_window)
{
screen = gdk_window_get_screen (window);
*root_window = gdk_screen_get_root_window (screen);
}
_gdk_broadway_server_query_mouse (broadway_display->server,
&mouse_toplevel_id,
&device_root_x,
&device_root_y,
&mask32);
mouse_toplevel = g_hash_table_lookup (broadway_display->id_ht, GUINT_TO_POINTER (mouse_toplevel_id));
if (root_x)
*root_x = device_root_x;
@@ -195,6 +179,17 @@ gdk_broadway_device_query_state (GdkDevice *device,
*mask = mask32;
if (child_window)
{
GdkWindowImplBroadway *impl;
GdkWindow *toplevel;
GdkWindow *mouse_toplevel;
if (window == NULL)
window = gdk_get_default_root_window ();
impl = GDK_WINDOW_IMPL_BROADWAY (window->impl);
toplevel = impl->wrapper;
mouse_toplevel = g_hash_table_lookup (broadway_display->id_ht, GUINT_TO_POINTER (mouse_toplevel_id));
if (gdk_window_get_window_type (toplevel) == GDK_WINDOW_ROOT)
{
*child_window = mouse_toplevel;
@@ -347,7 +342,7 @@ gdk_broadway_device_window_at_position (GdkDevice *device,
screen = gdk_display_get_default_screen (gdk_device_get_display (device));
root_window = gdk_screen_get_root_window (screen);
gdk_broadway_device_query_state (device, root_window, NULL, &window, NULL, NULL, win_x, win_y, mask);
gdk_broadway_device_query_state (device, root_window, &window, NULL, NULL, win_x, win_y, mask);
return window;
}

View File

@@ -586,7 +586,6 @@ gdk_device_get_position_double (GdkDevice *device,
GdkDisplay *display;
gdouble tmp_x, tmp_y;
GdkScreen *default_screen;
GdkWindow *root;
g_return_if_fail (GDK_IS_DEVICE (device));
g_return_if_fail (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD);
@@ -599,13 +598,13 @@ gdk_device_get_position_double (GdkDevice *device,
default_screen = gdk_display_get_default_screen (display);
_gdk_device_query_state (device,
gdk_screen_get_root_window (default_screen),
&root, NULL,
NULL,
NULL,
&tmp_x, &tmp_y,
NULL, NULL, NULL);
if (screen)
*screen = gdk_window_get_screen (root);
*screen = default_screen;
if (x)
*x = tmp_x;
if (y)
@@ -1838,7 +1837,6 @@ _gdk_device_translate_axis (GdkDevice *device,
void
_gdk_device_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -1848,7 +1846,6 @@ _gdk_device_query_state (GdkDevice *device,
{
GDK_DEVICE_GET_CLASS (device)->query_state (device,
window,
root_window,
child_window,
root_x,
root_y,

View File

@@ -94,7 +94,6 @@ struct _GdkDeviceClass
gdouble y);
void (* query_state) (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -172,7 +171,6 @@ void _gdk_device_remove_slave (GdkDevice *device,
GdkDevice *slave);
void _gdk_device_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,

View File

@@ -392,6 +392,10 @@ void _gdk_screen_set_resolution (GdkScreen *screen,
gdouble dpi);
void _gdk_screen_close (GdkScreen *screen);
GdkWindow *gdk_screen_get_root_window (GdkScreen *screen);
GdkWindow *gdk_get_default_root_window (void);
/*****************************************
* Interfaces provided by windowing code *
*****************************************/

View File

@@ -261,16 +261,6 @@ gdk_screen_get_display (GdkScreen *screen)
return GDK_SCREEN_GET_CLASS (screen)->get_display (screen);
}
/**
* gdk_screen_get_root_window:
* @screen: a #GdkScreen
*
* Gets the root window of @screen.
*
* Returns: (transfer none): the root window
*
* Since: 2.2
**/
GdkWindow *
gdk_screen_get_root_window (GdkScreen *screen)
{

View File

@@ -41,8 +41,6 @@ G_BEGIN_DECLS
GDK_AVAILABLE_IN_ALL
GType gdk_screen_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
GdkWindow * gdk_screen_get_root_window (GdkScreen *screen);
GDK_AVAILABLE_IN_ALL
GdkDisplay * gdk_screen_get_display (GdkScreen *screen);

View File

@@ -1159,8 +1159,7 @@ gdk_window_new_toplevel (GdkDisplay *display,
attr.height = height;
attr.window_type = GDK_WINDOW_TOPLEVEL;
return gdk_window_new (gdk_screen_get_root_window (gdk_display_get_default_screen (display)),
&attr);
return gdk_window_new (NULL, &attr);
}
/**
@@ -1194,8 +1193,7 @@ gdk_window_new_popup (GdkDisplay *display,
attr.height = position->height;
attr.window_type = GDK_WINDOW_TEMP;
return gdk_window_new (gdk_screen_get_root_window (gdk_display_get_default_screen (display)),
&attr);
return gdk_window_new (NULL, &attr);
}
/**
@@ -1226,8 +1224,7 @@ gdk_window_new_temp (GdkDisplay *display)
attr.height = 10;
attr.window_type = GDK_WINDOW_TEMP;
return gdk_window_new (gdk_screen_get_root_window (gdk_display_get_default_screen (display)),
&attr);
return gdk_window_new (NULL, &attr);
}
/**
@@ -1970,8 +1967,7 @@ gdk_window_remove_filter (GdkWindow *window,
* @screen: The #GdkScreen where the toplevels are located.
*
* Obtains a list of all toplevel windows known to GDK on the screen @screen.
* A toplevel window is a child of the root window (see
* gdk_get_default_root_window()).
* A toplevel window has no parent window.
*
* The returned list should be freed with g_list_free(), but
* its elements need not be freed.
@@ -3478,14 +3474,6 @@ gdk_window_get_device_position (GdkWindow *window,
return window;
}
/**
* gdk_get_default_root_window:
*
* Obtains the root window (parent all other windows are inside)
* for the default display and screen.
*
* Returns: (transfer none): the default root window
**/
GdkWindow *
gdk_get_default_root_window (void)
{

View File

@@ -884,9 +884,6 @@ void gdk_window_constrain_size (GdkGeometry *geometry,
gint *new_width,
gint *new_height);
GDK_AVAILABLE_IN_ALL
GdkWindow *gdk_get_default_root_window (void);
/* Multidevice support */
GDK_AVAILABLE_IN_ALL
void gdk_window_set_support_multidevice (GdkWindow *window,

View File

@@ -94,7 +94,6 @@ gdk_mir_keyboard_warp (GdkDevice *device,
static void
gdk_mir_keyboard_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,

View File

@@ -133,7 +133,6 @@ gdk_mir_pointer_warp (GdkDevice *device,
static void
gdk_mir_pointer_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -143,8 +142,6 @@ gdk_mir_pointer_query_state (GdkDevice *device,
{
GdkMirPointer *p = GDK_MIR_POINTER (device);
if (root_window)
*root_window = gdk_screen_get_root_window (gdk_display_get_default_screen (gdk_device_get_display (device)));
if (child_window)
*child_window = p->over_window;
if (root_x)

View File

@@ -1327,7 +1327,7 @@ gdk_mir_window_impl_get_device_state (GdkWindow *window,
{
GdkWindow *child;
_gdk_device_query_state (device, window, NULL, &child, NULL, NULL, x, y, mask);
_gdk_device_query_state (device, window, &child, NULL, NULL, x, y, mask);
return child != NULL;
}

View File

@@ -258,7 +258,6 @@ gdk_quartz_device_core_query_state_helper (GdkWindow *window,
static void
gdk_quartz_device_core_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -270,6 +269,9 @@ gdk_quartz_device_core_query_state (GdkDevice *device,
NSPoint point;
gint x_tmp, y_tmp;
if (window == NULL)
window = _gdk_root;
found_window = gdk_quartz_device_core_query_state_helper (window, device,
win_x, win_y,
mask);

View File

@@ -583,7 +583,6 @@ device_get_modifiers (GdkDevice *device)
static void
gdk_wayland_device_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -591,16 +590,13 @@ gdk_wayland_device_query_state (GdkDevice *device,
gdouble *win_y,
GdkModifierType *mask)
{
GdkWaylandSeat *seat;
GdkWaylandPointerData *pointer;
GdkScreen *default_screen;
seat = GDK_WAYLAND_SEAT (gdk_device_get_seat (device));
if (window == NULL)
window = gdk_get_default_root_window ();
pointer = GDK_WAYLAND_DEVICE (device)->pointer;
default_screen = gdk_display_get_default_screen (seat->display);
if (root_window)
*root_window = gdk_screen_get_root_window (default_screen);
if (child_window)
/* Set child only if actually a child of the given window, as XIQueryPointer() does */
*child_window = g_list_find (window->children, pointer->focus) ? pointer->focus : NULL;

View File

@@ -2780,7 +2780,7 @@ gdk_window_wayland_get_device_state (GdkWindow *window,
GdkWindow *child;
GDK_DEVICE_GET_CLASS (device)->query_state (device, window,
NULL, &child,
&child,
NULL, NULL,
x, y, mask);
return_val = (child != NULL);

View File

@@ -133,7 +133,6 @@ gdk_device_virtual_warp (GdkDevice *device,
static void
gdk_device_virtual_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -144,7 +143,7 @@ gdk_device_virtual_query_state (GdkDevice *device,
GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
_gdk_device_query_state (virtual->active_device,
window, root_window, child_window,
window, child_window,
root_x, root_y,
win_x, win_y,
mask);

View File

@@ -100,7 +100,6 @@ get_current_mask (void)
static void
gdk_device_win32_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -108,12 +107,12 @@ gdk_device_win32_query_state (GdkDevice *device,
gdouble *win_y,
GdkModifierType *mask)
{
GdkScreen *screen;
POINT point;
HWND hwnd, hwndc;
GdkWindowImplWin32 *impl;
screen = gdk_window_get_screen (window);
if (window == NULL)
window = gdk_get_default_root_window ();
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
hwnd = GDK_WINDOW_HWND (window);
@@ -133,7 +132,7 @@ gdk_device_win32_query_state (GdkDevice *device,
if (win_y)
*win_y = point.y / impl->window_scale;
if (window == gdk_screen_get_root_window (screen))
if (window == gdk_get_default_root_window ())
{
if (win_x)
*win_x += _gdk_offset_x;
@@ -158,9 +157,6 @@ gdk_device_win32_query_state (GdkDevice *device,
*child_window = NULL; /* Direct child unknown to gdk */
}
if (root_window)
*root_window = gdk_screen_get_root_window (screen);
if (mask)
*mask = get_current_mask ();
}

View File

@@ -109,7 +109,6 @@ gdk_device_wintab_warp (GdkDevice *device,
static void
gdk_device_wintab_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -118,13 +117,13 @@ gdk_device_wintab_query_state (GdkDevice *device,
GdkModifierType *mask)
{
GdkDeviceWintab *device_wintab;
GdkScreen *screen;
POINT point;
HWND hwnd, hwndc;
GdkWindowImplWin32 *impl;
device_wintab = GDK_DEVICE_WINTAB (device);
screen = gdk_window_get_screen (window);
if (window == NULL)
window = gdk_get_default_root_window ();
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
hwnd = GDK_WINDOW_HWND (window);
@@ -163,9 +162,6 @@ gdk_device_wintab_query_state (GdkDevice *device,
*child_window = NULL; /* Direct child unknown to gdk */
}
if (root_window)
*root_window = gdk_screen_get_root_window (screen);
if (mask)
{
*mask = get_current_mask ();

View File

@@ -2214,7 +2214,7 @@ gdk_window_win32_get_device_state (GdkWindow *window,
g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), FALSE);
GDK_DEVICE_GET_CLASS (device)->query_state (device, window,
NULL, &child,
&child,
NULL, NULL,
x, y, mask);
return (child != NULL);

View File

@@ -60,7 +60,6 @@ static void gdk_x11_device_core_warp (GdkDevice *device,
gdouble y);
static void gdk_x11_device_core_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -250,7 +249,6 @@ gdk_x11_device_core_warp (GdkDevice *device,
static void
gdk_x11_device_core_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -258,15 +256,18 @@ gdk_x11_device_core_query_state (GdkDevice *device,
gdouble *win_y,
GdkModifierType *mask)
{
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl);
GdkWindowImplX11 *impl;
GdkDisplay *display;
GdkScreen *default_screen;
Window xroot_window, xchild_window;
int xroot_x, xroot_y, xwin_x, xwin_y;
unsigned int xmask;
display = gdk_window_get_display (window);
display = gdk_device_get_display (device);
default_screen = gdk_display_get_default_screen (display);
if (window == NULL)
window = gdk_screen_get_root_window (default_screen);
impl = GDK_WINDOW_IMPL_X11 (window->impl);
if (!GDK_X11_DISPLAY (display)->trusted_client ||
!XQueryPointer (GDK_WINDOW_XDISPLAY (window),
@@ -297,9 +298,6 @@ gdk_x11_device_core_query_state (GdkDevice *device,
XDestroyWindow (xdisplay, w);
}
if (root_window)
*root_window = gdk_x11_window_lookup_for_display (display, xroot_window);
if (child_window)
*child_window = gdk_x11_window_lookup_for_display (display, xchild_window);

View File

@@ -85,7 +85,6 @@ static void gdk_x11_device_xi2_warp (GdkDevice *device,
gdouble y);
static void gdk_x11_device_xi2_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -271,7 +270,7 @@ gdk_x11_device_xi2_get_state (GdkDevice *device,
if (mask)
gdk_x11_device_xi2_query_state (device, window,
NULL, NULL,
NULL,
NULL, NULL,
NULL, NULL,
mask);
@@ -321,7 +320,6 @@ gdk_x11_device_xi2_warp (GdkDevice *device,
static void
gdk_x11_device_xi2_query_state (GdkDevice *device,
GdkWindow *window,
GdkWindow **root_window,
GdkWindow **child_window,
gdouble *root_x,
gdouble *root_y,
@@ -329,7 +327,7 @@ gdk_x11_device_xi2_query_state (GdkDevice *device,
gdouble *win_y,
GdkModifierType *mask)
{
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl);
GdkWindowImplX11 *impl;
GdkX11DeviceXI2 *device_xi2 = GDK_X11_DEVICE_XI2 (device);
GdkDisplay *display;
GdkScreen *default_screen;
@@ -339,15 +337,18 @@ gdk_x11_device_xi2_query_state (GdkDevice *device,
XIModifierState mod_state;
XIGroupState group_state;
display = gdk_window_get_display (window);
display = gdk_device_get_display (device);
default_screen = gdk_display_get_default_screen (display);
if (window == NULL)
window = gdk_screen_get_root_window (default_screen);
impl = GDK_WINDOW_IMPL_X11 (window->impl);
if (gdk_device_get_device_type (device) == GDK_DEVICE_TYPE_SLAVE)
{
GdkDevice *master = gdk_device_get_associated_device (device);
if (master)
_gdk_device_query_state (master, window, root_window, child_window,
_gdk_device_query_state (master, window, child_window,
root_x, root_y, win_x, win_y, mask);
return;
}
@@ -387,9 +388,6 @@ gdk_x11_device_xi2_query_state (GdkDevice *device,
XDestroyWindow (xdisplay, w);
}
if (root_window)
*root_window = gdk_x11_window_lookup_for_display (display, xroot_window);
if (child_window)
*child_window = gdk_x11_window_lookup_for_display (display, xchild_window);

View File

@@ -2791,7 +2791,7 @@ gdk_window_x11_get_device_state (GdkWindow *window,
/*HIDPI: handle coords here?*/
GDK_DEVICE_GET_CLASS (device)->query_state (device, window,
NULL, &child,
&child,
NULL, NULL,
x, y, mask);
return child != NULL;

View File

@@ -2384,9 +2384,6 @@ gtk_drag_motion_cb (GtkWidget *widget,
return TRUE;
}
#define BIG_STEP 20
#define SMALL_STEP 1
/* “key-press/release-event” callback during drag */
static gboolean
gtk_drag_key_cb (GtkWidget *widget,
@@ -2394,14 +2391,6 @@ gtk_drag_key_cb (GtkWidget *widget,
gpointer data)
{
GtkDragSourceInfo *info = (GtkDragSourceInfo *)data;
GdkModifierType state;
GdkWindow *root_window;
GdkDevice *pointer;
gint dx, dy;
dx = dy = 0;
state = event->state & gtk_accelerator_get_default_mod_mask ();
pointer = gdk_device_get_associated_device (gdk_event_get_device ((GdkEvent *) event));
if (event->type == GDK_KEY_PRESS)
{
@@ -2409,7 +2398,7 @@ gtk_drag_key_cb (GtkWidget *widget,
{
case GDK_KEY_Escape:
gtk_drag_cancel_internal (info, GTK_DRAG_RESULT_USER_CANCELLED, event->time);
return TRUE;
break;
case GDK_KEY_space:
case GDK_KEY_Return:
@@ -2426,52 +2415,10 @@ gtk_drag_key_cb (GtkWidget *widget,
{
gtk_drag_cancel_internal (info, GTK_DRAG_RESULT_NO_TARGET, event->time);
}
return TRUE;
case GDK_KEY_Up:
case GDK_KEY_KP_Up:
dy = (state & GDK_MOD1_MASK) ? -BIG_STEP : -SMALL_STEP;
break;
case GDK_KEY_Down:
case GDK_KEY_KP_Down:
dy = (state & GDK_MOD1_MASK) ? BIG_STEP : SMALL_STEP;
break;
case GDK_KEY_Left:
case GDK_KEY_KP_Left:
dx = (state & GDK_MOD1_MASK) ? -BIG_STEP : -SMALL_STEP;
break;
case GDK_KEY_Right:
case GDK_KEY_KP_Right:
dx = (state & GDK_MOD1_MASK) ? BIG_STEP : SMALL_STEP;
break;
}
}
}
/* Now send a "motion" so that the modifier state is updated */
/* The state is not yet updated in the event, so we need
* to query it here. We could use XGetModifierMapping, but
* that would be overkill.
*/
root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget));
gdk_window_get_device_position (root_window, pointer, NULL, NULL, &state);
event->state = state;
if (dx != 0 || dy != 0)
{
info->cur_x += dx;
info->cur_y += dy;
gdk_device_warp (pointer,
gtk_widget_get_screen (widget),
info->cur_x, info->cur_y);
}
gtk_drag_update (info, info->cur_screen, info->cur_x, info->cur_y, (GdkEvent *)event);
return TRUE;
}

View File

@@ -660,14 +660,12 @@ gtk_im_context_xim_filter_keypress (GtkIMContext *context,
KeySym keysym;
Status status;
gboolean result = FALSE;
GdkWindow *root_window;
GdkWindow *window;
XKeyPressedEvent xevent;
if (event->type == GDK_KEY_RELEASE && !context_xim->filter_key_release)
return FALSE;
root_window = gdk_screen_get_root_window (gdk_window_get_screen (event->window));
window = gdk_window_get_toplevel (event->window);
xevent.type = (event->type == GDK_KEY_PRESS) ? KeyPress : KeyRelease;
@@ -675,7 +673,7 @@ gtk_im_context_xim_filter_keypress (GtkIMContext *context,
xevent.send_event = event->send_event;
xevent.display = GDK_WINDOW_XDISPLAY (window);
xevent.window = GDK_WINDOW_XID (window);
xevent.root = GDK_WINDOW_XID (root_window);
xevent.root = DefaultRootWindow(GDK_WINDOW_XDISPLAY (window));
xevent.subwindow = xevent.window;
xevent.time = event->time;
xevent.x = xevent.x_root = 0;
@@ -1638,7 +1636,7 @@ on_status_toplevel_configure (GtkWidget *toplevel,
if (status_window->window)
{
height = gdk_window_get_height (gdk_screen_get_root_window (gtk_widget_get_screen (toplevel)));
height = DisplayHeight(GDK_WINDOW_XDISPLAY (gtk_widget_get_window (toplevel)), 0);
gdk_window_get_frame_extents (gtk_widget_get_window (toplevel),
&rect);

View File

@@ -5702,7 +5702,7 @@ create_paned_keyboard_navigation (GtkWidget *widget)
gtk_widget_show (GTK_WIDGET (window4));
}
#if 0
/*
* Shaped Windows
*/
@@ -5925,6 +5925,7 @@ create_shapes (GtkWidget *widget)
else
gtk_widget_destroy (with_region);
}
#endif
/*
* WM Hints demo
@@ -8300,7 +8301,9 @@ struct {
{ "rotated text", create_rotated_text },
{ "saved position", create_saved_position },
{ "scrolled windows", create_scrolled_windows },
#if 0
{ "shapes", create_shapes },
#endif
{ "size groups", create_size_groups },
{ "snapshot", create_snapshot },
{ "spinbutton", create_spins },