Implement better handling of Wintab tablet context overlap on Win32.

2005-02-24  Robert Ögren  <gtk@roboros.com>

	Implement better handling of Wintab tablet context overlap on
	Win32. (#167298)

	* gdk/win32/gdkinput-win32.c (_gdk_input_set_tablet_active): New
	function that brings any tablet contexts to the top of the overlap
	order.
	* gdk/win32/gdkinput-win32.h: Declare _gdk_input_set_tablet_active ()
	* gdk/win32/gdkevents-win32.c (gdk_event_translate):
	Call _gdk_input_set_tablet_active when a window is activated (on
	WM_ACTIVATE)
This commit is contained in:
Robert Ögren 2005-02-25 00:12:32 +00:00 committed by Tor Lillqvist
parent 59d658187c
commit 81c1b1dade
6 changed files with 76 additions and 0 deletions

View File

@ -1,3 +1,16 @@
2005-02-24 Robert Ögren <gtk@roboros.com>
Implement better handling of Wintab tablet context overlap on
Win32. (#167298)
* gdk/win32/gdkinput-win32.c (_gdk_input_set_tablet_active): New
function that brings any tablet contexts to the top of the overlap
order.
* gdk/win32/gdkinput-win32.h: Declare _gdk_input_set_tablet_active ()
* gdk/win32/gdkevents-win32.c (gdk_event_translate):
Call _gdk_input_set_tablet_active when a window is activated (on
WM_ACTIVATE)
2005-02-24 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_select_path):

View File

@ -1,3 +1,16 @@
2005-02-24 Robert Ögren <gtk@roboros.com>
Implement better handling of Wintab tablet context overlap on
Win32. (#167298)
* gdk/win32/gdkinput-win32.c (_gdk_input_set_tablet_active): New
function that brings any tablet contexts to the top of the overlap
order.
* gdk/win32/gdkinput-win32.h: Declare _gdk_input_set_tablet_active ()
* gdk/win32/gdkevents-win32.c (gdk_event_translate):
Call _gdk_input_set_tablet_active when a window is activated (on
WM_ACTIVATE)
2005-02-24 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_select_path):

View File

@ -1,3 +1,16 @@
2005-02-24 Robert Ögren <gtk@roboros.com>
Implement better handling of Wintab tablet context overlap on
Win32. (#167298)
* gdk/win32/gdkinput-win32.c (_gdk_input_set_tablet_active): New
function that brings any tablet contexts to the top of the overlap
order.
* gdk/win32/gdkinput-win32.h: Declare _gdk_input_set_tablet_active ()
* gdk/win32/gdkevents-win32.c (gdk_event_translate):
Call _gdk_input_set_tablet_active when a window is activated (on
WM_ACTIVATE)
2005-02-24 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_select_path):

View File

@ -3367,6 +3367,16 @@ gdk_event_translate (GdkDisplay *display,
break;
#ifdef HAVE_WINTAB
case WM_ACTIVATE:
/* Bring any tablet contexts to the top of the overlap order when
* one of our windows is activated.
* NOTE: It doesn't seem to work well if it is done in WM_ACTIVATEAPP
* instead
*/
if (LOWORD(msg->wParam) != WA_INACTIVE)
_gdk_input_set_tablet_active ();
break;
/* Handle WINTAB events here, as we know that gdkinput.c will
* use the fixed WT_DEFBASE as lcMsgBase, and we thus can use the
* constants as case labels.

View File

@ -1273,6 +1273,32 @@ gdk_device_get_state (GdkDevice *device,
}
}
#ifdef HAVE_WINTAB
void
_gdk_input_set_tablet_active (void)
{
GList *tmp_list;
HCTX *hctx;
/* Bring the contexts to the top of the overlap order when one of the
* application's windows is activated */
if (!wintab_contexts)
return; /* No tablet devices found, or Wintab not initialized yet */
GDK_NOTE (INPUT, g_print ("_gdk_input_set_tablet_active: "
"Bringing Wintab contexts to the top of the overlap order\n"));
tmp_list = wintab_contexts;
while (tmp_list)
{
hctx = (HCTX *) (tmp_list->data);
WTOverlap (*hctx, TRUE);
tmp_list = tmp_list->next;
}
}
#endif /* HAVE_WINTAB */
void
_gdk_input_init (GdkDisplay *display)
{

View File

@ -168,6 +168,7 @@ gboolean _gdk_device_get_history (GdkDevice *device,
#ifdef HAVE_WINTAB
void _gdk_input_wintab_init_check (void);
void _gdk_input_set_tablet_active (void);
#endif /* HAVE_WINTAB */
#endif /* __GDK_INPUT_WIN32_H__ */