From aafaf298f7d8132aca02b3bfcf2340574fc7bfbf Mon Sep 17 00:00:00 2001 From: Paulo Zanoni Date: Mon, 27 Aug 2007 04:43:33 +0000 Subject: Another very big commit... Now it is possible to do "multiple operations" at the same time: dragging/resizing windows with multiple mice, for example. Some bugs corrected. Some other still need to be corrected... svn path=/branches/multiple_pointer_x/; revision=3310 --- src/window.h | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) (limited to 'src/window.h') diff --git a/src/window.h b/src/window.h index 45afaa9c..d5a8c22f 100644 --- a/src/window.h +++ b/src/window.h @@ -249,9 +249,11 @@ struct _MetaWindow guint is_in_queues : NUMBER_OF_QUEUES; /* Used by keybindings.c */ - guint keys_grabbed : 1; /* normal keybindings grabbed */ +// guint keys_grabbed : 1; /* normal keybindings grabbed */ guint grab_on_frame : 1; /* grabs are on the frame */ - guint all_keys_grabbed : 1; /* AnyKey grabbed */ +// guint all_keys_grabbed : 1; /* AnyKey grabbed */ + MetaDevList keys_grabbed; + MetaDevList all_keys_grabbed; /* Set if the reason for unmanaging the window is that * it was withdrawn @@ -360,6 +362,15 @@ struct _MetaWindow int focused_devices_size; }; +/* XXX Should put this here? Should do otherway? */ +typedef struct _ResizeMoveTimeoutData ResizeMoveTimeoutData; + +struct _ResizeMoveTimeoutData +{ + MetaWindow *window; + MetaDevInfo *dev; +}; + /* These differ from window->has_foo_func in that they consider * the dynamic window state such as "maximized", not just the * window's type @@ -496,13 +507,16 @@ void meta_window_get_outer_rect (const MetaWindow *window, void meta_window_get_xor_rect (MetaWindow *window, const MetaRectangle *grab_wireframe_rect, MetaRectangle *xor_rect); -void meta_window_begin_wireframe (MetaWindow *window); -void meta_window_update_wireframe (MetaWindow *window, - int x, - int y, - int width, - int height); -void meta_window_end_wireframe (MetaWindow *window); +void meta_window_begin_wireframe (MetaWindow *window, + MetaDevInfo *dev); +void meta_window_update_wireframe (MetaWindow *window, + MetaDevInfo *dev, + int x, + int y, + int width, + int height); +void meta_window_end_wireframe (MetaWindow *window, + MetaDevInfo *dev); void meta_window_delete (MetaWindow *window, guint32 timestamp); @@ -584,7 +598,7 @@ gboolean meta_window_same_application (MetaWindow *window, #define META_WINDOW_IN_GROUP_TAB_CHAIN(w, g) \ (((w)->input || (w)->take_focus) && (!g || meta_window_get_group(w)==g)) -void meta_window_refresh_resize_popup (MetaWindow *window); +void meta_window_refresh_resize_popup (MetaWindow *window, MetaDevInfo *dev); void meta_window_free_delete_dialog (MetaWindow *window); @@ -605,9 +619,11 @@ void meta_window_begin_grab_op (MetaWindow *window, gboolean frame_action, guint32 timestamp); -void meta_window_update_keyboard_resize (MetaWindow *window, - gboolean update_cursor); -void meta_window_update_keyboard_move (MetaWindow *window); +void meta_window_update_keyboard_resize (MetaDevInfo *dev, + MetaWindow *window, + gboolean update_cursor); +void meta_window_update_keyboard_move (MetaDevInfo *dev, + MetaWindow *window); void meta_window_update_layer (MetaWindow *window); -- cgit v1.2.1