Compare commits
7 Commits
matthiasc/
...
wip/matthi
Author | SHA1 | Date | |
---|---|---|---|
|
ab08566844 | ||
|
b7c09e6abb | ||
|
26cf06da8d | ||
|
89cfc027f2 | ||
|
3fbd86aaae | ||
|
44ec2fd543 | ||
|
8621943552 |
@@ -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;
|
||||
}
|
||||
|
@@ -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,
|
||||
|
@@ -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,
|
||||
|
@@ -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 *
|
||||
*****************************************/
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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,
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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 ();
|
||||
}
|
||||
|
@@ -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 ();
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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;
|
||||
|
57
gtk/gtkdnd.c
57
gtk/gtkdnd.c
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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 },
|
||||
|
Reference in New Issue
Block a user