summaryrefslogtreecommitdiff
path: root/gdk/win32/gdkevents-win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/win32/gdkevents-win32.c')
-rw-r--r--gdk/win32/gdkevents-win32.c188
1 files changed, 63 insertions, 125 deletions
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 78d6cbe623..450f8c1495 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -46,11 +46,15 @@
#include <glib/gprintf.h>
#include "gdk.h"
+#include "gdkdisplayprivate.h"
#include "gdkprivate-win32.h"
#include "gdkkeysyms.h"
#include "gdkdevicemanager-win32.h"
#include "gdkdeviceprivate.h"
#include "gdkdevice-wintab.h"
+#include "gdkwin32.h"
+#include "gdkwin32dnd.h"
+#include "gdkdndprivate.h"
#include <windowsx.h>
@@ -390,10 +394,10 @@ _gdk_events_init (void)
}
gboolean
-gdk_events_pending (void)
+_gdk_win32_display_has_pending (GdkDisplay *display)
{
MSG msg;
- return (_gdk_event_queue_find_first (_gdk_display) ||
+ return (_gdk_event_queue_find_first (display) ||
(modal_win32_dialog == NULL &&
PeekMessageW (&msg, NULL, 0, 0, PM_NOREMOVE)));
}
@@ -449,15 +453,15 @@ _gdk_windowing_device_grab (GdkDevice *device,
guint32 time)
{
HCURSOR hcursor;
- GdkCursorPrivate *cursor_private;
+ GdkWin32Cursor *cursor_private;
gint return_val;
- GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) native_window)->impl);
+ GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (native_window->impl);
g_return_val_if_fail (window != NULL, 0);
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
g_return_val_if_fail (confine_to == NULL || GDK_IS_WINDOW (confine_to), 0);
- cursor_private = (GdkCursorPrivate*) cursor;
+ cursor_private = (GdkWin32Cursor*) cursor;
if (!cursor)
hcursor = NULL;
@@ -492,28 +496,6 @@ _gdk_windowing_device_grab (GdkDevice *device,
return return_val;
}
-void
-gdk_device_ungrab (GdkDevice *device,
- guint32 time)
-{
- GdkDeviceGrabInfo *info;
- GdkDisplay *display;
-
- g_return_if_fail (GDK_IS_DEVICE (device));
-
- display = gdk_device_get_display (device);
- info = _gdk_display_get_last_device_grab (display, device);
-
- if (info)
- {
- info->serial_end = 0;
- GDK_DEVICE_GET_CLASS (device)->ungrab (device, time);
- }
-
- _gdk_display_device_grab_update (display, device, 0);
-}
-
-
static GdkWindow *
find_window_for_mouse_event (GdkWindow* reported_window,
MSG* msg)
@@ -562,11 +544,11 @@ find_window_for_mouse_event (GdkWindow* reported_window,
return other_window;
}
-void
-gdk_display_add_client_message_filter (GdkDisplay *display,
- GdkAtom message_type,
- GdkFilterFunc func,
- gpointer data)
+void
+_gdk_win32_display_add_client_message_filter (GdkDisplay *display,
+ GdkAtom message_type,
+ GdkFilterFunc func,
+ gpointer data)
{
GdkClientFilter *filter = g_new (GdkClientFilter, 1);
@@ -1096,7 +1078,7 @@ apply_event_filters (GdkWindow *window,
static void
show_window_recurse (GdkWindow *window, gboolean hide_window)
{
- GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
+ GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
GSList *children = impl->transient_children;
GdkWindow *child = NULL;
@@ -1119,9 +1101,9 @@ show_window_recurse (GdkWindow *window, gboolean hide_window)
{
if (!hide_window)
{
- if (GDK_WINDOW_OBJECT (window)->state & GDK_WINDOW_STATE_ICONIFIED)
+ if (gdk_window_get_state (window) & GDK_WINDOW_STATE_ICONIFIED)
{
- if (GDK_WINDOW_OBJECT (window)->state & GDK_WINDOW_STATE_MAXIMIZED)
+ if (gdk_window_get_state (window) & GDK_WINDOW_STATE_MAXIMIZED)
{
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWMAXIMIZED);
}
@@ -1145,7 +1127,7 @@ static void
do_show_window (GdkWindow *window, gboolean hide_window)
{
GdkWindow *tmp_window = NULL;
- GdkWindowImplWin32 *tmp_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
+ GdkWindowImplWin32 *tmp_impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
if (!tmp_impl->changing_state)
{
@@ -1153,7 +1135,7 @@ do_show_window (GdkWindow *window, gboolean hide_window)
while (tmp_impl->transient_owner != NULL)
{
tmp_window = tmp_impl->transient_owner;
- tmp_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (tmp_window)->impl);
+ tmp_impl = GDK_WINDOW_IMPL_WIN32 (tmp_window->impl);
}
/* If we couldn't find one, use the window provided. */
@@ -1200,7 +1182,7 @@ synthesize_enter_or_leave_event (GdkWindow *window,
append_event (event);
if (type == GDK_ENTER_NOTIFY &&
- ((GdkWindowObject *) window)->extension_events != 0)
+ window->extension_events != 0)
_gdk_device_wintab_update_window_coords (window);
}
@@ -1226,7 +1208,7 @@ propagate (GdkWindow **window,
* device is used
*/
if (check_extended &&
- ((GdkWindowObject *) grab_window)->extension_events != 0 &&
+ grab_window->extension_events != 0 &&
_gdk_input_ignore_core)
{
GDK_NOTE (EVENTS, g_print (" (ignored for grabber)"));
@@ -1251,13 +1233,13 @@ propagate (GdkWindow **window,
while (TRUE)
{
if (check_extended &&
- ((GdkWindowObject *) *window)->extension_events != 0 &&
+ (*window)->extension_events != 0 &&
_gdk_input_ignore_core)
{
GDK_NOTE (EVENTS, g_print (" (ignored)"));
return FALSE;
}
- if ((*doesnt_want_it) (((GdkWindowObject *) *window)->event_mask, msg))
+ if ((*doesnt_want_it) ((*window)->event_mask, msg))
{
/* Owner doesn't want it, propagate to parent. */
GdkWindow *parent = gdk_window_get_parent (*window);
@@ -1269,7 +1251,7 @@ propagate (GdkWindow **window,
/* Event source is grabbed with owner_events TRUE */
if (check_extended &&
- ((GdkWindowObject *) grab_window)->extension_events != 0 &&
+ grab_window->extension_events != 0 &&
_gdk_input_ignore_core)
{
GDK_NOTE (EVENTS, g_print (" (ignored for grabber)"));
@@ -1329,7 +1311,6 @@ handle_configure_event (MSG *msg,
{
RECT client_rect;
POINT point;
- GdkWindowObject *window_object;
GetClientRect (msg->hwnd, &client_rect);
point.x = client_rect.left; /* always 0 */
@@ -1343,17 +1324,15 @@ handle_configure_event (MSG *msg,
point.y += _gdk_offset_y;
}
- window_object = GDK_WINDOW_OBJECT (window);
-
- window_object->width = client_rect.right - client_rect.left;
- window_object->height = client_rect.bottom - client_rect.top;
+ window->width = client_rect.right - client_rect.left;
+ window->height = client_rect.bottom - client_rect.top;
- window_object->x = point.x;
- window_object->y = point.y;
+ window->x = point.x;
+ window->y = point.y;
_gdk_window_update_size (window);
- if (window_object->event_mask & GDK_STRUCTURE_MASK)
+ if (window->event_mask & GDK_STRUCTURE_MASK)
{
GdkEvent *event = gdk_event_new (GDK_CONFIGURE);
@@ -1601,7 +1580,7 @@ ensure_stacking_on_unminimize (MSG *msg)
if (rover_gdkw)
{
GdkWindowImplWin32 *rover_impl =
- (GdkWindowImplWin32 *)((GdkWindowObject *)rover_gdkw)->impl;
+ GDK_WINDOW_IMPL_WIN32 (rover_gdkw->impl);
if (GDK_WINDOW_IS_MAPPED (rover_gdkw) &&
(rover_impl->type_hint == GDK_WINDOW_TYPE_HINT_UTILITY ||
@@ -1624,7 +1603,7 @@ static gboolean
ensure_stacking_on_window_pos_changing (MSG *msg,
GdkWindow *window)
{
- GdkWindowImplWin32 *impl = (GdkWindowImplWin32 *)((GdkWindowObject *) window)->impl;
+ GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
WINDOWPOS *windowpos = (WINDOWPOS *) msg->lParam;
if (GetActiveWindow () == msg->hwnd &&
@@ -1652,7 +1631,7 @@ ensure_stacking_on_window_pos_changing (MSG *msg,
if (rover_gdkw)
{
GdkWindowImplWin32 *rover_impl =
- (GdkWindowImplWin32 *)((GdkWindowObject *)rover_gdkw)->impl;
+ GDK_WINDOW_IMPL_WIN32 (rover_gdkw->impl);
if (GDK_WINDOW_IS_MAPPED (rover_gdkw) &&
(rover_impl->type_hint == GDK_WINDOW_TYPE_HINT_UTILITY ||
@@ -1679,7 +1658,7 @@ static void
ensure_stacking_on_activate_app (MSG *msg,
GdkWindow *window)
{
- GdkWindowImplWin32 *impl = (GdkWindowImplWin32 *)((GdkWindowObject *) window)->impl;
+ GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
if (impl->type_hint == GDK_WINDOW_TYPE_HINT_UTILITY ||
impl->type_hint == GDK_WINDOW_TYPE_HINT_DIALOG ||
@@ -1709,7 +1688,7 @@ ensure_stacking_on_activate_app (MSG *msg,
if (rover_gdkw)
{
GdkWindowImplWin32 *rover_impl =
- (GdkWindowImplWin32 *)((GdkWindowObject *)rover_gdkw)->impl;
+ GDK_WINDOW_IMPL_WIN32 (rover_gdkw->impl);
if (GDK_WINDOW_IS_MAPPED (rover_gdkw) &&
(rover_impl->type_hint == GDK_WINDOW_TYPE_HINT_UTILITY ||
@@ -1829,11 +1808,11 @@ gdk_event_translate (MSG *msg,
*/
#define return GOTO_DONE_INSTEAD
- if (!GDK_WINDOW_DESTROYED (window) && ((GdkWindowObject *) window)->filters)
+ if (!GDK_WINDOW_DESTROYED (window) && window->filters)
{
/* Apply per-window filters */
- GdkFilterReturn result = apply_event_filters (window, msg, &((GdkWindowObject *) window)->filters);
+ GdkFilterReturn result = apply_event_filters (window, msg, &window->filters);
if (result == GDK_FILTER_REMOVE || result == GDK_FILTER_TRANSLATE)
{
@@ -2009,7 +1988,7 @@ gdk_event_translate (MSG *msg,
build_key_event_state (event, key_state);
- gdk_keymap_translate_keyboard_state (NULL,
+ gdk_keymap_translate_keyboard_state (_gdk_win32_display_get_keymap (_gdk_display),
event->key.hardware_keycode,
event->key.state,
event->key.group,
@@ -2089,7 +2068,7 @@ gdk_event_translate (MSG *msg,
for (i = 0; i < ccount; i++)
{
- if (((GdkWindowObject *) window)->event_mask & GDK_KEY_PRESS_MASK)
+ if (window->event_mask & GDK_KEY_PRESS_MASK)
{
/* Build a key press event */
event = gdk_event_new (GDK_KEY_PRESS);
@@ -2100,7 +2079,7 @@ gdk_event_translate (MSG *msg,
append_event (event);
}
- if (((GdkWindowObject *) window)->event_mask & GDK_KEY_RELEASE_MASK)
+ if (window->event_mask & GDK_KEY_RELEASE_MASK)
{
/* Build a key release event. */
event = gdk_event_new (GDK_KEY_RELEASE);
@@ -2174,7 +2153,7 @@ gdk_event_translate (MSG *msg,
assign_object (&window, find_window_for_mouse_event (window, msg));
#if 0
- if (((GdkWindowObject *) window)->extension_events != 0 &&
+ if (window->extension_events != 0 &&
_gdk_input_ignore_core)
{
GDK_NOTE (EVENTS, g_print (" (ignored)"));
@@ -2244,7 +2223,7 @@ gdk_event_translate (MSG *msg,
GET_X_LPARAM (msg->lParam), GET_Y_LPARAM (msg->lParam)));
#if 0 /* TODO_CSW? */
if (current_toplevel != NULL &&
- (((GdkWindowObject *) current_toplevel)->event_mask & GDK_LEAVE_NOTIFY_MASK))
+ (current_toplevel->event_mask & GDK_LEAVE_NOTIFY_MASK))
{
synthesize_enter_or_leave_event (current_toplevel, msg,
GDK_LEAVE_NOTIFY, GDK_CROSSING_NORMAL, GDK_NOTIFY_ANCESTOR);
@@ -2357,7 +2336,7 @@ gdk_event_translate (MSG *msg,
GdkWindow *tmp;
if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP
- || !((GdkWindowObject *)window)->accept_focus)
+ || !window->accept_focus)
{
*ret_valp = MA_NOACTIVATE;
return_val = TRUE;
@@ -2390,7 +2369,7 @@ gdk_event_translate (MSG *msg,
!keyboard_grab->owner_events)
break;
- if (!(((GdkWindowObject *) window)->event_mask & GDK_FOCUS_CHANGE_MASK))
+ if (!(window->event_mask & GDK_FOCUS_CHANGE_MASK))
break;
if (GDK_WINDOW_DESTROYED (window))
@@ -2433,7 +2412,7 @@ gdk_event_translate (MSG *msg,
if (grab_window != NULL && p_grab_cursor != NULL)
hcursor = p_grab_cursor;
else if (!GDK_WINDOW_DESTROYED (window))
- hcursor = GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl)->hcursor;
+ hcursor = GDK_WINDOW_IMPL_WIN32 (window->impl)->hcursor;
else
hcursor = NULL;
@@ -2456,7 +2435,7 @@ gdk_event_translate (MSG *msg,
(msg->lParam == SW_PARENTOPENING ? "PARENTOPENING" :
"???")))))));
- if (!(((GdkWindowObject *) window)->event_mask & GDK_STRUCTURE_MASK))
+ if (!(window->event_mask & GDK_STRUCTURE_MASK))
break;
if (msg->lParam == SW_OTHERUNZOOM ||
@@ -2473,7 +2452,7 @@ gdk_event_translate (MSG *msg,
if (event->any.type == GDK_UNMAP)
{
- impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
+ impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
if (impl->transient_owner && GetForegroundWindow () == GDK_WINDOW_HWND (window))
{
@@ -2539,7 +2518,7 @@ gdk_event_translate (MSG *msg,
GdkWindowState withdrawn_bit =
IsWindowVisible (msg->hwnd) ? GDK_WINDOW_STATE_WITHDRAWN : 0;
- if (((GdkWindowObject *) window)->state & GDK_WINDOW_STATE_ICONIFIED)
+ if (window->state & GDK_WINDOW_STATE_ICONIFIED)
ensure_stacking_on_unminimize (msg);
if (!GDK_WINDOW_DESTROYED (window))
@@ -2566,10 +2545,10 @@ gdk_event_translate (MSG *msg,
GDK_WINDOW_STATE_MAXIMIZED);
}
- if (((GdkWindowObject *) window)->resize_count > 1)
- ((GdkWindowObject *) window)->resize_count -= 1;
+ if (window->resize_count > 1)
+ window->resize_count -= 1;
- if (((GdkWindowObject *) window)->extension_events != 0)
+ if (window->extension_events != 0)
_gdk_device_wintab_update_window_coords (window);
return_val = TRUE;
@@ -2628,11 +2607,11 @@ gdk_event_translate (MSG *msg,
GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD &&
!GDK_WINDOW_DESTROYED (window))
{
- if (((GdkWindowObject *) window)->event_mask & GDK_STRUCTURE_MASK)
+ if (window->event_mask & GDK_STRUCTURE_MASK)
{
GDK_NOTE (EVENTS, g_print (" do magic"));
- if (((GdkWindowObject *) window)->resize_count > 1)
- ((GdkWindowObject *) window)->resize_count -= 1;
+ if (window->resize_count > 1)
+ window->resize_count -= 1;
handle_configure_event (msg, window);
g_main_context_iteration (NULL, FALSE);
@@ -2664,7 +2643,7 @@ gdk_event_translate (MSG *msg,
_gdk_win32_rect_to_string (&rect),
_gdk_win32_rect_to_string (drag)));
- impl = GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl);
+ impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
orig_drag = *drag;
if (impl->hint_flags & GDK_HINT_RESIZE_INC)
{
@@ -2867,7 +2846,7 @@ gdk_event_translate (MSG *msg,
if (GDK_WINDOW_DESTROYED (window))
break;
- impl = GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl);
+ impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
mmi = (MINMAXINFO*) msg->lParam;
GDK_NOTE (EVENTS, g_print (" (mintrack:%ldx%ld maxtrack:%ldx%ld "
"maxpos:%+ld%+ld maxsize:%ldx%ld)",
@@ -2941,7 +2920,7 @@ gdk_event_translate (MSG *msg,
append_event (event);
- impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
+ impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
if (impl->transient_owner && GetForegroundWindow() == GDK_WINDOW_HWND (window))
{
@@ -3137,7 +3116,7 @@ done:
}
void
-_gdk_events_queue (GdkDisplay *display)
+_gdk_win32_display_queue_events (GdkDisplay *display)
{
MSG msg;
@@ -3205,7 +3184,7 @@ gdk_event_dispatch (GSource *source,
GDK_THREADS_ENTER ();
- _gdk_events_queue (_gdk_display);
+ _gdk_win32_display_queue_events (_gdk_display);
event = _gdk_event_unqueue (_gdk_display);
if (event)
@@ -3254,9 +3233,9 @@ check_for_too_much_data (GdkEvent *event)
}
gboolean
-gdk_event_send_client_message_for_display (GdkDisplay *display,
- GdkEvent *event,
- GdkNativeWindow winid)
+_gdk_win32_display_send_client_message (GdkDisplay *display,
+ GdkEvent *event,
+ GdkNativeWindow winid)
{
check_for_too_much_data (event);
@@ -3266,7 +3245,7 @@ gdk_event_send_client_message_for_display (GdkDisplay *display,
}
void
-gdk_screen_broadcast_client_message (GdkScreen *screen,
+_gdk_win32_screen_broadcast_client_message (GdkScreen *screen,
GdkEvent *event)
{
check_for_too_much_data (event);
@@ -3277,24 +3256,7 @@ gdk_screen_broadcast_client_message (GdkScreen *screen,
}
void
-gdk_flush (void)
-{
-#if 0
- MSG msg;
-
- /* Process all messages currently available */
- while (PeekMessageW (&msg, NULL, 0, 0, PM_REMOVE))
- {
- TranslateMessage (&msg);
- DispatchMessageW (&msg);
- }
-#endif
-
- GdiFlush ();
-}
-
-void
-gdk_display_sync (GdkDisplay * display)
+_gdk_win32_display_sync (GdkDisplay * display)
{
MSG msg;
@@ -3305,27 +3267,3 @@ gdk_display_sync (GdkDisplay * display)
DispatchMessageW (&msg);
}
-void
-gdk_display_flush (GdkDisplay * display)
-{
- g_return_if_fail (display == _gdk_display);
-
- /* Nothing */
-}
-
-gboolean
-gdk_net_wm_supports (GdkAtom property)
-{
- return FALSE;
-}
-
-void
-_gdk_windowing_event_data_copy (const GdkEvent *src,
- GdkEvent *dst)
-{
-}
-
-void
-_gdk_windowing_event_data_free (GdkEvent *event)
-{
-}